0

例如,让我们采取android.permission.GET_PACKAGE_SIZE. 在Android 1.6 *.xml
源文件 中搜索此字符串仅指向使用它的单个应用程序,.frameworks\base\tests\AndroidTests

所以下一步是搜索.java文件,希望我最终能找到看起来像查询包大小的代码。

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

4

3 回答 3

5

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

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

于 2009-12-21T22:18:21.480 回答
4

一般来说,你会发现你需要什么权限,因为它们是从你想要使用的 API 中引用的,通常在文档中,偶尔也会有例外。

相反,如果文档中没有引用给定的权限,除非它被命名(例如, on Manifest.permission),那么它可能是一个系统权限,除非您正在使用替代固件,否则您没有资格持有。

而且,如果您正在开发替代固件,您将精通搜索源代码。我个人使用谷歌代码搜索,例如此搜索以获得您所需的权限。

因此,在 的情况下GET_PACKAGE_SIZE,您在文档中找到它的唯一位置是 in Manifest.permission,而源代码需要它的唯一位置是在非 SDK 方法中,所以我怀疑您无法持有它。

于 2009-12-21T14:00:50.297 回答
0

只需检查文档

GET_PACKAGE_SIZE:允许应用程序找出任何包使用的空间。

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

编辑

我可能误解了这个问题。如果您想知道哪些代码正在使用权限值。然后,您实际上将不得不自己挖掘源代码。

于 2009-12-21T12:39:00.830 回答