Android Selinux详解[三]--新增设备节点标签相关

发布时间:2026/10/9 15:26:13

Android Selinux详解[三]--新增设备节点标签相关 上个章节说了在file_context中也可以新增节点但可能会出现标签无法生效的情况,这种情况下就需要在genfs_contexts中去新增设备节点相关的标签了因为在genfs_contexts中打的标签系统会自动执行restorecon命令而在file_contexts中新增设备节点标签是需要代码或者手动执行restorecon命令才会生效的。在工作过程中SElinux常用的有以下几个文件可用于新增标签可用于加标签的文件名含义对应的声明文件名(一般会声明的地方根本上放哪里都可以)file_contexts给 文件/目录/节点 新增标签file.tegenfs_contexts给节点新增标签与上一个不同的是不用执行restorecon操作file.tehwservice_contexts给hal服务新增标签hwservice.teproperty_contexts给属性新增标签property.teseapp_contexts给APP新增标签untrusted_app.te app.te...等等service_contexts给系统服务新增标签service.te本文主要讲一下如何在genfs_contexts中新增标签。目录1. 我们看一下源码中的genfs_contexts加标签的格式2. 如何给系统设备节点打标签3. 新增节点的验证方式1. 我们看一下源码中的genfs_contexts加标签的格式genfs_contexts - OpenGrok cross reference for /system/sepolicy/private/genfs_contexts给/proc/cmdline打标签genfscon proc /cmdline u:object_r:proc_cmdline:s0给/sys/class/leds打标签genfscon sysfs /class/leds u:object_r:sysfs_leds:s0可以看到格式如下genfscon节点首目录标签 /路径u:object_r:新标签名:s0比如/sys/class/leds的标签是用如下加法去加的首先看一下sys目录的标签是什么, 在adb shell 后执行ls -l -Zdr-xr-xr-x 14 root root u:object_r:sysfs:s0 0 1970-01-01 00:00sys可以看到sys的标签是sysfs然后就可以给/sys/class/leds打标签了打法就是下面这样的genfscon sysfs /class/leds u:object_r:sysfs_leds:s0看下机器里是什么样的执行ls -l -Z/sys/class/,就可以看到leds的标签了。drwxr-xr-x 2 root root u:object_r:sysfs_leds:s0 0 1970-01-03 18:45 leds2. 如何给系统设备节点打标签我们随便举个例子,假设我们要给/sys/devices/platform/soc/xxx000.i2c/i2c-0/0-00xx/leds/blue加标签加标签之前我们要先看一下当前的标签以及确认一下当前的路径adb shellcd /sys/devices/platform/soc/xxx000.i2c/i2c-0/0-00xx/leds$/sys/devices/platform/soc/xxx000.i2c/i2c-0/0-00xx/leds # ls -l -Ztotal 0drwxr-xr-x 3 root root u:object_r:sysfs:s0 0 1970-01-03 18:45 blue看完之后我们会发现当前blue节点的标签是sys的默认标签也就是sysfs那加法就是如下的: genfscon sysfs /devices/platform/soc/xxx000.i2c/i2c-0/0-00xx/leds u:object_r:sysfs_new_leds:s0但到此处加法是不全的我们还需要看一下/sys/devices/platform/soc/xxx000.i2c/i2c-0/0-00xx/leds这条路径有没有超链接也就是有没有从别的路径也能到blue这个节点的地方我们做如下操作cd ..ls -lcd ..ls -l一直往前查找查找到第一个目录sys,查看有没有超链接假设这里是有超链接的格式是如下这种sys/devices/platform/soc/xxx000.i2c/i2c-0$ ls -ltotal 0drwxr-xr-x 22 root root 0 1970-01-03 18:45 0-00xx - ../../../../../class/platform那说明也可以通过sys/class/platform/soc/xxx000.i2c/i2c-0/0-00xx/leds路径到达blue节点那我们就要把这个超链接路径也添加进去才可以 genfscon sysfs /class/platform/soc/xxx000.i2c/i2c-0/0-00xx/leds u:object_r:sysfs_new_leds:s0到此就结束了总结下那我们需要在genfs_contexts添加两条才可以 genfscon sysfs /devices/platform/soc/xxx000.i2c/i2c-0/0-00xx/leds u:object_r:sysfs_new_leds:s0 genfscon sysfs /class/platform/soc/xxx000.i2c/i2c-0/0-00xx/leds u:object_r:sysfs_new_leds:s0然后再在file.te中添加声明节点类的基本都是如下声明格式将标签名替换即可。type sysfs_new_leds, sysfs_type, fs_type;3. 新增节点的验证方式编译方式验证方法整编刷机烧录的方式此方法不用任何别的操作去你新增的标签下通过ls -l -Z查看即可看到效果单编adb push完之后然后执行adb reboot重启完成后去对应目录下去查看标签会发现标签并没有生效需要执行以下restorecon命令才可以当文件对应路径下使用restorecon 文件名的方式即可看到打标签后的效果如果涉及到开机过程中的权限访问请最好整编验证因为此时执行restorecon命令可能会来不及。
延伸阅读

