Android 赋予自定义节点权限
接到客户反馈在读写串口的时候遇到了权限问题,对于自定义的节点,权限的赋予主要是通过解决avc权限问题实现,首先先讲一下如何自定义节点权限,自定义节点权限主要是在device/droi/common/sepolicy/non_plat目录下定义,具体修改参照如下:
1./device/droi/common/sepolicy/non_plat/file.te:
+# ttyS1
+type droi_ttyS_device, dev_type,mlstrustedobject;
2./device/droi/common/sepolicy/non_plat/file_contexts:
+# ttyS1
+/dev/ttyS1 u:object_r:droi_ttyS_device:s0
3./device/droi/project/init.project.rc:
+# ttyS1
+ chown system system /dev/ttyS1
+ chmod 777 /dev/ttyS1
以上步骤在自定义节点权限后,重新编译调用节点时会报avc权限问题:
avc: denied { 操作权限 } for pid=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类型 permissive=0
avc: denied { read write } for name="ttyS1" dev="tmpfs" ino=18438 scontext=u:r:system_app:s0 tcontext=u:object_r:droi_ttyS_device:s0 tclass=chr_file permissive=0