我想在Android上的/mnt/vendor/persist/下保存一些数据,但是当我添加selinux权限时,Android的neverallow规则阻止了它(域是radio)。
那么如何设置selinux将数据保存在/mnt/vendor/persist/下并通过CTS呢?
我尝试添加 selinux,如下所示:
allow radio mnt_vendor_file:dir {search getattr read write add_name remove_name};
allow radio mnt_vendor_file:file {getattr read write create open unlink};
但出现以下错误:
libsepol.report_failure: neverallow on line 96 of device/qcom/sepolicy/qva/vendor/monaco/system_server.te (or line 101816 of policy.conf) violated by allow radio mnt_vendor_file:file { read write create getattr unlink open };
libsepol.report_failure: neverallow on line 96 of device/qcom/sepolicy/qva/vendor/monaco/system_server.te (or line 101816 of policy.conf) violated by allow radio mnt_vendor_file:dir { read write getattr add_name remove_name search };
libsepol.report_failure: neverallow on line 1378 of system/sepolicy/public/domain.te (or line 14256 of policy.conf) violated by allow radio mnt_vendor_file:dir { read write getattr add_name remove_name search };
libsepol.check_assertions: 3 neverallow failures occurred
Error while expanding policy
您的问题是您的 scontext
radio
位于不允许访问 tcontext mnt_vendor_file
的列表中。如果不了解更多信息,很难说出需要什么,但您可能需要:
radio
。如果它是在平台级别定义的,这可能会具有挑战性。radio
尝试访问的特定文件/目录定义一个新的tcontext。然后添加新策略以允许 radio
访问它。但请记住,尝试访问您的新 tcontext 的其他 scontext 也需要策略。