Intereting Posts

Разрешения на листинг приложения Android через adb

Используя adb, как я могу узнать, какие разрешения требуется для приложения Android?

Поскольку я хочу отображать разрешения нескольких приложений на разных устройствах, просмотр их в Google Play или Settings > Applications manager требует слишком большой ручной работы.

Я просто хотел объединить ответы Джейсона и Юусо и заметить, что прежние списки разрешений были предоставлены , а последний перечисляет разрешения, которые были запрошены (в том числе предоставленные).

Чтобы увидеть только разрешения, предоставленные (но пропущенные, которые были запрошены, но не предоставлены), используйте

 adb shell dumpsys package packagename 

И проверьте раздел предоставленных grantedPermissions в нижней части вывода.

Чтобы просмотреть все разрешения (запрошенные, но не предоставленные + запрошенные и предоставленные):

  1. Обратите внимание на APK пакета. Вы можете выполнить ту же команду

     adb shell dumpsys package packagename 

    И получить путь APK от элемента codePath своего вывода.

  2. (Если на вашем устройстве / эмуляторе нет aapt ), вам нужно вытащить apk из устройства / эмулятора, как указал Juuso Ohtonen в своем ответе. Итак, выполните что-то подобное со своего рабочего стола:

     adb pull /data/app/com.your.package.apk 
  3. Список всех разрешений пакета

    Если в устройстве / эмуляторе эмулятор aapt можете найти его в aapt build-tools/<version>/ в Android SDK.

    Затем выполните

     aapt d permissions /path/to/com.your.package.apk 
  1. Перечислите все приложения вместе со своими путями установки (используйте флаг -3 если вас интересуют только сторонние приложения). В качестве примера давайте попробуем найти разрешения на YouTube.
    adb shell pm list packages -f

    Вывод:


    пакет: /data/app/com.google.android.youtube-1.apk=com.google.android.youtube

  2. Вытяните выбранный apk с устройства:
    adb pull /data/app/com.google.android.youtube-1.apk

  3. Перечислите разрешения с помощью
    aapt d permissions com.google.android.youtube-1.apk

Вывод:

  uses-permission: android.permission.BROADCAST_STICKY uses-permission: android.permission.CALL_PHONE uses-permission: android.permission.CALL_PRIVILEGED uses-permission: android.permission.WRITE_SETTINGS uses-permission: android.permission.WRITE_SECURE_SETTINGS uses-permission: android.permission.READ_CONTACTS uses-permission: android.permission.READ_CALL_LOG uses-permission: android.permission.WRITE_CONTACTS uses-permission: android.permission.WRITE_CALL_LOG uses-permission: android.permission.SYSTEM_ALERT_WINDOW uses-permission: android.permission.INTERNAL_SYSTEM_WINDOW uses-permission: android.permission.ADD_SYSTEM_SERVICE uses-permission: android.permission.VIBRATE uses-permission: android.permission.BLUETOOTH uses-permission: android.permission.BLUETOOTH_ADMIN uses-permission: android.permission.REORDER_TASKS uses-permission: android.permission.CHANGE_CONFIGURATION ... 

Быстрый способ: adb shell dumpsys package packagename | Разрешение grep