为什么要关selinux?A:我的蝰蛇音效不能用了,要关了才行
B:我的内核调教无法使用,改不了CPU调度,温控
C:性能监视器上读出来的CPU频率是0???
D:绿色守护的唤醒切断提示rom不兼容
。。。。。。
selinux本意是一个保护安卓内核的子系统,就算大家在root了的情况下也无法轻易修改内核,加载驱动之类的。
但是对于我们喜欢搞机的,这个不关简直不能愉快的玩耍了。

关闭selinux的方法也有很多种,
①,(临时)最简单的办法就是在shell命令行里取得root权限以后执行setenforce 0
在终端模拟器上

  1. su
  2. setenforce 0

在电脑上

  1. adb shell
  2. su
  3. setenforce 0

②,(永久,但不是所有手机都可以用)把setenforce 0加到开机脚本里,这个网上也有教程
不过只有一部分机子支持加载开机脚本,(我没深究,估计busybox脚本还有xposed框架总有解决办法)

③,(伪永久)第三方软件开机自动执行shell指令,比如selinux mode changer,镧系统工具箱,都提供了免开机脚本的关闭selinux
不过,不能禁用它们的开机自启,不能黑域它们,会导致开机命令失效。!!!最关键是我这样的强迫症不能忍!!!

④,(通用,永久,彻底)那么方法4就出炉了
因为我之前刷了lineageOS后发现默认selinux是enforce模式,但是刷入radon内核以后,提供了设置为永久permissive模式的选项!!!
我用radon内核觉得充电没有官方快,想刷回miui8,顺便研究了一下radon内核的刷机脚本。最后在安卓源码官网上找到了一种办法就是在commandline里加入androidboot.selinux=permissive
具体操作过程如下

1,解压你当前系统的刷机包(卡刷包,线刷包均可,只要含有boot.img文件就行了)
 
2,解包boot.img  Android Image Kitchen.rar (1.98 MB, 下载次数: 4043) 
把boot.img托到unpackimg.bat上

得到如下目录结构
 


点开split_img文件夹,用文本编辑器打开boot.img-cmdline文件
 

在中间插入

  1. androidboot.selinux=permissive
复制代码

像这样,所有的指令都在一行,中间用空格隔开,千万不要换行,也千万别使用windows自带的记事本之类的软件打开,建议用notepad++或UltarEdit,以免到时候内核命令行加载失败(我没验证,只是以防万一,就照着这样做就行了)



3,修改过以后保存,然后双击repackimg.bat重新打包。得到image-new.img,也就是修改过的boot文件
 
4,把image-new.img 改名为boot.img
在当前路径下打开cmd窗口
手机重启进入fastboot模式后连上电脑
执行如下命令

  1. fastboot flash boot boot.img
复制代码

(或者用改过的boot.img镜像文件直接替换掉你刷机包里的boot.img文件,然后刷机就行了)

5,开机以后进入终端模拟器,验证一下是不是成功了
在终端模拟器里输入

  1. su
  2. getenforce
复制代码

回显内容是permissive就说明成功了以后开机selinux都是许可模式了,当然,如果你之后再刷完整包升级,或者用miflash刷了官方的系统,卡刷了第三方的rom,那么你要按照这个方法来改写刷机包里面的boot.img镜像刷入刷机包,或者fastboot单刷改过的boot。

自此,教程结束,希望广大有强迫症的机友,看了我这篇教程以后可以解决心头的纠结了,不需要装第三方软件开机自启,在不兼容开机脚本的机子上也可以使用的比较彻底的关闭selinux enforce mode的方法。
如果大家按照我的教程成功了,不要忘了分享噢~

 

via。http://www.miui.com/thread-9137678-1-1.html