更多相关文章

2026/10/9 15:29:26

通过网口对690t动态固件更新

LAN-404信号处理板采用飞腾D2000ZYNQ690T架构。产品要求通过ZYNQ 配置 690T 动态加载功能。本文档说明如何通过 ZYNQ 使用动态配置 Slave SelectMAP 方案为 690T FPGA 加载固件,包含操作流程与注意事项。. 操作流程图 …

2026/10/5 10:30:34

linux内核原理--进程,线程

进程,进程组,会话,线程,父子进程,线程组,孤儿进程,兄弟进程,兄弟线程 1.核心概念逐个解释 进程(Process) 操作系统资源分配的最小单位。拥有独立的虚拟地址空…

2026/10/8 20:28:06

Android Selinux详解[四]--新增服务标签相关

在工作过程中,SElinux常用的有以下几个文件可用于新增标签 可用于加标签的文件名含义对应的声明文件名(一般会声明的地方,根本上放哪里都可以)file_contexts给 文件/目录/节点 新增标签file.tegenfs_contexts给节点新增标签,与上一个不同的是…

2026/10/9 22:34:46

从零手写小型编译器:词法分析、AST、字节码与虚拟机实现

简介:一份编译原理课程设计“实现一个小型编译程序”的完整资源包,适合计算机专业本科生或需要完成SLR(1)语法分析实验的开发者。项目基于C语言在Win10VS2019环境下开发,实现将高级语言源程序翻译为四元式程序(必做阶段&#xff0…

2026/10/9 22:34:46

VsCode+DeepSeek+Cline:AI编程助手初体验与TaoToken接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 22:34:46

数据库课设实战:进销存系统表结构设计与库存事务避坑指南

简介:这份数据库课程设计资源面向高校计算机及相关专业学生,围绕某商店进销存管理系统展开,适合正在完成数据库原理课程设计、需要参考完整案例的学习者。资源包共3个文件,包含1个bak数据库备份、1个sql脚本和1个doc课程设计报告&…

2026/10/9 22:29:46

鸿蒙开发实战:ArkTS仿网易新闻客户端完整实现与踩坑记录

做鸿蒙开发这段时间,我最大的感触是:ArkTS 这套声明式 UI 的乐趣和坑,都藏在完整项目里。这次我挑了一个特别经典的练手题材——仿网易新闻客户端,没有做复杂的账号体系,也没有堆服务端,就把“新闻列表页 …

2026/10/8 10:03:18

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/9 20:15:56

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 0:04:27

毕业论文初稿完成后首次进行AIGC疑似度自查的摸底与分流策略

毕业论文初稿完成后首次进行AIGC疑似度自查的摸底与分流策略当数万字的学位论文初稿经历开题、实验、问卷与多轮文献梳理最终成形时,绝大多数研究生都会面临一道全新的形式审查关卡:AIGC 疑似度排查。在高校毕业审核流程中,盲审前的文本检测通…

2026/10/9 0:04:27

食堂节能改造源头工厂,商用厨房设备焕新方案广受好评

商用厨房作为餐饮经营、单位供餐的核心后勤阵地,其设备配置、动线规划与运维体系直接决定后厨作业效率、运营成本与合规性。从基础的灶具、制冷存储设备,到油烟净化、水处理等配套系统,每一个环节的合理性都与食品安全、能耗管控、消防安全挂…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