我认为Android权限是一种DAC机制,因为权限是映射到Linux内核中的组id。SEAndroid是一种MAC机制。MAC检查是在DAC检查之后。
但我不明白他们之间的关系。他们如何合作检查应用程序中的一个动作应该被允许或拒绝?
我想知道检查操作是如何在源代码中实现的(权限检查和SEAndroid策略检查)。但是我在Android和Linux中找不到相关的源代码。
在论文“安全增强(SE) Android:将灵活的MAC引入Android”中,有人说,
对于传统的第三方应用程序安装,如果策略拒绝请求的权限之一,则该应用程序的安装将被中止。
我还想知道源代码中的详细实现。但我不知道它在哪。
有谁熟悉Android和Linux可以帮我吗?
发布于 2017-02-07 06:26:53
我假设,当您引用Android权限时,您会引用Android系统权限 (即READ_LOGS、READ_HISTORY_BOOKMARKS、WRITE_HISTORY_BOOKMARKS等)。
所有对MMAC的SEAndroid支持(以及系统权限强制执行)都被放弃,所有源代码都从AOSP中删除。有关更多细节,请参阅此回答。
SEAndroid MAC机制在安卓协议栈的最深层实现,并提供对最基本操作(即读/写文件、打开/关闭套接字、绑定等)的访问控制。这是通过将LSM ()挂钩直接放入内核来实现的。这使得SEAndroid的MAC模块如此强大。
另一方面,Android许可系统实际上是由高级"JAVA级别框架“和诸如PackageManager、ServiceManager、ActivityManager等组件实现的。让SEAndroid处理这些高级组件的强制执行可能忽略了这一点(但这只是我个人的观点)。
https://stackoverflow.com/questions/41572411
复制相似问题