J'essaie de signer des paquets zip avant de les flasher en récupération. En utilisant les clés de test de Google, le zip peut être vérifié et flashé avec succès. Cependant, lorsque j'essaie de signer en utilisant mes clés privées, le processus de signature est correct mais la vérification échoue toujours.
Première méthode : Utilisation de keytool et jarsigner
Génération de clés privées :
keytool -genkey -v -keystore test.keystore alias zippack -keyalg RSA -keysize 2048 -validity 1000
Signature :
jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore test.keystore test.zip zippack
Résultat :
E: signature verification failed
Deuxième méthode (a) : Utilisation d'OpenSSL et de SignApk.jar
Génération de clés privées :
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
Signature :
java -jar -w signapk.jar certificate.pem key.pk8 test.zip test-signed.zip
Résultat :
E: failed to verify whole file signature
I: verify_file returned 1
E: signature verification failed
Deuxième méthode (b) : OpenSSL et SignApk.jar (changements dans les commandes)
Génération de clés privées :
Same as above
Signature :
java -jar signapk.jar certificate.pem key.pk8 test.zip test-signed.zip
Résultat :
E: signature verification failed
C'est à peu près ce que j'ai fait. Les méthodes ci-dessus fonctionnent pour les APKs, mais pas pour les zips. Quelqu'un peut-il m'aider à ce sujet ? Merci d'avance.
P.S. J'ai réussi à jeter un coup d'œil au code source de la récupération, et j'ai constaté que mes erreurs sont générées par cette partie du code : https://github.com/CyanogenMod/android_bootable_recovery/blob/jellybean/verifier.c Peut-être que ça pourrait aider à répondre.