下,因为采取了 的安全机制,即使拥有 权限,或
者对某内核节点设置为 的权限,仍然无法在 层访问。
本文将以用户自定义的内核节点/dev/wf_bt 为例,手把手教会读者如何在 层获得对
该节点的访问权限。
第一步:找到需要访问该内核节点的进程(),笔者自己这个节点由
进程来访问
第二步:打开文件 !
仿照这个文件里的写法,为你的节点定义一个你想要的名字:
/dev/tegra.* u:object_r:video_device:s0
/dev/tf_driver u:object_r:tee_device:s0
/dev/tty u:object_r:owntty_device:s0
/dev/tty[0-9]* u:object_r:tty_device:s0
# We add here
/dev/wf_bt u:object_r:wf_bt_device:s0
"#! 是自定义,其他左右两边的内容都和上面的范例一致。
第三步:打开文件
仿照这个文件里的写法,将刚刚第二步写的 "#! 声明为 :
# Device types
type device, dev_type, fs_type;
type alarm_device, dev_type, mlstrustedobject;
type adb_device, dev_type;
type ashmem_device, dev_type, mlstrustedobject;
type audio_device, dev_type;
type binder_device, dev_type, mlstrustedobject;
type block_device, dev_type;
# We add here
type wf_bt_device, dev_type;
第四步:
目录下很多 文件都是以进程名来结尾的,比如
有针对 #$% 进程的 #$%,有针对 进程的 ,
刚刚从第一步得到,这个节点是由 进程来访问,所以,我们找到
打开,加入允许这个进程对"#! 的读写权限,
# Read/Write to /proc/net/xt_qtaguid/ctrl and and
/dev/xt_qtaguid.
allow system_server qtaguid_proc:file rw_file_perms;
allow system_server qtaguid_device:chr_file
rw_file_perms;