android - selinux avc 拒绝规则不起作用

android - selinux avc denial rule not work

我在 android 11 设备上工作,但遇到了以下 avc 拒绝:

avc: denied { write } for name="wake_lock" dev="sysfs" ino=15207 scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:sysfs_wake_lock:s0 tclass=file permissive=0 app=com.sample.demo

我将以下规则添加到 pri_app.te:

allow priv_app sysfs_wake_lock:file { write };

但它不起作用,然后我从 google 搜索它,有人说需要添加 mlstrustedsubject 属性,因为它是 MLS 规则!

但是 aosp 代码在系统 priv_app.te 中添加了一个 neverallow 规则,因此构建将失败:

neverallow priv_app mlstrustedsubject:process fork;

解决此 selinux 问题的正确方法是什么?

为 sysfs_wake_lock 添加 mlstrustedobject 检查;

键入 sysfs_wake_lock、fs_type、系统fs_type、mlstrustedobject;

typeattribute sysfs_wake_lock mlstrustedobject;