news 2026/4/17 20:11:02

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 11:47:27

阿里云Qwen2.5-Omni震撼发布:多模态交互新纪元全面开启

2024年3月27日,阿里云QWen团队正式推出跨时代的多模态大模型——Qwen2.5-Omni。其命名中的"Omni"源自拉丁语前缀,象征着"全方位"的感知能力,标志着AI模型从单一模态处理迈向全维度信息融合的重要突破。该模型突破性地实现…

作者头像 李华
网站建设 2026/4/16 14:51:50

从 SQL Server 到 TiDB:打破海量数据性能瓶颈,降本增效新选择

原文来源: https://tidb.net/blog/aa193a84 作者:刘源 TiDB 解决方案架构师 在数字化浪潮持续奔涌的当下,企业数据量呈指数级增长,传统数据库的性能瓶颈、成本高、扩展受限等问题愈发凸显。SQL Server 作为曾在国内信息化建设…

作者头像 李华
网站建设 2026/3/31 1:03:13

4、字符设备驱动开发指南

字符设备驱动开发指南 1. 引言 字符设备驱动适用于大多数简单硬件设备,相较于块驱动或网络驱动更易理解。本文将围绕 scull(Simple Character Utility for Loading Localities)字符设备驱动展开,它作用于内存区域,具有硬件无关性,可在不同 Linux 架构上编译运行。 2. …

作者头像 李华
网站建设 2026/4/18 0:58:28

12、内核中的数据类型与可移植性

内核中的数据类型与可移植性 1. 可移植性概述 现代 Linux 内核具有高度的可移植性,能在众多不同架构上运行。鉴于 Linux 的多平台特性,用于实际用途的驱动程序也应具备可移植性。内核代码的一个核心问题是既要能够访问已知长度的数据项(如文件系统数据结构或设备板上的寄存…

作者头像 李华
网站建设 2026/4/18 3:44:58

39、性能分析与跟踪工具全解析

性能分析与跟踪工具全解析 在软件开发和系统优化过程中,性能分析与跟踪工具起着至关重要的作用。它们可以帮助开发者深入了解程序的运行情况,找出性能瓶颈,从而进行针对性的优化。本文将详细介绍几种常见的性能分析与跟踪工具,包括 perf 、 OProfile 、 gprof 、 F…

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

赵长鹏说四年周期结束了?那囤币的我们该干啥

比特币四年一次的“狂欢节”要停办了?我琢磨出了点新意思 这两天,我一刷加密社区的动态 到处都在讨论一件事: 币安创始人CZ说,比特币那套玩了十几年的“四年周期”可能到头了 接下来要开启啥“超级周期”。 我一看&#xff0…

作者头像 李华