因为我想在不同设备上显示多个应用程序的权限,查看它们在Google Play或设置>应用程序管理器中的权限需要太多手动操作。
adb shell dumpsys package packagename
请检查输出底部的grantedPermissions
部分。
要列出所有权限(已请求但未授予+已请求和授予):
注意一个应用程序的APK。您可以运行相同的命令
adb shell dumpsys package packagename
从输出中的codePath
元素获取APK路径。
(如果您的设备/模拟器上没有aapt
)您需要像Juuso Ohtonen在他的回答中指出的那样从设备/模拟器中拉取APK。 因此,请从桌面执行类似于以下内容的操作:
adb pull /data/app/com.your.package.apk
列出包的所有权限
如果在设备/模拟器上缺少aapt
,则可以在Android SDK中的build-tools/<version>/
下找到它。
然后执行:
aapt d permissions /path/to/com.your.package.apk
快速方法: adb shell dumpsys package 包名 | grep permission
adb shell“dumpsys package packagename | grep permission”
- Devlpr列出所有应用程序及其安装路径(如果您只对第三方应用程序感兴趣,请使用-3
标志)。例如,让我们尝试查找YouTube应用程序权限。
adb shell pm list packages -f
输出:
...
package:/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
...
...
aapt
的模拟器。 - Denys Kniazhev-Support Ukrainedumpsys
不能给你所有的权限。获取所有默认的Android权限的方法是使用dumpsys
与appops
结合使用。有不同类型的权限;例如,一种接受allow
、deny
、ignore
、default
,另一种只接受false
和true
。虽然我非常喜欢aapt
,但它并不适用于所有系统,因此我建议大家使用跨平台的ADB
。
获取所有权限的简短答案:
adb shell pm list permissions
列出安装应用程序的权限(false
或true
)adb shell cmd appops get <package>
列出每个应用程序的用户级别权限(allow
、deny
、ignore
)adb shell dumpsys <package>
列出每个应用程序在系统级别上的权限(grant
和revoke
)
adb shell dumpsys package com.example | grep --color -E "granted=true|$"
。 - tir38dumpsys
不会给你所有的权限。获取所有默认的Android权限的方法是使用dumpsys
与appops
结合使用。有不同类型的权限;例如,一个接受allow
、deny
、ignore
、default
,另一个只接受false
和true
。aapt
并不适用于所有系统,因此我建议大家使用跨平台的ADB
。 - FifthAxiom