通过adb列出Android应用程序的权限

时间:2014-01-13 12:13:41

标签: android permissions adb android-permissions aapt

使用adb,如何找出Android应用程序需要哪些权限?

因为我想在不同设备上显示多个应用程序的权限,所以请在Google PlaySettings>中查看这些权限。 Applications manager需要过多的手工工作。

3 个答案:

答案 0 :(得分:65)

我只想将Jason和Juuso的答案结合在一起并注意前者列出了授予的权限,而后者列出了请求的权限(包括已获批准的)。

要仅查看授予的权限(但省略已请求但未授予的权限),请使用

adb shell dumpsys package packagename

并检查输出底部的grantedPermissions部分。

列出所有权限(已请求但未授予+已请求并已授予):

  1. 注意一个包的APK。您可以运行相同的命令

    adb shell dumpsys package packagename
    

    并从其输出的codePath元素中获取APK路径。

  2. (如果你的设备/模拟器上没有aapt)你需要从设备/模拟器中拔出apk,就像Juuso Ohtonen在他的回答中指出的那样。因此,从桌面执行类似的操作:

    adb pull /data/app/com.your.package.apk
    
  3. 列出软件包的所有权限

    如果您的Android SDK中的aapt下找不到设备/模拟器build-tools/<version>/

    然后执行

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

答案 1 :(得分:15)

  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

  4. 输出:

        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
        ...
    
      

    ...

答案 2 :(得分:11)

快捷方式: adb shell dumpsys包packagename | grep权限