- 正如我正确理解的那样,Android 4.2 引入了内核默认启用的 SELinux。我对吗?反正有没有禁用它?
有一些应用程序可能无法正常工作。
前任。使用 mount 命令系统范围停止工作
反正有禁用它吗?我检查了 VZW Galaxy Nexus - 构建 JDQ39 - 我不确定 Linux 版本是什么 - SELinux 或 Linux。
在安卓设备上使用 SELinux VS Linux 有什么好处。
问候,
有一些应用程序可能无法正常工作。
前任。使用 mount 命令系统范围停止工作
反正有禁用它吗?我检查了 VZW Galaxy Nexus - 构建 JDQ39 - 我不确定 Linux 版本是什么 - SELinux 或 Linux。
在安卓设备上使用 SELinux VS Linux 有什么好处。
问候,
正确地说,SELinux 在 4.4 中仅针对特定进程启用:“在 Android 4.3 中,SELinux 是完全允许的。在 Android 4.4 中,SELinux 对多个根进程的域强制执行:installd、netd、vold 和 zygote。所有其他进程,包括其他服务和所有应用程序,仍处于允许模式,以允许进一步评估并防止 Android 4.4 中的故障。不过,错误的应用程序可能会触发不允许的根进程中的操作,从而导致进程或应用程序崩溃。”
SE Android 是基于 SE Linux 构建的 Android。此 SE Android 可以处于以下三种状态之一:Permissive、Enforcing 和 Disabled。
默认情况下,Android 内核可能构建在 SE Linux for 4.2 上,但默认情况下处于 Permissive 模式。从 4.4 开始,它处于强制模式。并且由于它是允许的,因此它与禁用一样好,只是会记录 AVC 日志。
您可以通过 adb 查看 SE Android 的模式。只需在 adb shell 中输入命令 getenforce,您应该会获得上述状态之一。如果状态是 Permissive 或 Disabled,则 SE Android 不是问题的原因。
同样为了在 Linux 上使用 SE Linux 的好处,还有很多。最重要的是除了 DAC 之外的 MAC 的使用。您可以参考此内容,也可以转到说明使用 SE Android 如何增强 Android 中的安全性并减轻之前发生的许多漏洞的部分。
可以绕过挂载问题。
诀窍是在设备本身上使用 adb 在本地连接到设备并通过它发出 mount 命令。在 adb 中运行时,您似乎摆脱了阻止 mount 在应用程序中工作的任何监狱。我不认为它与 SELinux 相关,它似乎与多用户安全性有关,并且显然主要存在于 Android api 而不是内核级别(控制台应用程序应该可以正常访问挂载)。
使用 4.2.2 会有点困难,因为您现在需要为 adb 设置密钥。
看看这里,它适用于 Nexus 10,但基本原则应该适用于任何事情。
如果您已植根您的设备,您可以将其连接到您的计算机并简单地执行
adb shell
su
setenforce 0
禁用 SELinux。还有其他方法可以禁用它,其中一些包括将 0 写入某些 /dev/... 或 /sys/... 设备。
在大多数设备上,只有本地安装的 mount 命令不允许您进行任何挂载。通常这可以通过使用busybox来解决。只需安装busybox,或将其推送到本地目录并调用busybox mount -o remount,rw /system为例,重新挂载可读写的系统。
不,默认情况下未启用。Android 上确实没有默认启用的功能,每个手机制造商都会在制造新设备时设置配置并进行修改。即使 AOSP 在他们的内核中默认启用它(它没有),制造商也必须在他们的内核中启用它。
SELinux 是具有强制访问控制的 Linux。请阅读 SELinux。
即使是即将附带 SE Android(SELinux + Android 中间件 MAC)的设备(例如 Galaxy S IV)也默认将其设置为许可模式。您需要一个 MDM 客户端将其设置为强制执行。