[英]Escaping colon character in Android selinux
我正在尝试为我的AOSP构建创建自定义selinux策略,其中不受信任的应用程序可以写入/sys/class/leds/led:flash_torch/brightness
从而控制手电筒。
为此,我在external/sepolicy
编辑了以下文件
allow domain sys_flashlight:file rw_file_perms;
type sys_flashlight, fs_type;
allow untrusted_app sys_flashlight:file rw_file_perms;
现在,最后一个难题是文件genfs_contexts
。 理想情况下,我想将此文件更改为包含以下内容:
genfscon proc /sys/class/leds/led:flash_torch/brightness u:object_r:sys_flashlight:s0
首先,请记住上述说法是错误的 。 genfscon proc
仅应与procfs
一起使用。 忽略这一点,由于文件路径包含:
字符,因此构建过程会抱怨:
external/sepolicy/genfs_contexts:11:ERROR 'syntax error' at token ':' on line 12972:
genfscon proc /sys/class/leds/led:flash_torch/brightness u:object_r:sysfs_flashlight:s0
genfscon proc /foreground u:object_r:proc_foreground:s0
checkpolicy: error(s) encountered while parsing configuration
make: *** [out/target/product/hammerhead/obj/ETC/sepolicy_intermediates/sepolicy] Error 1
make: *** Waiting for unfinished jobs....
编写selinux策略时如何转义:
字符?
编辑 :我已经尝试引用路径并使用\\
来尝试逃脱:
没有运气
查看解析器语句中的checkpolicy:
policy_parse.y:139:%token GENFSCON
policy_parse.y:750:genfs_context_def : GENFSCON filesystem path '-' identifier security_context_def
policy_parse.y:752: | GENFSCON filesystem path '-' '-' {insert_id("-", 0);} security_context_def
policy_parse.y:754: | GENFSCON filesystem path
我们看到GENFSCON的路径令牌正在扩展,其定义为:
policy_scan.l:252:"/"({alnum}|[_\.\-/])* { return(PATH); }
因此:在集合中无效。
字符集不包含这些字符,这似乎是一个错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.