RK356X android11 关闭SELINUX
rk356x android11 如何关闭selinux
由于一些节点有权限限制,如果写入会提示PERMISSION DEFINED,一般情况下可以解决avc,但是如果不过GMS认证,可以考虑关闭SELINUX,一劳永逸。
1、判断selinux是否打开
adb shell下getenforce查看权限为Enforcing,说明selinux是打开状态;查看权限为Permissive,说明selinux是关闭状态
2、如何关闭selinux
project/device/rockchip/rk356x/xxxx/BoardConfig.mk
在这个文件中关闭SELINUX,, BOARD_SELINUX_ENFORCING := false;
修改OK后,编译userdebug模式,Selinux已经关闭,但是切换到USER模式后Selinux还是打开状态。
查看代码发现system/core/init/selinux.cpp 有个isEnforcing()方法,
bool IsEnforcing() {
if (ALLOW_PERMISSIVE_SELINUX) {
return StatusFromCmdline() == SELINUX_ENFORCING;
}
return true;
}
Android.go 定义ALLOW_PERMISSIVE_SELINUX,默认值是0,debug模式下ALLOW_PERMISSIVE_SELINUX值是1,所以userdebug模式有效果,user模式没有效果,修改下默认值,如下补丁
Index: Android.bp
===================================================================
--- Android.bp (revision 572)
+++ Android.bp (revision 573)
@@ -109,7 +109,7 @@
"-Wthread-safety",
"-DALLOW_FIRST_STAGE_CONSOLE=0",
"-DALLOW_LOCAL_PROP_OVERRIDE=0",
- "-DALLOW_PERMISSIVE_SELINUX=0",
+ "-DALLOW_PERMISSIVE_SELINUX=1",
"-DREBOOT_BOOTLOADER_ON_PANIC=0",
"-DWORLD_WRITABLE_KMSG=0",
"-DDUMP_ON_UMOUNT_FAILURE=0",
编译android后,关闭Selinux成功。
更多推荐










所有评论(0)