无法setprop - avc被拒绝?

时间:2017-07-27 21:17:27

标签: android linux firebase samsung-mobile selinux

我试图在Samsung S7上为app设置firebase调试模式,但无法

  

adb shell setprop firebase.analytics.debug-mode com.roostertech.net.app

     

avc:拒绝{set} for property = firebase.analytics.debug-mode pid = 19845 uid = 2000 gid = 2000 scontext = u:r:shell:s0 tcontext = u:object_r:default_prop:s0 tclass = property_service permissive = 0

随机尝试设置其他属性并被拒绝

  

avc:拒绝{set} for property = log.wtf pid = 21107 uid = 2000 gid = 2000 scontext = u:r:shell:s0 tcontext = u:object_r:log_prop:s0 tclass = property_service permissive = 0

     

avc:拒绝{set} for property = firebase pid = 21086 uid = 2000 gid = 2000 scontext = u:r:shell:s0 tcontext = u:object_r:default_prop:s0 tclass = property_service permissive = 0

但是这个属性log.tag.FA可以设置得很好

  

adb shell setprop log.tag.FA VERBOSE

我找不到任何可以设置的允许属性的文档?

1 个答案:

答案 0 :(得分:0)

每个属性都可以具有自己的上下文,如错误消息中所示。 在property_contexts文件(例如system/sepolicy/private/property_contexts)中定义了到SELinux上下文的属性映射。

您需要确保允许您在进程(shell)中运行的上下文更改上下文default_prop的属性。

您需要在allow个文件之一中为其定义.te策略。

set_prop(shell, default_prop)

如果要找出当前允许设置shell的属性,最好在$OUT/root/sepolicy中检查已编译的selinux文件。由于我手头没有执行该操作的命令,因此建议您使用grep代替规则,现在假设所有规则都已编译到sepolicy文件中。

grep -rni "set_prop(shell" --include="*.te"