天天看點

Android 10.0關閉selinux權限

在開發中,我們經常會遇到由于SELinux造成的各種權限不足,即使擁有“萬能的root權限”,也不能擷取全部的權限,是以怎麼樣關閉selinux權限呢

system/core/init/selinux.cpp

bool IsEnforcing() {
    {
        int fd(open("/mboot/selinux", O_RDONLY | O_CLOEXEC | O_BINARY));
        if (fd != -1) {
            char v = 0xff;
            if (read(fd, &v, 1) < 0)
                PLOG(ERROR) << "Failed to read /mboot/selinux";
            close(fd);
            LOG(WARNING) << "/mboot/selinux is " << v;
            return v == '1';
        }
    }
    if (ALLOW_PERMISSIVE_SELINUX) {
        return StatusFromCmdline() == SELINUX_ENFORCING;
    }
    return true;
}
           

直接return true;就表示關閉selinux權限

2. selinux.cpp isenfocing 強制設定為0

void SelinuxInitialize() {
    Timer t;

    LOG(INFO) << "Loading SELinux policy";
    if (!LoadPolicy()) {