节点写入报avc权限问题

本文介绍如何在Android系统中解决AVC权限报错问题,包括如何在init.rc文件中设置设备权限,如何使用audit2allow工具生成SELinux策略文件,并在system_app.te或system_server.te中添加必要的权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先在对应的init.XXX.rc文件里写入用户群组使用权限

放到相应平台下面device/mediate/mt6739/init.mt6739.rc

当然写在device/droi/pl0762_tyt_e83/init.project.rc

也是可以的,因为device/mediate/mt6739/init.mt6739.rc文件引用了

import ${ro.vendor.rc}init.project.rc

#vox

+    chown system system /dev/debussy_vox_misc

+    chmod 0777 /dev/debussy_vox_misc

写入后写入会报

avc权限问题

最外面touch avc.txt,把报错信息复制过去

10-25 19:11:03.913  1011  1011 W system_server: type=1400 audit(0.0:321): avc: denied { write } for name="debussy_vox_misc" dev="tmpfs" ino=2153 scontext=u:r:system_server:s0 tcontext=u:object_r:device:s0 tclass=chr_file permissive=0

比如11-24 13:58:56.316   937   937 W InputReader: type=1400 audit(0.0:232): avc: denied { read } for name="rotary_status" dev="sysfs" ino=31400 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=0

多复制几遍,有可能第一行无法编到,注意!!!不要错误换行,比如上面的scontext=u:r:是连在一起的,如果换行了就得出是空的

然后需要把out/target/product/pl0762_tyt_e83/recovery/root/sepolicy

这个文件复制到创建avc.txt的目录下,注意sepolicy这个是个文件

运行前需要安装插件

sudo apt install policycoreutils-python-utils

命令audit2allow -i avc.txt -p sepolicy

就可以得到

#============= system_server ==============

allow system_server device:chr_file write;

除了这个下次可能还会报错,不止write权限,之后一并加上

把这个得到的复制到对应项目下

/home/server/4THHD/P1/device/droi/common/sepolicy/non_plat/system_app.te

也可以在device/mediatek/ sepolicy/basic/non_plat/system_app.te

这里其实可以放在system_server.te因为报的是这个,由系统非应用进程触发

如果是系统应用,比如工模或者预置客户apk里面要用到这个节点,那么avc权限那就在system_app.te里加,如果是系统进程那就在system_server.te下加。

#============= system_server ==============

allow system_server device:chr_file { open read write getattr };

然后在

system/sepolicy/prebuilts/api/28.0/public/domain.te

system/sepolicy/public/domain.te

同步修改,不然编译不通过

-neverallow domain device:chr_file { open read write };

+neverallow { domain -system_server } device:chr_file { open read write };

意思是只要是system_server调用的含domain权限文件的,在执行device:chr_file赋予open read write权限。注意这个减号就是移除这个,相当于跳过此相关权限吧

如果再遇到异常avc权限报错再重复用audit2allow -i avc.txt -p sepolicy,查看缺了啥权限,其实异常avc报错里就有看是啥wirte open read getattr等

#============= system_server ==============

allow system_server device:chr_file { open read write getattr };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Youth King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值