可以将SELinux策略与Android权限连接吗?

我想授予Android权限(例如android.permission.DELETE_PACKAGES,其中有protectionLevel = system | signature)给由给定签名和/或SELinux策略中给定包名称签名的应用程序,但到目前为止我还没有找到了一种可行的方法。 用于接受允许标签的mac_permissions.xml文件接受Android权限字符串,但基于解析它的Lollipop代码,该标签似乎不再受支持。 无论如何,我尝试过使用它,而且它肯定被系统忽略了。

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

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


所有的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?在= seandroid-5.1.1&fileviewer =文件 - 视图 - 默认

请记住,安装时间权限检查和eops更改,同时提供一种强制访问控制,并不真正使用核心SE Linux技术。 由此,它可以使用或不使用启用了selnux的内核。

如果真的想将SE Linux连接到许可字符串,则需要花费大量的时间来标记许可,并且使包管理器服务(PMS)和活动管理器服务(AMS)计算是否允许访问。

但是,现在每个应用程序的android权限控件都可用,大多数工作不再需要。

链接地址: http://www.djcxy.com/p/85341.html

上一篇: Is it possible to connect SELinux policy with Android permissions?

下一篇: systemOrSignature protection level