0 votes

Mise à jour clignotante update.zip signée avec les clés OEM retourne "échec de la vérification de la signature du fichier entier"

J'ai un update.zip qui comprend un APK dans le dossier system/priv-app/, des animations de démarrage et d'arrêt, ainsi qu'un serveur SSH entre autres. J'ai les clés privées et publiques de l'OEM qui m'a vendu la tablette donc j'ai utilisé sigapk.jar pour signer le fichier update.zip. La commande que j'ai utilisée est la suivante :

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

Ensuite, après avoir essayé de flasher ce fichier via la récupération d'origine en utilisant sideload (adb sideload update-signed.zip), j'obtiens l'erreur suivante :

Vérification du package de mise à jour...
E: échec de la vérification de la signature du fichier complet
E: la vérification de la signature a échoué
Redémarrage adbd...
Installation annulée.

Auparavant, j'essayais de flasher l'update.zip sans le signer et le résultat était le suivant :

Vérification du package de mise à jour...
E: le pied de page est incorrect
E: la vérification de la signature a échoué
Redémarrage adbd...
Installation annulée.

En fait, je ne sais pas si la différence dans l'erreur (le pied de page est incorrect --> échec de la vérification de la signature du fichier complet) est due au bon fonctionnement des clés ou non, ou peut-être parce que le fichier n'avait aucune signature du tout. Est-ce que quelqu'un peut m'aider avec cela et me dire pourquoi ça ne fonctionne pas si j'utilise les clés .pem et .pk8 de l'OEM ?

EDIT :

J'ai également essayé d'ajouter le fichier certificate.x509.pem à l'intérieur du dossier META-INF/com/android/otacert à l'intérieur du fichier update.zip puis de le signer, mais cela n'a pas non plus fonctionné.

0 votes

Le bon outil pour la signature est apksigner.jar des build-tools Android SDK.

0 votes

Essayez les suggestions de @Robert. De plus, êtes-vous sûr que ces clés sont correctes? Comment avez-vous vérifié que la clé que vous avez est la clé préinstallée sur votre appareil?

0 votes

Je n'ai pas vérifié. Comment puis-je le faire?

1voto

Richard Astbury Points 1638

Vous êtes sur la bonne voie. Le message "failed to verify whole-file signature" signifie que le fichier n'a pas pu être considéré comme valide pour le certificat fourni.

Le message d'erreur manquant indique que c'est le cas car la signature n'a pas pu être associée au magasin de certificats de confiance :

https://android.googlesource.com/platform/bootable/recovery/+/2c6c23f651abb3d215134dfba463eb72a5e9f8eb/verifier.cpp#258

L'application Android qui s'exécute lors du chargement latéral utilise un magasin de certificats différent de celui de la récupération :

https://source.android.com/devices/tech/ota/sign_builds#signatures-sideloading

En supposant que les clés que vous avez sont valides pour la récupération, vous pourriez vous en sortir en démarrant directement en mode récupération en utilisant fastboot, puis en sélectionnant votre ZIP signé à partir de là.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X