在android 4.4.4及以上版本中,如何将SELinux设置为0或许可模式?
我想在android 4.4.4(如果可能的话,还可以更高版本)上将SELinux(安全增强Linux)模式设置为Permissive或(0)。我使用以下命令:在android 4.4.4及以上版本中,如何将SELinux设置为0或许可模式?,android,android-4.4-kitkat,selinux,Android,Android 4.4 Kitkat,Selinux,我想在android 4.4.4(如果可能的话,还可以更高版本)上将SELinux(安全增强Linux)模式设置为Permissive或(0)。我使用以下命令:setenforce 0、setenforce permissive和根目录下的setenforce permissive(我的设备是根目录)。但是getenforce的输出总是Enforcing。现在我对这个问题已经精疲力尽了 有谁能给我一个解决办法吗?提前感谢。这取决于设备的根目录以及运行的Android ROM将决定如何禁用它。首先
setenforce 0
、setenforce permissive
和根目录下的setenforce permissive
(我的设备是根目录)。但是getenforce
的输出总是Enforcing
。现在我对这个问题已经精疲力尽了
有谁能给我一个解决办法吗?提前感谢。这取决于设备的根目录以及运行的Android ROM将决定如何禁用它。首先要尝试的是:
adb shell su 0 setenforce 0
这与:
adb shell setenforce 0
su上的execute导致域从shell(不能setenforce)转换到su域(可以调用setenforce)。例如,运行:
$ adb shell id -Z
context=u:r:shell:s0
与之相比:
$ adb shell su 0 id -Z
context=u:r:su:s0
这可能会失败,原因有三:
CONFIG\u SECURITY\u SELINUX\u DEVELOP
内核标志。因此,William(下面)提到的标准技巧可能不起作用。这些设备的一个例子是运行AOS 4.4.4的三星Note 4(SM-N910F)
上面的链接说明:
CONFIG_SECURITY_SELINUX_develope又称全局许可模式,用于
当您第一次为电路板开发特定于设备的策略时(添加
“androidboot.selinux=permissive”可用于板(内核(CMDLINE))。它也
允许在-userdebug或-eng生成中执行临时设置0,可以
对开发者有帮助
如果引导加载程序已锁定,则无法修改内核cmdline
另外,init程序中用于处理
androidboot.selinux=
选项仅在-userdebug
和-eng
版本中编译,因此即使除了引导加载程序锁定之外,您也不能使用
androidboot.selinux=permissive
对-用户
构建。”
检查生成类型的方法是:
$ getprop ro.build.type
user
一定要扎根!不确定这是否适用于KitKat(它应该),但我在Nexus6上使用它。在终端或ADB外壳中运行以下各项:
su
mount -o remount,rw /system
mkdir /system/su.d
echo "#!/system/bin/sh" > /system/su.d/permissive.sh
echo "echo 0 > /sys/fs/selinux/enforce" >> /system/su.d/permissive.sh
chmod 755 /system/su.d/permissive.sh
并在重新启动后通过以下方式进行检查:
su
/system/bin/getenforce
chmod 755/system/su.d/permissive.sh
在我的例子中,自上次供应商升级以来,u:r:su:s0
上下文不再存在。如何将其添加到/sepolicy
?
su
/system/bin/getenforce