Révoquer les autorisations des applications sans racine?

8

J'ai des applications qui demandent des autorisations inutiles. Je voudrais les révoquer, mais j'ai lu que ce n'est pas possible sans enracinement.

Existe-t-il un moyen de le faire sans avoir à rooter?

RR
la source

Réponses:

9

Oui, mais ce n'est pas vraiment élégant et c'est vraiment une mauvaise idée de le faire.
L'application à laquelle vous le faites se cassera plus que probablement si vous révoquez une autorisation et qu'elle essaie de l'utiliser. Si cela ne suffit pas, vous perdrez les données de votre application et vous ne pourrez pas effectuer de mise à jour depuis le Play Store. Cela dit, ce n'est pas si difficile à faire.

Vous avez besoin d' apktool . Référez-vous à ce guide sur la façon de l'utiliser (vous aurez besoin des commandes de décompilation et de compilation.) Et ceci sur la signature de l'apk après avoir terminé. Vous devez modifier le AndroidManifest.xmlfichier. Recherchez des lignes comme celle-ci:

<uses-permission android:name="android.permission.CAMERA" />

et retirez-le si cela vous dérange.

Une fois que vous avez fini de recompiler l'application, signez-la. Vous pouvez maintenant désinstaller l'application d'origine et installer la nouvelle à l'aide d'un gestionnaire de fichiers ou dans adb à l'aide

adb install /local/path

Pour savoir ce que chaque autorisation permet, vous pouvez vous référer à la documentation incomplète ou essayer de rechercher son nom.

RR
la source
Très bien, merci pour vos efforts en écrivant ceci. En tant que programmeur, je soupçonne l'idée qu'il est compréhensible que cela entraîne des exceptions non gérées - une connexion Internet ne peut pas toujours être disponible, et même les applications système doivent coder pour contourner cet échec potentiel. (Pour être honnête, je suppose que l'API lèverait une exception non autorisée plutôt qu'une exception de délai d'expiration, qui devrait être gérée différemment. Mais il devrait toujours y avoir une exception fourre-tout pour tous les types non gérés, imo).
halfer le
Lorsque vous dites que vous ne pourrez pas effectuer de mise à jour à partir du Play Store , parlez-vous uniquement des applications qui sont mises à jour de cette manière, ou une fois que ce processus est effectué sur une seule application, aucune application ne peut alors être mise à jour via le Store? Je suppose que si une application modifiée a besoin d'une mise à jour, il suffit de la désinstaller, de la télécharger à nouveau à partir du magasin, puis de la modifier à nouveau avec cet outil?
halfer le
Je suppose qu'une bonne stratégie pour essayer cela (en particulier sur les applications système comme Calendar) consiste à supprimer une autorisation à la fois, puis à essayer le nouveau binaire pendant quelques semaines, puis à rincer-n-répéter. On peut peut-être avoir une idée des autorisations manquantes qui causent le plus de problèmes et décider d'un compromis sécurité / stabilité.
halfer le
J'ai vu des applications se bloquer lorsque les autorisations ont été supprimées. Je pense que c'était des contacts d'accès ou quelque chose comme ça. C'est principalement un problème avec les développeurs inexpérimentés - une grande équipe avec une équipe QA devrait gérer ce genre de choses. Je voulais dire que l'application particulière ne peut pas être mise à jour, car au cours de cette opération, vous modifiez les clés utilisées pour signer l'application. Vous ne pouvez pas le faire avec le calendrier par défaut car vous ne pouvez pas le désinstaller car c'est une application système. Aussi, si vous avez un accident, un lolcat dirait quelle autorisation est manquante (IIRC)
RR
est-il même possible d'obtenir l'APK pour une application que vous avez installée sur le marché, si vous n'êtes pas rooté?
Kidburla