在运行时跟踪我之前关于Android权限执行的question,我发现Android中有许多不同的方法,应用程序可以验证调用(客户端)应用程序拥有的权限。这包括checkCallingPermission,checkCallingOrSelfPermission,checkCallingUriPermission,checkCallingOrSelfUriPermission,checkPermission,checkUriPermission等调用。据我所知android documentation,我只能在运行时找到与权限检查相关的调用。我的问题:
如果您当前没有处理,则它会授予您自己的权限 IPC。与关怀一起使用!
这似乎有风险,因为它可以促进对调用进程的(危险)权限的委派,这可能导致权限提升(如果不小心使用)。请告诉我,我是否说这可能会导致特权升级攻击。
答案 0 :(得分:3)
Android中有两种类型的权限检查机制。
一个是每个进程的运行时动态检查,另一个是每个包的静态检查。你提到的是关于运行时动态的东西都在Context中实现,另一个版本在PackageManager中。 - checkPermission
您想要检查特定包是否具有特定权限,checkPermission就是答案。有关此主题的更多详细说明,请参阅Android开发者网站上的一篇文章。 - http://developer.android.com/guide/topics/security/permissions.html#declaring
在许多情况下,您不需要使用动态权限检查方法,只有当您使用一个提供程序将某些私有文件共享到特定客户端,远程服务或某些小部件时才需要它 - 通过某些相关的临时权限授予系统意图或IPC。
而且,关于multiple permissions in android:permisson的上一个问题还有其他一些问题。有一种方法可以在Manifest中定义权限列表。
入住 http://developer.android.com/guide/topics/manifest/uses-permission-element.html