安卓修改init进程属性权限
在setprop sys.usb.config acm设置属性时,打印出AVC log显示由于sys.usb.config 的权限问题导致属性设置失败。
[ 1030.299334] c0 init: Unable to set property 'sys.usb.config' to 'acm' from uid:2000 gid:2000 pid:3348: SELinux permission check failed [ 1826.206675] c0 selinux: avc: denied { set } for property=sys.usb.config pid=3991 uid=2000 gid=2000 scontext=u:r:shell:s0 tcontext=u:object_r:exported_system_radio_prop:s0 tclass=property_service permissive=0 [ 1826.206675] c0 [ 1826.227133] c0 init: Unable to set property 'sys.usb.config' to 'acm' from uid:2000 gid:2000 pid:3991: SELinux permission check failed
AVC log说明:
- avc: denied:表示当前操作被拒绝。
- {set}:表示被拒绝的操作,{}中含有实际尝试的操作。
- for pid=3348:当前发生avc: denied进程的ID。
- comm="gnss_download":当前发生avc: denied进程的名称,即主体进程名称。
- name=“mmcblkOp17”:操作尝试的目标文件或目录的路径,即客体资源名称。
- dev="tmpfs”:含有这个文件系统的设备节点,客体资源在该文件系统中。7. ino=10268:目标文件或目录的节点号。
- scontext=u:r:gnss_download:s0O:主体进程的安全上下文。
- tcontext=u:object_r:block_device:sO:客体资源的安全上下文。10. tclass=blk_file:访问资源所属类别。
- permissive=0:当前是Enforcing模式,permissive=1时为Permissive模式。