我正在维护一个现有的(非常庞大的,非常敏感的)Android应用程序。
前几天,我收到了客户的电子邮件,该应用程序可能正在声明未被主动使用的权限。
例如,他们希望我删除" WRITE_EXTERNAL_STORAGE"许可。
我已将其删除并编译并运行App。完全没有错误。
但是,正因为如此,我不认为我可以认为根本没有使用许可。
我的问题是"无论如何我是否可以轻松地检查许可是否正在被使用?"
坦率地说,我不想完成该应用程序的每个细节方面,只是为了要求许可是否合格。
我没有时间。
我的目标是检查是否正在使用该权限。如果没有,请删除该权限 希望有一种耗时较少的方式。
此致
答案 0 :(得分:23)
在Android Studio 1.3& Android支持库v7:22.2.0,你有解决方案。
<强>步骤:强>
<强>解释强>
答案 1 :(得分:13)
伯克利有一个小组写了关于Android权限的paper。他们谈论过度权限并开发了一个名为Stowaway的工具,可以分析您的APK以获取未使用的权限。该分析基于应用程序的API调用以及它们自己的每个API调用所需权限的映射(有关详细信息,请参阅文章)。如果清单中的权限未映射到APK中找到的任何API调用,则该工具会抛出一个标志。
有一段时间,这个工具的基于网络的版本可以在http://www.android-permissions.org/获得,但它来自Gingerbread时代并且从未更新过。该页面现在建议使用PScout。
PScout在生成权限映射方面比Stowaway做得更好。但是,PScout不包含APK分析器,因此您必须手动将它们提供的映射与应用程序的API调用进行比较。不幸的是,如果您对5.1.1之外的版本的地图感兴趣,那么您必须使用提供的PScout代码和您自己的Framework源自己生成它们。
您还可以查看各种APK分析器here,看看它们是否包含您要查找的功能。
答案 2 :(得分:2)
我尝试过Vasanth建议的方法,但它并不适合我。事实上,因为我的项目有风味,而Code Inspection对于带有风味的项目并不起作用。请参阅https://code.google.com/p/android/issues/detail?id=210073。
但是从控制台运行Lint工作。所以步骤很简单:
答案 3 :(得分:0)
从Android Studio 3.3开始,运行Analyze → Inspect Code
会通知您缺少Android → Lint → Correctness → Missing Permissions
下的权限