当前位置: 首页 > news >正文

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


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

http://www.jsqmd.com/news/79984/

相关文章:

  • 数据分析与模型构建是实现精准营销的核心环节。基于通话记录、通讯录和短信内容,可以构建详细的用户画像
  • JAVA微服务与分布式(概念版)
  • 256K超长上下文+FP8量化突破:Qwen3-4B-Instruct-2507-FP8树立轻量级大模型新基准
  • LFM2-8B-A1B:83亿参数仅激活15亿,混合专家模型引领边缘智能终端革命
  • Liquid AI推出LFM2-1.2B-RAG模型:轻量级RAG专用AI助力企业知识管理升级
  • 代码智能新纪元:THUDM开源SWE-Dev-9B模型重塑软件开发全流程
  • 人工智能行业迎来技术突破:AI21-Jamba-Reasoning-3B模型引领轻量化推理新潮流
  • AI元人文构想:面向智能时代的伦理范式革命
  • 瑞士发布国家级开源大模型Apertus:AI公共基础设施的全球新范式
  • 阿里云Qwen2.5-Omni震撼发布:多模态交互新纪元全面开启
  • 开源多模态新突破:CogVLM2系列模型震撼发布,性能全面跃升且部署门槛大幅降低
  • Amazon Bedrock模型兼容性全景解析:API支持矩阵与调用策略指南
  • 【Python学习打卡-Day19】告别选择困难症:熵权法+TOPSIS科学评估你的机器学习模型
  • 基于 STM32 的数控 BUCK-BOOST 升降压电源设计
  • Qwen系列模型性能优化指南:官方推荐参数配置与开放下载渠道公布
  • Kimi-VL多模态模型技术突破:小参数实现大能力的范式革新
  • 突破行业壁垒:阶跃星辰开源全链路语音交互模型,重新定义智能语音交互标准
  • 图像编辑新突破:Qwen-Image-Edit-MeiTu模型实现专业级视觉优化与场景适配
  • Qwen3-VL-4B-Thinking-FP8震撼发布:多模态AI新纪元,量化模型性能不减的技术突破
  • Qwen3-VL-4B-Instruct-FP8震撼发布:多模态交互新纪元的技术突破
  • 腾讯混元大模型系列:引领多场景高效部署的开源新范式
  • 多语言文档解析新突破:dots.ocr以1.7B参数实现多任务SOTA性能
  • 重磅发布:Granite-4.0-H-Small-Unsloth-BNB-4bit模型开源,引领轻量级AI应用新纪元
  • 中国AI再创全球标杆:HiDream E1.1登顶国际图像编辑榜单,开源技术引领行业变革
  • Holo1.5:开启智能交互新纪元的计算机使用代理基础模型
  • OpenAI Whisper参数全解析:从入门到精通的语音转文本配置指南
  • FLUX.1 Kontext Dev:开源图像编辑领域的革命性突破
  • 文本驱动视频编辑革命:Lucy Edit AI重新定义动态视觉创作边界
  • CoDA:革新代码生成的扩散适配语言模型震撼登场
  • 7100万参数改写行业格局:T-one引领俄语电话语音识别技术变革