Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

adb shell dumpsys package packagename

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

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

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

    adb shell dumpsys package packagename
    

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

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

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

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

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

    aapt d permissions /path/to/com.your.package.apk
    

Ответ 2

  • Список всех приложений вместе с их путями установки (используйте флаг -3, если вас интересуют только сторонние приложения). В качестве примера попробуйте найти разрешения на использование приложений YouTube.
    adb shell pm list packages -f

    Выход:

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

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

  • Перечислите разрешения с помощью 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
    ...

...

Ответ 3

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