在操作/sys/class/leds/infrared/brightness设备节点的时候log中报了如下的avc错误,
01-01 08:03:07.992 556 556 W ir@1.0-service: type=1400 audit(0.0:246): avc: denied { search } for name="leds" dev="sysfs" ino=24070 scontext=u:r:hal_ir_default:s0 tcontext=u:object_r:sysfs_leds:s0 tclass=dir permissive=0
01-01 08:03:08.742 556 556 W ir@1.0-service: type=1400 audit(0.0:247): avc: denied { search } for name="leds" dev="sysfs" ino=24070 scontext=u:r:hal_ir_default:s0 tcontext=u:object_r:sysfs_leds:s0 tclass=dir permissive=0
selinux权限添加:
根据avc进行分析,hal_ir_default 对 sysfs_leds 缺少 search权限 ,什么类型的文件 dir
修复的方法:
device/qcom/sepolicy/common目录下,创建 hal_ir_default.te这个文件,文件内容如下:
allow hal_ir_default sysfs_leds:dir r_dir_perms;
allow hal_ir_default sysfs_leds:file rw_file_perms;
allow hal_ir_default sysfs_leds:lnk_file r