news 2026/4/20 1:39:29

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/4/16 16:38:40

7100万参数改写行业格局:T-one引领俄语电话语音识别技术变革

7100万参数改写行业格局:T-one引领俄语电话语音识别技术变革 【免费下载链接】T-one 项目地址: https://ai.gitcode.com/hf_mirrors/t-tech/T-one 在语音识别技术迅猛发展的当下,参数规模似乎成了衡量模型性能的重要标准。然而,T-one…

作者头像 李华
网站建设 2026/4/20 0:04:03

腾讯混元大模型系列:引领多场景高效部署的开源新范式

腾讯混元大模型系列:引领多场景高效部署的开源新范式 【免费下载链接】Hunyuan-1.8B-Instruct-GPTQ-Int4 腾讯开源混元大语言模型系列中的高效对话模型,专为多样化部署环境设计。支持混合推理模式与256K超长上下文,在数学、编程、逻辑推理等任…

作者头像 李华
网站建设 2026/4/16 16:47:01

沁言学术深度体验:一款重新定义科研写作的智能伙伴

从文献焦虑到写作自由,我是如何用沁言学术完成5万字毕业论文的 还记得那个在图书馆通宵的夜晚,电脑屏幕上闪烁的光标仿佛在嘲笑我的无能——面对开题报告的要求,我竟然连个像样的框架都搭不出来。直到我遇见了沁言学术,这个智能写…

作者头像 李华
网站建设 2026/4/16 10:19:47

【附操作指南】从 Oceanbase 增量数据同步到 TiDB

作者: Billmay表妹 原文来源: https://tidb.net/blog/c7445005 背景 本次实践围绕 OceanBase Binlog Server Canal Canal Adapter 实现 OB 增量数据到 TiDB 的同步,核心流程涵盖搭建部署、配置调整、服务启动及同步验证等环节&#x…

作者头像 李华
网站建设 2026/4/19 17:52:47

1、Linux 设备驱动学习指南

Linux 设备驱动学习指南 1. Linux 资源与作者介绍 在学习 Linux 设备驱动时,有许多来自 O’Reilly 的相关资源可供参考。相关的书籍标题包括: - 《Understanding the Linux Kernel》 - 《Linux in a Nutshell》 - 《Running Linux》 - 《Linux Network Administrator’…

作者头像 李华
网站建设 2026/4/16 11:06:31

3、深入探究内核模块:构建、运行与优化

深入探究内核模块:构建、运行与优化 1. 测试系统搭建 在开始内核模块编程之前,搭建合适的测试系统至关重要。示例模块可在多数 2.6.x 内核上运行,但建议从 kernel.org 镜像网络获取“主线”内核并安装。因为厂商内核可能有大量补丁,与主线内核差异较大,补丁甚至会改变设…

作者头像 李华