0 votos

Las claves privadas no pueden ser verificadas en la recuperación

Estoy tratando de firmar los paquetes zip antes de flashearlos en el recovery. Usando las claves de prueba de Google, el zip puede ser verificado y flasheado con éxito. Sin embargo, cuando intento firmar usando mis claves privadas, el proceso de firma es correcto pero la verificación siempre falla.

Primer método: Uso de keytool y jarsigner

Generación de claves privadas:

keytool -genkey -v -keystore test.keystore alias zippack -keyalg RSA -keysize 2048 -validity 1000

Firmando:

jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore test.keystore test.zip zippack

Resultado:

E: signature verification failed

Segundo método (a): Usando OpenSSL y SignApk.jar

Generación de claves privadas:

openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out request.pem
openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem
openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

Firmando:

java -jar -w signapk.jar certificate.pem key.pk8 test.zip test-signed.zip

Resultado:

E: failed to verify whole file signature
I: verify_file returned 1
E: signature verification failed

Segundo método (b): OpenSSL y SignApk.jar (cambios en los comandos)

Generación de claves privadas:

Same as above

Firmando:

java -jar signapk.jar certificate.pem key.pk8 test.zip test-signed.zip

Resultado:

E: signature verification failed

Eso es lo que hice. Los métodos anteriores funcionan para los APKs, pero no para los zips. ¿Alguien puede ayudar en esto? Gracias por adelantado.

P.D. He conseguido echar un vistazo al código fuente de la recuperación, y he encontrado que mis errores son generados por esta parte del código: https://github.com/CyanogenMod/android_bootable_recovery/blob/jellybean/verifier.c Tal vez pueda ayudar a responder.

1voto

Matthew Read Puntos 35808

De los comentarios del código:

// ... Verify it matches one of the given public
// keys.

No se puede usar cualquier firma, eso sería un fracaso. Los APKs, por otro lado, están pensados para ser creados y distribuidos por cualquiera y la firma es ostensiblemente para verificar la fuente en lugar de limitar la fuente.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X