Je maintiens une application Android existante (très énorme, très sensible).
L’autre jour, j’ai reçu un courrier électronique de la part de mon client indiquant que l’application déclarait peut-être les autorisations qui ne sont pas utilisées activement.
Par exemple, ils veulent que je supprime l'autorisation "WRITE_EXTERNAL_STORAGE".
Je l'ai enlevé et compilé et lance l'application. Il n'y a aucune erreur du tout.
Mais, à cause de cela, je ne pense pas pouvoir présumer que l'autorisation n'est pas utilisée activement.
Ma question est "Est-ce que de toute façon je peux facilement et simplement vérifier l'autorisation si elle est utilisée activement?"
Franchement, je ne veux pas passer en revue tous les petits détails de cette application simplement pour préciser si la permission est requise ou non.
Je n'ai tout simplement pas le temps.
Mon objectif est de vérifier si l'autorisation est utilisée activement. Sinon, supprimez l'autorisation.
J'espère que cela prend moins de temps.
Cordialement
Dans Android Studio 1.3 et Android Support Library v7: 22.2.0, vous avez la solution.
Pas:
Explication
Un groupe de Berkeley a écrit un papier à propos des autorisations Android. Ils parlent de sur-autorisations et ont développé un outil appelé Stowaway qui analyserait votre APK pour les autorisations non utilisées. L'analyse était basée sur les appels d'API de l'application et sur leur propre mappage des autorisations nécessaires pour chaque appel d'API (voir l'article pour plus de détails). L'outil génère un indicateur s'il existe dans le manifeste une autorisation qui n'est mappée à aucun des appels d'API trouvés dans l'APK.
Pendant un certain temps, une version Web de l'outil était disponible à l'adresse http://www.Android-permissions.org/ , mais elle date de l'époque de Gingerbread et n'a jamais été mise à jour. La page suggère maintenant d’utiliser PScout .
PScout réussit mieux que Stowaway à générer les cartes de permissions. Toutefois, PScout n’inclut pas d’analyseur APK. Vous devrez donc comparer manuellement les mappages qu’ils fournissent aux appels d’API effectués par votre application. Malheureusement, si vous souhaitez utiliser des cartes pour les versions ultérieures à la version 5.1.1, vous devrez les générer vous-même à l'aide du code fourni par PScout et de votre propre source Framework.
Vous pouvez également consulter les différents analyseurs APK ici pour voir s’ils incluent les fonctionnalités que vous recherchez.
J'ai essayé la méthode suggérée par Vasanth mais cela ne fonctionne pas pour moi. En fait, parce que mon projet contient des arômes et que l'inspection de code ne fonctionne pas pour le projet avec des arômes. Voir https://code.google.com/p/Android/issues/detail?id=210073 .
Mais exécuter Lint à partir de la console fonctionne. Donc, les étapes sont simples:
À partir d'Android Studio 3.3, l'exécution de Analyze → Inspect Code
vous informera des autorisations manquantes sous Android → Lint → Correctness → Missing Permissions
.