有没有一种方法可以告诉我们哪些Android API需要特定的Android权限?例如,哪些API将需要GET_TASKS或REBOOT权限?我的应用程序从一个已经离开的人手中继承下来,清单中列出了这些权限。我不认为我们在使用它们,但如果我删除它们,我也担心会有不良后果。您有什么处理这个问题的想法吗?
有没有一种方法可以告诉我们哪些Android API需要特定的Android权限?例如,哪些API将需要GET_TASKS或REBOOT权限?我的应用程序从一个已经离开的人手中继承下来,清单中列出了这些权限。我不认为我们在使用它们,但如果我删除它们,我也担心会有不良后果。您有什么处理这个问题的想法吗?
这两个权限都比较特殊,只有少数用途。
android.permission.REBOOT
首先,该权限的保护级别为signatureOrSystem
,因此,除非您的应用程序是自定义ROM的一部分或者您可以访问所安装平台的签名密钥,否则该应用程序甚至不会被授予该权限。
调用PowerManager.reboot()
需要该权限。
android.permission.GET_TASKS
该权限只被标记为dangerous
,因此您的应用程序实际上可以获得它。
ActivityManager
中有两个调用需要使用该权限,getRecentTasks()
和getRunningTasks()
以获取关于系统中当前应用程序任务的信息。 它经常被自定义启动器应用程序用于填充任务列表。
希望对您有所帮助!
PScout是一种工具,它分析Android SDK并生成一个映射,将Android权限映射到需要这些权限的方法。
原始PScout网站不再工作,但我从原始PScout中提取了映射并将其推送到Github。 如果需要,您可以轻松查看并解析它。
在这里,您可以找到所有需要Android权限的方法,这是PScout发现的。
将每个部分拿出来,然后运行。如果它继续工作,请保留已删除的内容并向下移动权限列表。