永久关闭SELinux
当我们自己编写native serivce时,如果打开SELinux,往往需要耗费大量无意义的时间在添加权限上面。所以在对系统安全等级要求不是非常严苛的情况下我们可以关闭SELinux。补丁如下:
diff --git a/system/core/init/init.cpp b/system/core/init/init.cpp
index be1c232..adda5d8 100755
--- a/system/core/init/init.cpp
+++ b/system/core/init/init.cpp
@@ -535,11 +535,11 @@ static void selinux_init_all_handles(void)
enum selinux_enforcing_status { SELINUX_DISABLED, SELINUX_PERMISSIVE, SELINUX_ENFORCING };
static selinux_enforcing_status selinux_status_from_cmdline() {
- selinux_enforcing_status status = SELINUX_ENFORCING;
+ selinux_enforcing_status status = SELINUX_DISABLED;
import_kernel_cmdline(false, [&](const std::string& key, const std::string& value, bool in_qemu) {
if (key == "androidboot.selinux" && value == "permissive") {
- status = SELINUX_PERMISSIVE;
+ status = SELINUX_DISABLED;
}
else if (key == "androidboot.selinux" && value == "disabled") {
status = SELINUX_DISABLED;
@@ -557,17 +557,17 @@ static bool selinux_is_disabled(void)
// via the kernel command line "selinux=0".
return true;
}
- return selinux_status_from_cmdline() == SELINUX_DISABLED;
+ return true;
}
- return false;
+ return true;
}
static bool selinux_is_enforcing(void)
{
if (ALLOW_DISABLE_SELINUX) {
return selinux_status_from_cmdline() == SELINUX_ENFORCING;
}
- return true;
+ return false;
}
int selinux_reload_policy(void)
当然如果对系统安全要求很严格,那就需要按照使用的权限逐个添加。这个后面再更新。
发布于 2020-12-13 19:21