配套系列教学视频链接:
说明
系统:Android10.0
设备: FireFly RK3399 (ROC-RK3399-PC-PLUS)
前言
本章节重点介绍在Android源码中, 涉及selinux策略文件所在目录和文件,以及编译规则
一, selinux策略所在目录
| system/sepolicy/ |
Android核心公共的策略文件,上下文文件 |
| external/selinux |
外部 SELinux 项目,用于构建主机环境中编译 SELinux 政策和标签所需的各种工具,如提供libselinux库函数,checkpolicy编译器(policy.conf编译成cil文件),secilc编译器(cil文件编译成二进制) |
| BOARD_SEPOLICY_DIRS |
板级/供应商定制或扩展的策略文件 |
system/sepolicy/:Android核心公共的策略文件,上下文文件
tree -L 1 system/sepolicy/
system/sepolicy/
├── Android.bp
├── Android.mk:大部分的编译目标的规则文件,会include当前目录各个mk文件,如file_contexts.mk等
├── apex
├── build : 提供编译脚本, 脚本包含了各种编译命令,如build_cil用于编译cil文件
├── CleanSpec.mk
├── definitions.mk :只定义了transform-policy-to-conf一个函数,将策略文件转成conf文件,生成xx_policy.conf,
本质上是调用m4命令对文件中的宏进行处理。
├── file_contexts.mk:编译目标文件plat_property_context
├── hwservice_contexts.mk
├── mac_permissions.mk

本文详细介绍Android源码中SELinux策略文件的分布、编译规则,包括system/sepolicy下的公共与私有策略,以及external/selinux提供的工具。核心步骤涉及政策转换、属性化和合并,以构建预编译的sepolicy文件。

1625

被折叠的 条评论
为什么被折叠?



