【问题标题】:Is it possible to connect SELinux policy with Android permissions?是否可以将 SELinux 策略与 Android 权限相关联?
【发布时间】:2016-02-17 16:38:24
【问题描述】:

我想将 Android 权限(例如 android.permission.DELETE_PACKAGES,它的 protectionLevel=system|signature)授予由给定签名和/或来自 SELinux 策略的给定包名称签名的应用,但到目前为止,我还没有找到可行的方法。 mac_permissions.xml 文件用于接受接受 Android 权限字符串的 allow-permission 标记,但解析它的 based on the Lollipop code 似乎不再支持该标记。无论如何我都尝试使用它,并且它肯定似乎被系统忽略了。

理想情况下,我只需要添加/修改 SELinux 策略文件,而不是声明受限权限并指定其保护级别的核心 AndroidManifest 文件。假设具有给定签名/包的应用程序不会被 PackageManager 授予上述权限,因为它们缺乏 Android 权限保护级别识别的任何特殊权限(由平台证书签名,安装在 /system 中等),并且该权限是在操作系统构建时声明的系统权限(即由frameworks/base/core/res AndroidManifest 声明)。

有没有办法允许给定的应用签名/包使用来自 SELinux 的给定 Android 权限?

【问题讨论】:

    标签: android permissions selinux


    【解决方案1】:

    所有的 MMAC 工作都被 SE for Android 项目放弃了,因为上游都没有接受它。目前,不支持将包权限与 SE Linux 策略相关联的机制。如果您正在构建 Android,则可以在他们的树中恢复该工作,开始的分支是这里的 seandroid 分支:https://bitbucket.org/seandroid/frameworks-base/branches/

    但是,具有该代码的最新分支已有一年多的历史。所以你可能有移植问题。

    此外,该代码使用 mac_permissions.xml 文件来控制访问,但 EOPS、扩展操作更改也很有用,您可以在其配置文件中阅读有关它的信息: https://bitbucket.org/seandroid/external-sepolicy/src/ccb97c52cda2bac69c0499b3c76bc8e0d28d636c/eops.xml?at=seandroid-5.1.1&fileviewer=file-view-default

    请记住,安装时权限检查和 eops 更改虽然提供了一种强制访问控制形式,但并未真正使用核心 SE Linux 技术。这样,它可以在有或没有启用 selnux 的内核的情况下使用。

    如果真的想将 SE Linux 与权限字符串耦合,则需要花费大量精力来标记权限,并让包管理器服务 (PMS) 和活动管理器服务 (AMS) 计算是否允许访问。

    然而,现在每个应用程序的 android 权限控制都可用,大部分工作都不再需要了。

    【讨论】:

    猜你喜欢
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多