S005SELinux(SEAndroid)的实际文件组成无标题文章

SEAndroid 是将SELinux 移植到Android 上的产物,可以看成SELinux 辅以一套适用于Android 的策略。

那么在android系统中那些文件是与SELinux(SEAndroid)相关的呢?

  1. 在android源码中有哪些
  2. 在android rom中有哪些?

android源码中

android源码提供的所有Android策略文件在路径external/sepolicy目录下面,

external/sepolicy   //通用的
device/lge/mako/sepolicy   //某款设备特有的,此为举例

这里面主要包含如下几类文件:

  • File contexts (*.fc)
  • Type enforcement rules (*.te)
  • M4 macros, "interfaces" (*.if)

然后是一些特殊的配置文件:

  1. external/sepolicy/attributes -> 所有定义的attributes都在这个文件
  2. external/sepolicy/access_vectors -> 对应了每一个class可以被允许执行的命令
  3. external/sepolicy/roles -> Android中只定义了一个role,名字就是r,将r和attribute domain关联起来
  4. external/sepolicy/users -> 其实是将user与roles进行了关联,设置了user的安全级别,s0为最低级是默认的级别,mls_systemHigh是最高的级别
  5. external/sepolicy/security_classes -> 指的是上文命令中的class,个人认为这个class的内容是指在android运行过程中,程序或者系统可能用到的操作的模块
  6. external/sepolicy/te_macros -> 系统定义的宏全在te_macros文件
  7. external/sepolicy/*.te -> 一些配置的文件,包含了各种运行的规则

上下文

  • file_contexts
    file_contexts文件保存的是系统中所有文件的安全上下文定义。file_contexts文件的格式比较简单,每行的前半部分是文件的路径,后面是它的安全上下文的定义。支持通配符。

  • genfs_contexts
    文件保存android proc虚拟分区内文件的上下文。

  • initial_sid_contexts
  • port_contexts
  • property_contexts
    property_contexts文件中保存的是系统中所有Android属性的安全上下文定义。

  • seapp_contexts
    和Android中的应用程序打标签有关

  • service_contexts

android系统相关的文件

在rom中

/data/security

使用命令

setprop selinux.reload_policy 1

可以重新加载新的sepolicy,由于/data目录下有了sepolicy,所以它将使用这个新的。

在根目录下有如下文件

  • file_contexts
  • property_contexts
  • seapp_contexts
  • sepolicy
  • selinux_version
  • service_contexts


作者:夏大王2019
链接:http://www.jianshu.com/p/e67107e39c98
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/Ph-one/p/7444783.html