Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问。
本文将以用户自定义的内核节点
/dev/wf_bt为例,手把手教会读者如何在JNI层获得对该节点的访问权限。
第一步:找到需要访问该内核节点的进程(process),笔者自己这个节点由system_server进程来访问
第二步:打开文件AndroidL/android/external/sepolicy/file_contexts.be
仿照这个文件里的写法,为你的节点定义一个你想要的名字:
/dev/tegra.* u:object_r:video_device:s0
/dev/tf_driver u:objec

在Android 5.0中,由于SEAndroid/SELinux的安全机制,即使有root权限也无法直接访问内核节点。本文以/dev/wf_bt为例,详述如何通过修改file_contexts.be和device.te文件,赋予system_server进程对自定义内核节点的读写权限。步骤包括定义节点名称、声明dev_type以及添加进程权限,最后编译验证权限设置。

775

被折叠的 条评论
为什么被折叠?



