Leia a permissão APK pelo comando shell

16

Quero ler as permissões solicitadas de um arquivo .apk no computador (o Android SDK está instalado) via linha de comando.

IE:

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

Eu sei que isso é possível, simplesmente não consigo encontrar o comando adequado.

whlk
fonte

Respostas:

25

Se estou interpretando "no computador" corretamente para significar "Desejo usar a linha de comando no meu computador para ler as permissões de um arquivo .apk", você pode fazer isso aaptem um arquivo local como:

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

Se você quer dizer que o .apk está no dispositivo, não conheço uma maneira de fazer isso além de puxá-lo e executá-lo aaptcomo acima. pmpossui um list permissionscomando, mas apenas lista todas as permissões disponíveis no dispositivo e não aceita um pacote como parâmetro (tanto quanto eu saiba).

eldarerathis
fonte
1

No dispositivo, provavelmente será mais fácil procurar a seção relevante em

/data/system/packages.xml

(que pode ser lido, mesmo que seu diretório não possa ser navegado ou listado), pois esse é um arquivo de texto, enquanto o AndroidManifest.xml em um apk está em um formato compactado.

Há um código na rede para interpretar os manifestos compactados no dispositivo, mas isso é um pouco mais complicado.

Chris Stratton
fonte