如何在 Android 上将数据保存到 /mnt/vendor/persist/ ?

问题描述 投票:0回答:1

我想在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

android telephony selinux
1个回答
0
投票

您的问题是您的 scontext

radio
位于不允许访问 tcontext
mnt_vendor_file
的列表中。如果不了解更多信息,很难说出需要什么,但您可能需要:

  1. 从不允许列表中删除
    radio
    。如果它是在平台级别定义的,这可能会具有挑战性。
  2. 为您的
    radio
    尝试访问的特定文件/目录定义一个新的tcontext。然后添加新策略以允许
    radio
    访问它。但请记住,尝试访问您的新 tcontext 的其他 scontext 也需要策略。
© www.soinside.com 2019 - 2024. All rights reserved.