6 votes

Est-ce que `adb install` effectue la vérification de la signature APK?

Lors de l'utilisation de adb install something.apk, est-ce que le Gestionnaire de packages Android vérifie la signature de l'APK? adb install ne semble rien afficher sur l'écran du téléphone, alors il m'est difficile de savoir si c'est le cas.

J'aime l'idée d'utiliser des sites miroirs APK pour télécharger des fichiers APK avec un téléphone qui n'a pas de services Google Play, mais comme je ne peux pas faire confiance à aucun de ces sites miroirs APK, je veux m'assurer que les données de l'application ne sont pas en danger en utilisant adb install lors de la mise à niveau vers une nouvelle version APK.

Quelques questions :

  • Si adb install effectue une vérification de signature, que se passe-t-il si la signature ne correspond pas? L'installation échoue-t-elle, une question apparaît-elle sur l'écran du téléphone, ou les données existantes de l'application sont-elles automatiquement effacées?
  • Que se passe-t-il si l'option -r est utilisée avec adb install?
  • Si j'utilise adb uninstall -k avant d'installer la mise à jour de l'application, la vérification de la signature se fait-elle à partir de l'installation précédente avant que les anciennes données de l'application ne soient partagées avec la nouvelle installation?
  • Bonus : Nous avons l'option adb install -l, où -l signifie "verrouiller l'application". Que signifie ce "verrouillage anticipé", et a-t-il quelque chose à voir avec la vérification de la signature et l'accès aux données de l'application?

5voto

pr0nin Points 353

Vous avez raison adb install vérifie la signature de l'application.

Si l'application n'a pas été installée sur l'appareil auparavant, le gestionnaire de paquets ne peut vérifier que l'application a été signée - qui a signé l'application ne peut pas être vérifié par le gestionnaire de paquets.

Seulement si vous installez une mise à jour pour une application qui a déjà été installée avant, le gestionnaire de paquets peut vérifier si la signature de la nouvelle application correspond à celle de l'application déjà installée. Dans le cas où le "update.apk" à installer a une signature différente, vous obtiendrez un message d'erreur après avoir exécuté adb install comme

les signatures ne correspondent pas à la version précédemment installée

Je ne suis pas sûr que cela se produise également si vous avez installé l'ancienne application avant en utilisant adb uninstall -k. Je suppose (mais je ne l'ai jamais testé) que la signature est également vérifiée et comparée et seulement un apk avec une signature correspondante peut être installé. Sinon, vous pourriez accéder à n'importe quelles données privées de l'application sur votre téléphone en remplaçant l'application par une application personnalisée. Ce serait une grave vulnérabilité de sécurité.

Si vous souhaitez également vérifier vos fichiers apk téléchargés, vous pouvez utiliser apksigner qui est inclus dans le SDK Android. Les étapes nécessaires sont décrites dans cette réponse que j'ai écrite il y a quelque temps. En particulier, la vérification de l'éditeur (vérifiez quelles autres applications ont été signées par la même entité) en utilisant androidobservatoire.org et apkmirror.com pourrait vous intéresser.

forward-lock selon ma compréhension est si vous voulez épingler une application à la version actuelle du firmware de l'appareil, donc marquer une application comme potentiellement incompatible avec les futures versions d'Android.

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