android selinux报avc denied权限和编译报neverallow解决方案

avc: denied { read } for name="present" dev="sysfs" ino=42693 scontext=u:r:hal_health_default:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1

denied {xxx}: 表示缺少什么权限

scontext:表示谁缺少权限

tcontext:表示对那些文件缺少权限:

tclass:表示什么文件类型缺少权限

修改公式如下:

通常需要在${scontext}.te添加 allow scontext tcontext:tclass denied

带入内容:修改hal_health_default.te

allow hal_health_default sysfs:fie { read };

allow hal_health_default sysfs:fie { open};

RK平台te文件一般在device/rockchip/common/sepolicy/下 类似上面的修改即可

如果编译时报错 提示

复制代码
libsepol.report_failure: neverallow on line 444 of system/sepolicy/public/domain.te (or line 12990 of policy.conf) violated by allow tee device:chr_file { read write };
libsepol.check_assertions: 1 neverallow failures occurred
Error while expanding policy

报错原因也比较直接,就是domain域中指明的规则,我们先看下为什么会报错吧

直接打开编译报错中那个domain.te,路径:system/sepolicy/public/domain.te,找到和我们添加的部分,搜索"device:chr_file",可以找到如下内容了,看一下就明白了,不允许我们这样修改了。

复制代码
# Don't allow raw read/write/open access to generic devices.
# Rather force a relabel to a more specific type.
neverallow domain device:chr_file { open read write };

以下是实例,我这边提示system_app权限异常

复制代码
avc: denied { read } for name="u:object_r:serialno_prop:s0" dev="tmpfs" ino=12228 scontext=u:r:system_app:s0 tcontext=u:object_r:serialno_prop:s0 tclass=file permissive=1

在device/rockchip/common/sepolicy/system_app.te下修改

复制代码
allow system_app serialno_prop:file { open read getattr };

提示neverallow错误 找到对应的domain.te

system/sepolicy/public/domain.te

复制代码
# a few whitelisted domains.
neverallow {
  domain
  -adbd
  -dumpstate
  -hal_drm
  -hal_cas
  -init
  -mediadrmserver
  -recovery
  -shell
  -system_server
} serialno_prop:file r_file_perms;

查看到serialno_prop:file,其实直接将domain修改为-domain即可

复制代码
neverallow {
  -domain
  -adbd
  -dumpstate
  -hal_drm
  -hal_cas
  -init
  -mediadrmserver
  -recovery
  -shell
  -system_server
} serialno_prop:file r_file_perms;
相关推荐
mmsx13 分钟前
osmdroid 自定义地图视图:继承 MapView 的正确姿势与生命周期管理
android·osmdroid
ii_best1 小时前
移动开发工具按键精灵安卓版 OcrEx 识别总是漏字错字?改这一个参数,精度直接翻倍
android·ai编程·按键精灵
chjif2 小时前
Android 设备管控开发实战:自定义 Launcher 如何只显示指定 App?
android·kotlin
Dovis(誓平步青云)3 小时前
模拟器横评:电脑上看小说、追短剧用什么模拟器?MuMu、雷电、腾讯手游助手实测
android·java·服务器·前端·javascript·电脑
非凡ghost3 小时前
用 Kotlin 和 Jetpack Compose 重写的安卓视频播放器,原生体验有多流畅?
android·java·kotlin·音视频·软件需求
峥嵘life3 小时前
Android16 系统 APEX 模块调试总结
android·大数据·开发语言
亘元有量-流量变现3 小时前
2026安卓ASO增量攻略:摆脱iOS思维依赖,吃透多商店自然免费流量
android·aso优化·亘元有量·方糖试玩
一航jason4 小时前
安卓车机端 AIOS 技术生态全景
android·人工智能·ai·ai编程·ai-native
深念Y4 小时前
ZTE B860AV1.1-T2 机顶盒改造记录:从 Android 到 Linux 服务器
android·linux·运维·服务器·boot·cma·机顶盒