在linux中强制关app,折腾无果?先试试禁用 SELinux

相信我派的读者里不缺喜欢折腾 Android 手机的朋友,而当他们满怀激动地升级到 6.0 以上的系统后,却发现:Viper4Android 无法加载驱动,Flux 启动之后毫无效果,甚至连叹号助手都不能用了!看着 WiFi 图标旁碍眼的叹号,他们的强迫症终于发作了,不禁开始怀疑起自己为什么要手贱升级 6.0,甚至开始怀疑起自己的人生……

有没有补救方法呢?你看一眼题目呗,明显有啊。在新系统上出现的这些小问题,其实都是因为 SELinux。

什么是 SELinux

SELinux (Security-Enhanced Linux) 主要由美国国家安全局开发,是一种强制访问控制的实现。它的作法是以最小权限原则为基础,在Linux核心中使用Linux安全模块。它并非一个 Linux 发行版,而是一组可以套用在类 Unix 操作系统的修改。

如果仅从 Android 设备来说,SELinux 就像是在你获取 Root 权限之后的最后一道守门神。它阻止了某些非授权访问,在一定的意义上保证了你设备的安全。

可是这也带来了一些麻烦:SELinux 是白名单放行机制,只要没有定义的操作就全部拒绝。这对于普通用户来说无大碍,可 Flux、Viper4Android 等软件的实现方法都是在内核级别加载驱动,而 SELinux 的存在让它们无法访问内核驱动,进而无法工作。

那关闭 SELinux 到底安不安全呢?理论上是会对设备的安全性造成影响。SELinux 会阻止几乎所有的 .so 文件加载并运行,这阻止了部分病毒大展手脚。但是!当你尝试关闭 SELinux 时,我们可以默认为你已经获得了 Root 权限——也就是说,病毒获取到 Root 权限之后,也只需要一句话就可以关闭 SELinux。如果这么看的话,从你 Root 设备开始,你的设备就变得不那么安全了。

在 Linux 上,无论是关闭 SELinux 还是增加 SEPolicy 都只需要一两条命令都能完成,可是在 SEAndroid 中没有提供永久关闭 SELinux 的方法,而更改 SEPolicy 需要对内核进行修改。所以,要在 Android 系统上解决这个问题就需要我们花一点心思了。

关闭方法

SELinux 的关闭方法有多种,本文介绍较为典型的两种。某些第三方 Rom 在开发者设置或者其他地方已经内置了此选项,开启即可。

简单粗暴,App 一键关闭

对于普通用户,最简单的可能是使用 App 来实现这一操作了。

SELinuxModeChanger 酷安 下载

安装完软件后,给予它 Root 权限,并点击主界面上的 Permissive ,并保证它可以在开机时自动启动即可。SELinuxModeChanger 虽然使用简单,但是在一定几率下可能会不起作用。

4db71bd7f805af8624080b0ef29d4f90.png

一劳永逸:脚本+终端模拟器

相信许多同学的强迫症也不能容许手机里多一个日常不会用到的 App。那么,也许你需要的是一个更 Geek 向的解决方法!

此方法仅适用于使用 SuperSU 的用户,如果你正在使用 Kingroot ,可以用 SuperSU Me 来替换权限管理工具。

步骤1. 判断目前你的 Root 状态

系统版本 < 6.0;或系统版本 > 6.0 且根目录下不存在 /su 目录

此时,在 /system 目录下新建 su.d 目录;若已存在此目录,则不需要新建。

注意:su.d 中间的「.」点必须是英文半角点,且中间不能有空格,下同。

系统版本 > 6.0,且根目录下有 /su 目录

此时,在 /su 目录下新建 su.d 目录;若已存在此目录,则不需要新建。

e331f279d21cc5debacec05cd732a3c7.png

步骤2. 新建脚本文件

下载所需文件 ,并将其中的文件解压出来,放到第一步中新建的文件夹内(即:/su/su.d 或 /system/su.d)。

步骤3. 设置文件权限

使用 ES 文件浏览器或其他同类文件选择 permissive.sh,点击属性-权限,将权限设置为rwx r- r-,即:读权限全勾,写权限勾所有者,执行权限勾所有者。

674c71ceb035c244c0c6b07bb9629a36.png

亦可在终端模拟器中依次执行以下命令:

su

chmod +x /su/su.d/permissive.sh

chmod +x /system/su.d/permissive.sh

至此为止,此方法的所有步骤都已经完成。

如何判断是否已关闭 SELinux

重启手机后,进入「设置 - 关于本机」,找到 SELinux 状态,若为「许可」即关闭成功;或在终端模拟器内输入 getenforce 来获取相关状态。

65e41b2c9993dee24001f52d893f40f6.png

扩展阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值