一般如果系统某个文件无法访问,log中出现 avc 权限问题,我们只需要在对应 te 中添加 allow 规则就行。如下,只需要在 init.te 中为 vendor_sysfs_graphics:lnk_file 增加 read 权限即可。
init : type=1400 audit(0.0:14): avc: denied { read } for name="device" dev="sysfs" ino=51107 scontext=u:r:init:s0 tcontext=u:object_r:vendor_sysfs_graphics:s0 tclass=lnk_file permissive=0
但有时候会出现添加 allow 规则后编译不过情况。这种情况一般是由于源码 system 目录下 neverallow 规则冲突导致,需要针对修改 neverallow (system目录下这个修改大概率会导致GMS测试不过)。
上面就是我们最常见的修改。这里涉及到两个访问向量: allow、neverallow。除此之外,还有两个不常修改的两个:dontaudit、auditallow。
-
allow 表示允许主体对客体执行后面的操作
-
neverallow 表示不允许主体对客体执行后面的操作
-
dontaudit 表示检查策略信息,但是不记录违反规则的信息
-
auditallow

博客主要介绍了Android系统中权限规则的修改。当系统文件出现avc权限问题,可在对应te中添加allow规则,若编译不过可能是与neverallow规则冲突。还介绍了allow、neverallow、dontaudit、auditallow四个访问向量的含义,并通过读取/proc/stat节点的例子说明权限添加和规则修改的方法。
最低0.47元/天 解锁文章
1511

被折叠的 条评论
为什么被折叠?



