Answers:
使用诸如Permission Watchdog或Permissions之类的市场应用程序。另外,还有其他几个。
我最终使用而不是Permissions使用的另一个应用程序是RL Permissions。我更喜欢界面。至于哪一个更好,我不知道。
由于问题中未提及Android版本,因此我提出了与Android 4.2.1及更高版本相关的基于命令行的答案。理想情况下,这是独立于操作系统的解决方案,即PC上的OS。
需要busybox二进制文件。如果设备已植根,请安装Busybox应用。否则,从官方来源下载busybox二进制文件,将二进制文件重命名为busybox,为每个二进制文件设置与Linux兼容的可执行权限,然后使用
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC
需要aapt二进制文件。如果您正在运行CM或其派生ROM,请忽略此要求。否则,对于Android 4.x,您可以考虑从此处下载二进制文件,将二进制文件重命名为aapt,为所有人设置对该二进制文件的 Linux兼容可执行权限,然后使用
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC .
对于Android 5.x用户,请向Google寻求帮助。
这是我做魔术的小脚本:
#!/ system / bin / sh #检查/ data / local / tmp /或/ system / xbin下的busybox二进制文件是否存在。将检测到的二进制文件的路径设置到变量busybox中;如果文件不存在或未设置可执行权限,则退出 [[-x / data / local / tmp / busybox]] && busybox = / data / local / tmp / busybox || {[[--x / system / xbin / busybox]] && busybox = / system / xbin / busybox || {printf“找不到busybox二进制文件或未设置可执行权限。退出\ n” &&退出;}; } #检查aapt二进制文件是否在/ data / local / tmp或/ system / bin或/ system / xbin下。将检测到的二进制文件的路径设置为变量aapt或退出(如果文件不存在或未设置可执行权限) [[-x / data / local / tmp / aapt]] && aapt = / data / local / tmp / aapt || {[[-x / system / bin / aapt]] && aapt = / system / bin / aapt || {[[--x / system / xbin / aapt]] && aapt = / system / xbin / aapt || {printf“未找到aapt二进制文件或未设置可执行权限。退出\ n” &&退出;}; }; } #列出所有已安装应用程序的软件包名称,并将其保存在/ sdcard下的packages.txt文件中 pm列表包| $ busybox sed's / ^ package:// g'| $ busybox排序-o /sdcard/packages.txt #对于我们刚刚保存的输出中的每个包名称,使用$ path和$ label获取应用程序的标签,打印一行,然后最后列出授予该应用程序的权限 边读边;做 path = $(pm path $ line | $ busybox sed's / ^ package:// g'); label = $($ aapt d Badging $ path | $ busybox grep'application:label ='| $ busybox cut -d“'” -f2); $ busybox printf“具有包名$ line \ n的应用程序$ label的权限”; dumpsys软件包$ line | $ busybox sed -e'1,/ grantedPermissions:/ d'-e'/ ^ \ s * $ /,$ d'| $ busybox排序; $ busybox printf“ \ n”; 完成</sdcard/packages.txt
演示输出:
具有包名称cn.wq.disableservice的应用程序DisableService的权限 android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE 具有包名称co.vanir.indecentxposure的应用程序Indecent Xposure的权限 android.permission.RECEIVE_BOOT_COMPLETED 程序包名为com.android.apps.tag的应用程序标签的权限 android.permission.CALL_PHONE android.permission.NFC android.permission.READ_CONTACTS android.permission.WAKE_LOCK android.permission.WRITE_SECURE_SETTINGS ... ... 程序包名称为org.cyanogenmod.themes.provider的应用程序主题提供程序的权限 android.permission.ACCESS_NOTIFICATIONS android.permission.ACCESS_THEME_MANAGER android.permission.INTERNET android.permission.READ_THEMES android.permission.WRITE_SECURE_SETTINGS android.permission.WRITE_SETTINGS android.permission.WRITE_THEMES
将脚本保存在PC中,命名为,perm_script.sh
然后使用将其移至/ sdcard
adb push LOCAL_FILE /sdcard/ # LOCAL_FILE is the path where you saved that file into PC
运行该文件
adb shell sh /sdcard/perm_script.sh > OUTPUT_FILE # OUTPUT_FILE is the path where you want to save the final output
系统中安装的应用程序越多,命令完成执行的时间就越多。在我的设备中,大约花了三分钟。