Android 10 如何关闭selinux权限

在Android 10中遇到应用无法访问设备节点的selinux权限问题时,可以通过修改系统源码或者使用adb命令来关闭selinux权限。本文介绍了在`/system/core/init/selinux.cpp`中修改`SelinuxInitialize()`和`IsEnforcing()`方法,以及通过adb命令`setenforce 0`、修改dts bootargs参数和直接使`IsEnforcing()`返回false等三种方法,来实现权限关闭,并讨论了不同方法的生效范围和持久性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于应用层访问设备节点的时候,因为selinux权限问题而访问不了,所以就先关闭selinux
代码路径:
system/core/init/selinux.cpp
1、在/selinux.cpp文件中SelinuxInitialize()方法初始化selinux权限问题

void SelinuxInitialize() {
Timer t;

LOG(INFO) << "Loading SELinux policy";
if (!LoadPolicy()) {
    LOG(FATAL) << "Unable to load SELinux policy";
}

bool kernel_enforcing = (security_getenforce() == 1);
bool is_enforcing = IsEnforcing();
if (kernel_enforcing != is_enforcing) {
    if (security_setenforce(is_enforcing)) {
        PLOG(FATAL) << "security_setenforce(%s) failed" << (is_enforcing ? "true" : "false");
    }
}

if (auto result = WriteFile("/sys/fs/selinux/checkreqprot", "0"); !result) {
    LOG(FATAL) << "Unable to write to /sys/fs/selinux/checkreqprot: " << result.error();
}

// init's first stage can't set properties, so pass the
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

android framework

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值