SELinux,Security Enhanced Linux 的缩写,也就是安全强化的 Linux,是由美国国家安全局(NSA)联合其他安全机构(比如 SCC 公司)共同开发的,旨在增强传统 Linux 操作系统的安全性,解决传统 Linux 系统中自主访问控制(DAC)系统中的各种权限问题(如 root 权限过高等)。
C:\Users\Admin>adb shell
msm8953_64:/ # setenforce 0
msm8953_64:/ # getenforce
Permissive
msm8953_64:/ # setenforce 1
msm8953_64:/ # getenforce
Enforcing
-
0: 切换成 permissive(宽容模式),即关闭SELinux
-
1: 切换成 enforcing(强制模式),即打开SELinux
//Android源码部分
system\core\init\selinux.cpp
enum EnforcingStatus { SELINUX_PERMISSIVE, SELINUX_ENFORCING };
EnforcingStatus StatusFromCmdline() {
EnforcingStatus status = SELINUX_ENFORCING;
ImportKernelCmdline([&](const std::string& key, const std::string& value) {
if (key == "androidboot.selinux" && value == "permissive") {
status = SELINUX_PERMISSIVE;
}
});
return status;
}