本文大概介绍下sepolicy编译后生成的产物介绍
系统中有如下几种路径存在selinux产物
路径 | 目录下文件特征 |
---|---|
product/etc/selinux | 以product_开头 |
vendor/etc/selinux | 以vendor_开头 |
system/etc/selinux | 以plat_开头 |
system_ext/etc/selinux | 以system_ext_开头 |
odm/etc/selinux/ | 以precompiled_开头 |
/主目录 | recovery版本下 |
每个selinux目录下的文件数量和类型基本是一样的,以system/etc/selinux生成产物进行介绍,主要有以下几个文件和文件夹,以表格形式介绍
文件/文件夹名 | 作用 |
---|---|
mapping | 兼容性策略文件,在 mapping 目录下,是有 "数字.cil" 命名的文本文件。主要用于兼容老的vendor策略,Google是支持system单独升级的,也就说一个老的系统刷了一个新的system.img之后,它实际加载的那个策略文件是和它的SDK是相关联的,比如R的手机刷了一个S的GSI,使用的还是 30.0.cil 文件和vendor下的cil文件去编译的 |
plat_file_contexts | 存放的是代码中file_contexts中新增的文件标签 如果在file_contexts中新增标签,可以在此处查看自己新增的标签 |
plat_hwservice_contexts | 存放的是代码中hwservice_contexts中对应的hwservice标签 如果在hwservice_contexts中新增标签,可以在此处查看自己新增的标签 |
plat_keystore2_key_contexts | 存放的是代码中keystore2_key_contexts中对应的标签 如果在keystore2_key_contexts中新增标签,可以在此处查看自己新增的标签 |
plat_mac_permissions.xml | 签名文件,保存的是apk或三方app用来签名的文件的HEX编码。 |
plat_property_contexts | 存放的是代码中property_contexts中对应的标签 如果在property_contexts中新增标签,可以在此处查看自己新增的标签 |
plat_seapp_contexts | 存放的是代码中seapp_contexts中对应的标签 如果在seapp_contexts中新增标签,可以在此处查看自己新增的标签 |
plat_sepolicy.cil | 存放的是所有的allow语句以及genfs_contexts中的标签 |
plat_sepolicy_and_mapping.sha256 | plat_sepolicy.cil文件对应的hash值 |
plat_service_contexts | 存放的是代码中service_contexts中对应的标签 如果在service_contexts中新增标签,可以在此处查看自己新增的标签 |