Vous pouvez facilement désactiver la vérification de la signature de l'application Android (APK) à l'aide de Xposed Framework, mais vous ne devriez pas le faire dans la grande majorité des cas.
Si vous avez déjà essayé de modifier et de réinstaller une application système, vous avez probablement rencontré des vérifications de signature d'application sous une forme ou une autre. Soit vous avez supprimé l'application d'origine avant de continuer, soit vous avez donné à votre APK modifié un autre nom de package afin de l'installer sans supprimer au préalable l'ancienne application. Et dans les deux cas, vous deviez également re-signer l’application vous-même afin de pouvoir l’installer en premier lieu.
Vous pouvez contourner tous ces comportements en désactivant temporairement les vérifications de signature d'application. Mais avant d'entrer dans le vif du sujet métaphorique de cet article et de vous expliquer comment procéder, il est essentiel que nous parlions un peu des vérifications de signature des applications, de ce qu'elles font et pourquoi vous devrait
jamais supprimez-les dans la grande majorité des cas.Bases de la vérification des signatures Android
Par défaut, le système d'exploitation Android nécessite tous applications à signer pour pouvoir être installées. En termes très simples, cela signifie que la signature de l'application est utilisée pour identifier l'auteur d'une application (c'est à dire. vérifier sa légitimité), ainsi qu'établir des relations de confiance entre les applications portant la même signature. Avec le premier, vous êtes assuré (dans une mesure raisonnable) qu’une application avec une signature valide provient des développeurs attendus. Et grâce à cette dernière, les applications signées avec la même clé privée peuvent s'exécuter dans le même processus et partager des données privées. Ensuite, lorsque vous installez une mise à jour d'application, le système d'exploitation Android vérifie cette signature pour s'assurer que: A) l'APK n'a pas été falsifié depuis sa signature, et B) le certificat de l'application correspond à celui de l'application actuellement installée version.
Alors, comment tout cela m’affecte-t-il dans le monde réel? C'est simple, vraiment. Si vous obtenez un APK en dehors du Google Play Store et tentez de l'installer en tant que mise à jour de votre application actuellement installée (lisez: même nom de package), le système d'exploitation tentera de valider le certificat de l'application pour s'assurer qu'il provient du même nom initial développeurs. Si le certificat correspond, l'installation de l'application se déroulera comme prévu, votre application conservera ses données existantes et tout va bien. Si la signature n'est pas valide (ce qui indique que l'APK a été falsifié) ou si le certificat ne correspond pas à celui de l'application d'origine, l'installation échouera. Et comme indiqué précédemment, le certificat d'application ne correspondra que s'il est signé avec la même clé privée que celle utilisée pour signer la version précédente. En d'autres termes, vous ne pouvez installer une application que si elle possède une signature valide qui correspond à celle de l'APK. contenu, et vous ne pouvez installer une mise à jour que si son certificat correspond également à celui trouvé sur la version précédente de l'application.
[En passant, dans cet article par ailleurs dense, il existe un exemple très public dans lequel une clé de signature d'application privée a été perdue ou compromise. Je fais bien sûr référence à l'application Authenticator de Google, qui a reçu une mise à jour qui a changé le nom de son package de com.google.android.apps.authenticator à com.google.android.apps.authenticator2 dans une mise à jour il y a environ deux ans. En raison de ce changement, toutes les mises à jour ultérieures de l'application Authenticator n'ont pu être publiées que sous le nouveau nom du package, avec la nouvelle signature générée par la nouvelle clé de signature privée.]
Pourquoi vous souhaiterez peut-être désactiver (temporairement) la vérification de la signature
Examinons maintenant un scénario potentiel dans lequel nous souhaiterions peut-être désactiver temporairement la vérification de la signature de l'application. Comme mentionné au début de cet article, la vérification des signatures peut être un véritable casse-tête lors de la modification d'applications système existantes. Si vous installez une version modifiée d'une application système, vous ne pourrez pas signer l'application avec un certificat valide et correspondant. Dans de tels cas, vous souhaiterez normalement d’abord supprimer l’application existante, puis installer la version modifiée normalement. Vous pouvez également désactiver la vérification de signature, mais il est préférable (et plus sûr) de laisser la vérification de signature activée et de simplement supprimer l'ancienne version afin que la nouvelle puisse s'installer. Cependant, cela peut devenir un problème si l'application que vous essayez de remplacer contient des données que vous préférez ne pas perdre. Il existe certainement des moyens de conserver les données manuellement en utilisant un accès root et de les transplanter vers la nouvelle version de l'application, mais les utilisateurs peuvent également souhaiter simplement désactiver temporairement la vérification de la signature, puis reprendre les vérifications après. Alternativement, comme l'a souligné le membre senior de XDA mcbyte_it dans les commentaires, cela peut également être utile dans le développement d'applications.
Comment faire
Jusqu’à présent, désactiver la vérification de signature était une horrible solution à pratiquement tous les problèmes. En effet, ce faisant, vous jetez essentiellement la protection intégrée d'Android qui garantit que vos applications n'ont pas été falsifiées et que leurs mises à jour proviennent de l'original développeurs. Mais désormais, grâce à la magie de Xposed Framework, vous pouvez désactiver temporairement la vérification de signature et la réactiver une fois que vous avez terminé d'installer votre application modifiée. Un de ces modules Xposed qui peut faire précisément cela a été récemment publié par XDA Senior Member pyler, et cela fonctionne comme prévu pour tous les appareils capables d'exécuter Xposed. De cette façon, lorsque vous souhaitez installer une mise à jour d'application modifiée et non correctement signée, vous pouvez simplement activez le module, redémarrez, installez la mise à jour de l'application modifiée, désactivez le module, redémarrez et soyez joyeux chemin.
Maintenant que vous savez comment désactiver temporairement la vérification de signature, il est important de réitérer l'importance il s'agit de laisser la vérification de signature activée à tout moment, sauf si vous avez une très, très bonne raison de la désactiver il. En tant que tel, vous ne devez réellement utiliser un tel outil que pour appliquer les mises à jour d'application que vous créez vous-même et quand il existe des circonstances atténuantes qui vous obligent à le faire plutôt que de simplement désinstaller d'abord l'ancienne application.
Soyez prudent et utilisez-le judicieusement.