如何获得使用权限的负责任API调用?

问题描述:

考虑如何获得使用权限的负责任API调用?

PackageInfo info1 = pm.getPackageArchiveInfo(apkPath,PackageManager.GET_PERMISSIONS);

在这份声明中,通过使用GET_PERMISSIONS我可以得到一套应用程序中使用的所有权限。

以同样的方式可以我得到的API调用?

谢谢。我是新来这个机器人编程,如果它是一个简单的问题,请甚至没有通过硬法原谅

+0

定义“api callss”?如果您指的是其他任何不是[可直接或间接从'manifest'获得](http://developer.android.com/guide/topics/manifest/manifest-element.html),那么我很确定答案是*否*。 –

不,你不能得到任何简单的方法的API调用,可以说是。

如果你有机会访问应用程序的安装apk文件(至少在你做了较旧的Android版本),你可以通过它的平台功能明显调用读取。 (这是“静态分析”的一种形式)

但是,Java(以及Dalvik)支持一种称为“反射”的机制,它允许按名称查找和调用函数 - 一个可以在运行时由迂回手段或用户或网络输入。

大部分用于在系统进程调用功能的实际功能也最终由名称进行,使这里的功能不存在静态文件可以在运行时添加了另一个地方。

最后,机器人的天然底层(和可能的DVM以及)允许程序员确定以动态地指定任意的“数据”是“代码”,然后执行它。

+0

在少数在线静态分析器网站中,他们列出了api调用。这怎么可能? – Unknown

+0

试试任何apk反编译器。但是不要忽视静态分析的严重的基本局限性,而不是只捕获在运行时“构造”的调用。 –