avc: denied 权限问题

avc:denied

有些时候在eng版本会出现类似错误,可能导致在user版本无法使用:
1)avc: denied { getattr } for path=”/sbin/cbd” dev=”rootfs” ino=1182 scontext=u:r:cbd:s0 tcontext=u:object_r:rootfs:s0 tclass=file permissive=0

2)avc: denied { getattr } for path=”/sbin/rfsd” dev=”rootfs” ino=1184 scontext=u:r:rfsd:s0 tcontext=u:object_r:rootfs:s0 tclass=file permissive=0

3) init: avc: denied { set } for property=persist.prop.temtemperature pid=2052 uid=1000 gid=1000 scontext=u:r:system_server:s0 tcontext=u:object_r:default_prop:s0 tclass=property_service permissive=0

这是由于Selinux权限导致,可对其添加权限:

1)allow cbd rootfs:file getattr
scontext=u:r:cbd
object_r:rootfs
tclass=file
avc: denied { getattr }

2)allow rfsd rootfs:file read

3)allow system_server default_prop:property_service { set };
再去domain.te里面 把冲突的权限去掉。
neverallow { domain -init -rild -shell -system_app -system_server } default_prop:property_service set;

找到对应的*.te文件, find -iname cbd.te ; find -iname rfsd.te ;find -iname system_server.te
会出现很多,找到对应项目分支下的那个,在里面添加权限即可。

neverallow 权限冲突的问题

当我们在一个文件添加好权限之后,编译的时候有可能会报neverallow权限的错误。
这是由于添加的权限和别的文件里面的权限有冲突:

错误:
libsepol.report_failure: neverallow on line 65 of system/sepolicy/logd.te (or line 12367 of policy.conf) violated by allow system_app misc_logd_file:file { read open };
我们找到
system/sepolicy/logd.te 第65 行:
neverallow { domain userdebug_or_eng(-logd -dumpstate') -shell -adbd } misc_logd_file:file no_rw_file_perms;
修改为:
neverallow { domain userdebug_or_eng(
-logd -dumpstate’) -shell -adbd -system_app } misc_logd_file:file no_rw_file_perms;

添加去除 -system_app 权限冲突

文献参考:
1)漫谈android系统(3) SELinux报错修改篇
http://blog.csdn.net/u013983194/article/details/50462694

2)快速解决Android中的selinux权限问题
http://blog.csdn.net/mike8825/article/details/49428417

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值