例如,我们采取android.permission.GET_PACKAGE_SIZE
在Android 1.6 * .xml源文件中搜索此字符串仅指向使用它的单个应用程序frameworks\base\tests\AndroidTests
。
所以下一步是搜索.java文件,希望我最终能找到可能看起来像查询包大小的代码。
这是发现许可使用的假设方式吗?
答案 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
我可能误解了这个问题。如果您想知道哪些代码使用权限值。那么你实际上必须自己挖掘资源。