Android 10 新增设备节点的读写 的writable
Android 10 项目中 在/sys 下新增一节点
加入读写权限之后 还是写入失败
分析如下
before
type vendor_sysfs_sensors, sysfs_type, fs_type;
/sys/class/sensors(/.*)? u:object_r:vendor_sysfs_sensors:s0
allow hal_sensors vendor_sysfs_sensors:file rw_file_perms;
error logs
04-30 18:33:06.380 5062 5097 E Camera : camera openjava.io.FileNotFoundException:****: open failed: EACCES (Permission denied)
04-30 18:33:06.369 5062 5062 W FinalizerDaemon: type=1400 audit(0.0:114): avc: denied { write } for name="***" dev="sysfs" ino=37342 scontext=u:r:hal_sensors :s0:c512,c768 tcontext=u:object_r:vendor_sysfs_sensors:s0 tclass=file permissive=0 app=org.codeaurora.snapcam
after
type vendor_sysfs_sensors , fs_type, sysfs_type, mlstrustedobject;
/sys/class/sensors(/.*)? u:object_r:vendor_sysfs_sensors:s0
allow hal_sensors vendor_sysfs_sensors:file rw_file_perms;
总结
添加 mlstrustedobject 生效
mlstrustedobject 相关
mlstrustedobject:这一attribute包含了所有能越过MLS检查的客体type
#如果需要Write sysfs 请如下设置
type sysfs_writable, fs_type, sysfs_type, mlstrustedobject;