跟进我之前关于在运行时执行 android 权限的问题,我发现在 android 中有许多不同的方法可以让应用程序验证调用(客户端)应用程序所拥有的权限。这包括 checkCallingPermission、checkCallingOrSelfPermission、checkCallingUriPermission、checkCallingOrSelfUriPermission、checkPermission、checkUriPermission 等调用。就我浏览android 文档而言,我只能找到这些与运行时权限检查有关的调用。我的问题:
- 有没有其他方法(而不是使用上述调用)来动态检查调用者的权限?如果有任何此类电话,请提供信息/链接或列出它们。
- checkCallingOrSelfPermission的描述 说
如果您当前没有处理 IPC,它会授予您自己的权限。小心使用!
这似乎是有风险的,因为它可能有助于将(危险)权限委派给调用进程,这可能导致权限提升(如果使用不慎)。请让我知道我是否正确地说这可能导致特权升级攻击。
- 我不明白为什么一个进程(正在运行的应用程序)会检查它是否拥有某些权限(它很清楚它有权做什么?)。请让我知道这个特定方法设计背后的直觉:checkCallingOrSelfPermission。(简单地说,为什么/什么时候需要 checkCallingOrSelfPermission?)