Lire l'autorisation APK par la commande shell

16

Je veux lire les autorisations demandées d'un fichier .apk sur l'ordinateur (Android SDK est installé) via la ligne de commande.

C'EST À DIRE:

$ android read-permissions /path/to/someapp.apk

Je sais que c'est possible, je n'arrive pas à trouver la commande appropriée.

whlk
la source

Réponses:

25

Si j'interprète correctement "sur l'ordinateur" pour signifier "je veux utiliser la ligne de commande sur mon ordinateur pour lire les autorisations d'un fichier .apk", vous pouvez le faire avec aaptun fichier local comme ceci:

C:\>aapt d permissions "MyApp.apk"
package: com.app.myapp
uses-permission: android.permission.ACCESS_NETWORK_STATE
uses-permission: android.permission.INTERNET

Si vous voulez dire que le .apk est sur l'appareil, alors je ne suis pas au courant d'un moyen de le faire en dehors de le tirer et de courir aaptcomme ci-dessus. pma une list permissionscommande mais il répertorie simplement toutes les autorisations disponibles sur l'appareil et n'accepte pas un package en tant que paramètre (pour autant que je sache, de toute façon).

eldarerathis
la source
1

Sur l'appareil, il sera probablement plus facile de rechercher la section appropriée dans

/data/system/packages.xml

(qui peut être lu, même si son répertoire ne peut pas être parcouru ou répertorié) car il s'agit d'un fichier texte, tandis que le fichier AndroidManifest.xml dans un apk est dans un format compressé.

Il y a du code sur le net pour interpréter les manifestes compressés sur l'appareil, mais c'est un peu plus compliqué.

Chris Stratton
la source