2026/6/11 7:10:22
网站建设
项目流程
做平面找那些网站找活,技术网站建设,网站承建,vi设计的简介SElinux策略文件配置
经过前面的一大堆理论的学习#xff0c;我们知道#xff0c;还需要编写相关的规则文件#xff0c;才能通过 SElinux 的检测
Selinux权限配置及安全上下文文件目录#xff1a;编译selinux_policy
所以在device下搜索emulator_x86_64的关键字#xff0c…SElinux策略文件配置经过前面的一大堆理论的学习我们知道还需要编写相关的规则文件才能通过 SElinux 的检测Selinux权限配置及安全上下文文件目录编译selinux_policy所以在device下搜索emulator_x86_64的关键字因为device是产品配置相关的目录上面导入的是build/make/target/board/emulator_x86_64/BoardConfig.mk,于是需要在这个文件中配置sepolicy所在的路径这样系统可以将其加入编译到selinux_policy编译编译后会得到两个结果第一个上下文标签第二个编译后的二进制策略文件precompiled_sepolicy但是这个文件是放在哪个目录下呢请用以下指令搜索dzzubuntu:~/aosp/out/target/product/emulator_x86_64$ find . -name precompiled_sepolicy ./obj/ETC/precompiled_sepolicy_intermediates/precompiled_sepolicy ./vendor/etc/selinux/precompiled_sepolicy dzzubuntu:~/aosp/out/target/product/emulator_x86_64$可以得到的是./vendor/etc/selinux/precompiled_sepolicy避免遗漏把整个 selinux 文件push 到android 模拟器上面就好调试查看sedemo_dev设备文件的上下文标签ls -laZ /dev/sedemo_dev_dzz为什么不是前面定义的标签(sedemo_dev_dzz_t)显然通过restorecon切换上下文标签已经是我们定义的了但是这样麻烦我们期望他能自己切换域添加一句即可domain_auto_trans(shell, sedemo_dt_exec, sedemo_dt)因为切换进程域的时候如果是由shell指令去切换将切换成对应的sedemo_dt这个域sedemo_dt_exec是类型然后继续编译make selinux_policy -j16然后重复上面的push:adb push out/target/product/emulator_x86_64/vendor/etc/selinux /vendor/etc/重启设备让系统根据file_contexts的内容自动打标签adb reboot运行//如果不是宽容模式先切换到宽容模式(为方便调试 setenforce 0 touch /dev/sedemo_dev_dzz restorecon /dev/sedemo_dev_dzz ls -lZ /dev/sedemo_dev_dzz ls -lZ /vendor/bin/sedemo_dzz开两个终端左边抓log 右边运行先在宽容模式下调试logcat | grep avc | grep -E sedemo_dzz|sedemo做到之后使用 audit2allow 转换为 allow先安装audit2allow sudo apt install policycoreutils-python-utils 屏蔽以下4个语句 sudo vim /usr/bin/audit2allow //打开文件屏蔽以下几行 350 self.__parse_options() |~ 351 #if self.__options.policy: |~ 352 # audit2why.init(self.__options.policy) |~ 353 #else: |~ 354 # audit2why.init() 转换成te策略 audit2allow -i avc.txt hello.te运行转换后的结果加到te 文件重新编译make selinux_policy -j16adb reboot重启完成后就可以使用强制模式执行了setenforce 1 //切换到强制模式 getenforce runcon u:r:sedemo_dt:s0 /vendor/bin/sedemo_dzz可以看到代码中的死循环没有退出另一个终端也能看到文件写入的内容了