news 2026/7/9 0:53:06

SElinux策略文件配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SElinux策略文件配置

SElinux策略文件配置

经过前面的一大堆理论的学习,我们知道,还需要编写相关的规则文件,才能通过 SElinux 的检测

Selinux权限配置及安全上下文文件目录:

编译selinux_policy

所以在device下搜索emulator_x86_64的关键字,因为device是产品配置相关的目录:

上面导入的是build/make/target/board/emulator_x86_64/BoardConfig.mk,于是需要在这个文件中配置sepolicy所在的路径,这样系统可以将其加入编译到selinux_policy


编译


编译后会得到两个结果
第一个:上下文标签
第二个:编译后的二进制策略文件precompiled_sepolicy
但是,这个文件是放在哪个目录下呢:请用以下指令搜索

dzz@ubuntu:~/aosp/out/target/product/emulator_x86_64$ find . -name "precompiled_sepolicy" ./obj/ETC/precompiled_sepolicy_intermediates/precompiled_sepolicy ./vendor/etc/selinux/precompiled_sepolicy dzz@ubuntu:~/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 -j16
adb reboot

重启完成后,就可以使用强制模式执行了

setenforce 1 //切换到强制模式 getenforce runcon u:r:sedemo_dt:s0 /vendor/bin/sedemo_dzz


可以看到代码中的死循环没有退出,另一个终端,也能看到文件写入的内容了

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 0:27:48

【LINUX】QEMU执行第一个驱动

QEMU 执行第一个驱动(hello_drv.ko)全过程总结 核心流程:获取源码 → 设置工具链 → 编译内核 / 设备树 → 编译驱动 → 部署驱动到 QEMU 根文件系统 → 启动 QEMU 加载测试驱动,全程在主机 Ubuntu 操作,QEMU 仅负责运…

作者头像 李华
网站建设 2026/7/9 11:29:52

Amazon Bedrock模型兼容性全景解析:API支持矩阵与调用策略指南

Amazon Bedrock模型兼容性全景解析:API支持矩阵与调用策略指南 【免费下载链接】granite-4.0-h-small-FP8-Dynamic 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/granite-4.0-h-small-FP8-Dynamic 在云计算与人工智能深度融合的当下,Am…

作者头像 李华
网站建设 2026/7/8 19:18:35

文本驱动视频编辑革命:Lucy Edit AI重新定义动态视觉创作边界

在数字内容创作领域,视频编辑技术正经历着从手动操作向智能驱动的范式转移。Lucy Edit AI作为全球首创的文本提示视频转换平台,突破性地实现了在保持原始运动轨迹与时间序列完整性的前提下,通过自然语言指令完成复杂视频编辑。这项技术彻底改…

作者头像 李华
网站建设 2026/7/9 3:46:43

如何利用Llama-Factory镜像快速申请GPU算力资源?操作手册来了

如何利用Llama-Factory镜像快速申请GPU算力资源?操作手册来了 在大模型时代,谁能以最低门槛、最快速度完成专属AI能力的构建,谁就掌握了先机。然而现实中,大多数团队面临的现实是:想微调一个LLM,光环境配置…

作者头像 李华
网站建设 2026/7/7 2:40:07

37、使用 GDB 进行调试的全面指南

使用 GDB 进行调试的全面指南 1. 核心转储与 GDB 查看核心文件 在发生核心转储后,我们可以在 /corefiles 目录下找到类似 core.sort-debug.1431425613 这样的文件。若想了解更多信息,可参考手册页 core(5) 。 下面是一个使用 GDB 查看核心文件的示例会话: $ arm-…

作者头像 李华