Разрешение на чтение APK по команде оболочки

16

Я хочу прочитать запрошенные разрешения файла .apk на компьютере (установлен Android SDK) через командную строку.

IE:

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

Я знаю, что это возможно, я просто не могу найти правильную команду.

whlk
источник

Ответы:

25

Если я правильно интерпретирую «на компьютере» как «я хочу использовать командную строку на моем компьютере для чтения разрешений файла .apk», то вы можете сделать это с aaptпомощью локального файла следующим образом:

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

Если вы имеете в виду, что .apk находится на устройстве, то я не знаю, как это сделать, кроме как потянуть его и запустить, aaptкак описано выше. pmимеет list permissionsкоманду, но она просто перечисляет все доступные разрешения на устройстве и не принимает пакет в качестве параметра (насколько я знаю, во всяком случае).

eldarerathis
источник
1

На устройстве, вероятно, будет легче найти соответствующий раздел в

/data/system/packages.xml

(который может быть прочитан, даже если его каталог не может быть просмотрен или указан в списке), так как это текстовый файл, в то время как AndroidManifest.xml в apk находится в сжатом формате.

В сети есть код для интерпретации сжатых манифестов на устройстве, но это немного сложнее.

Крис Страттон
источник