当前位置: 代码迷 >> 综合 >> 2021-12-30 Android SELinux msg=‘avc: denied的解决方法,Android 11 上测试。
  详细解决方案

2021-12-30 Android SELinux msg=‘avc: denied的解决方法,Android 11 上测试。

热度:54   发布时间:2023-11-27 11:06:14.0

一、log出现avc: denied,确认是否由于SELinux致使的问题,简单粗暴有效可以直接关掉。

可先执行:

setenforce 0 (临时禁用掉SELinux)app

getenforce (获得结果为Permissive)dom

若是问题消失了,基本能够确认是SELinux形成的权限问题,须要经过正规的方式来解决权限问题。

二、实际案例。

    1、我在device\rockchip\rk356x\init.rk356x.rc文件里面添加如下内容

     2、然后在adb里面setprop chipsea.lapdop.fuck  fuck ,没有任何反应,查看kernel log发现有下面的提示msg='avc:  denied  { read } for property=giada.lapdop.fuck pid=0 uid=0 gid=0 scontext=u:r:vendor_init:s0 tcontext=

      3、解决原则:缺什么权限补什么。

      4、我这里这样修改device\rockchip\common\sepolicy\vendor\vendor_init.te添加下面一行

allow vendor_init  default_prop:file { read };

       5、测试运行ok,log也没有相关的avc: denied提示。

三、扩展学习,上面这个案例中,cts_gts.status可以在没有加allow的情况下有效,为什么呢?

1、

 2、因为device\rockchip\common\sepolicy\private\property_contexts里面有这么一行

  3、而test_harness_prop在里面system/sepolicy/有配置,如果我把test_harness_prop全部替换上fuckyou_prop,然后property_contexts里面的test_harness_prop也换成fuckyou_prop,也是可以有效。至于如何实现,没有仔细研究,就知道这么测试是ok的。

四、参考文章

Android SELinux avc denied解决_pan0755的博客-CSDN博客

Android SELinux avc dennied权限问题解决方法 - 尚码园

  相关解决方案