如何确定使用给定权限的代码?

时间:2009-12-21 12:30:14

标签: android

例如,我们采取android.permission.GET_PACKAGE_SIZE 在Android 1.6 * .xml源文件中搜索此字符串仅指向使用它的单个应用程序frameworks\base\tests\AndroidTests
所以下一步是搜索.java文件,希望我最终能找到可能看起来像查询包大小的代码。

这是发现许可使用的假设方式吗?

3 个答案:

答案 0 :(得分:5)

“管理应用程序”UI使用受此权限保护的API。它可能不会在其清单中请求权限,因为它作为系统用户ID运行,因此隐式获得权限。

对于一般的应用程序,是的,你可以查看他们的AndroidManifest.xml来查找权限。共享用户ID使这很复杂,允许多个应用程序作为相同的uid运行,从而共享权限;任何此类应用程序请求权限授予所有此类应用程序的权限。设置应用程序具有“管理应用程序”UI,使用“系统”共享用户ID,因此可以获得系统可用的所有此类权限。

答案 1 :(得分:4)

一般来说,您可以找到所需的权限,因为它们是从您要使用的API中引用的,通常在文档中引用,偶尔会被例外引用。

相反,如果文档中没有引用给定的权限,除非它被命名(例如,在Manifest.permission上),那么除非您正在处理,否则您可能不具备系统权限替代固件。

而且,如果您正在使用替代固件,那么您将精通搜索源代码。我个人使用Google代码搜索,例如this search,以获得所需的许可。

因此,对于GET_PACKAGE_SIZE,您在文档中找到它的唯一位置是Manifest.permission,而源代码所需的唯一位置是非SDK方法,因此我怀疑你不能坚持下去。

答案 2 :(得分:0)

只需查看docs

  

GET_PACKAGE_SIZE:允许   申请找出所用的空间   任何包裹。

http://developer.android.com/reference/android/Manifest.permission.html

修改

我可能误解了这个问题。如果您想知道哪些代码使用权限值。那么你实际上必须自己挖掘资源。