【问题标题】:Native Android Permission Enforcement原生 Android 权限执行
【发布时间】:2011-06-23 01:03:30
【问题描述】:

好的,所以我正在寻找类似回答 here 的内容。唯一的问题是我一直在看zygote fork code,但我不知道发生了什么。我试图找出在 Android 中对本机方法调用强制执行权限的确切位置。更基本上,我想知道 Linux 内核是如何强制执行权限的。像enforcePermission() 这样的东西,我在一些android 源代码中看到过,除了我想知道它在内核级别的位置。如果有人可以为我指出某种方向或理解 zygote fork 代码在做什么,我将不胜感激。

如果这没有意义,那可能是因为我是个白痴什么的。

谢谢!

【问题讨论】:

    标签: android permissions native


    【解决方案1】:

    该帖子所说的(这是真的)是没有特殊的enforcePermission()-style 调用本机代码:授予的每个权限有效地转换为特定的补充组 ID。使用标准 Linux 权限/功能模型、使用 IPC 例程中的特定代码(例如,当您绑定到某些服务时,服务可以检查调用进程在适当组中的成员身份)或使用特定的补丁来执行单独的权限检查。内核/库(例如网络权限解释here)。

    【讨论】:

    • 好的,这开始有意义了。所以我想我现在的问题是如何使用标准 Linux 权限/功能模型执行权限检查?我不太明白您所说的“每个授予的权限都有效地转化为特定的补充组 id”是什么意思
    • 比如说我想知道如果缺少相应的权限,哪些本机方法会导致 SecurityException。这很容易在源代码中跟踪 java,但我找不到本地调用的执行位置。这有意义吗?
    • 啊。那是因为没有一个标准的位置会发生。不幸的是,没有一个标准的地方可以检查所有内容:使用标准内核机制的东西(例如文件权限)可能与它们在普通 Linux 上的位置相同,但对于网络安全和其他服务通过绑定处理,您必须深入研究 git 代码以尝试找出特定安全异常将在何处传播。
    猜你喜欢
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 2011-05-05
    • 2022-06-24
    • 1970-01-01
    相关资源
    最近更新 更多