Android 4.2在内核上默认启用了SELinux

时间:2013-04-05 22:55:23

标签: android linux operating-system selinux

  1. 正如我所理解的那样,Android 4.2在内核上默认启用了SELinux。我对吗?反正有禁用它吗?
  2. 有些应用可能无法正常运行。

    实施例。使用mount命令系统已停止工作

    1. 是否有禁用它?我检查VZW Galaxy Nexus - 构建JDQ39 - 我不确定什么是Linux版本 - SELinux或Linux。

    2. 在Android设备上使用SELinux VS Linux有什么好处。

    3. 问候,

5 个答案:

答案 0 :(得分:1)

要正确SELinux仅在4.4中针对特定进程启用: “在Android 4.3中,SELinux是完全宽容的。在Android 4.4中,SELinux被强制执行几个根进程的域:installd,netd,vold和zygote。所有其他进程,包括其他服务和所有应用程序,仍然处于允许模式允许进一步评估并防止Android 4.4中的失败。但是,错误的应用程序可能会在不允许的根进程中触发操作,从而导致进程或应用程序崩溃。“

答案 1 :(得分:0)

不,默认情况下不启用。 Android上没有默认启用的功能,每个手机制造商都会设置配置并在制作新设备时进行修改。即使AOSP在其内核中默认启用它(它没有),制造商也必须在其内核中启用它。

SELinux是Linux,具有强制访问控制。请阅读SELinux。

即使是配备SE Android(SELinux + Android中间件MAC)的设备(例如,Galaxy S IV),默认情况下也会处于许可模式。您需要MDM客户端将其设置为强制执行。

答案 2 :(得分:0)

可以绕过安装问题。

诀窍是在设备上使用adb本地连接到设备并通过它发出mount命令。在adb中运行时,您似乎无法阻止mount在应用程序中工作。我不认为这是SELinux的关联,它似乎与多用户安全性有关,显然主要存在于Android api而不是内核级别(控制台应用程序应该可以很好地访问坐骑)。

对于4.2.2,现在需要为adb设置密钥设置有点困难。

看看here,它适用于Nexus 10,但基本原则应适用于任何事情。

答案 3 :(得分:0)

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不是您问题的原因。

另外,为了使用SE Linux而不是Linux,有很多。最重要的是除了DAC之外还使用MAC。 您可以参考this,然后可以转到该部分,其中介绍了如何使用SE Android增强Android的安全性,并可以缓解之前发生的许多漏洞。

答案 4 :(得分:0)

如果您设备已植根,则可以将其连接到计算机上,只需执行

即可
adb shell
su
setenforce 0

禁用SELinux。还有其他方法可以禁用它,其中一些包括将0写入某些/ dev / ...或/ sys / ...设备。

在大多数设备上,只有本地安装的mount命令才允许您进行任何安装。通常可以使用busybox修复此问题。只需安装busybox,或将其推送到本地目录,并以 busybox mount -o remount,rw / system 为例重新安装系统可读写。