关闭SELinux的avc权限,使应用跳过这个权限认证:
O版本如下,S版本文件已更新
avc权限限制后会报错,
avc: denied { 操作权限 } for pid=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类型 permissive=0
在
system/core/init/init.cpp
函数selinux_is_enforcing,直接返回false,就是se允许权限了。
static bool selinux_is_enforcing(void)
{
/*/
if (ALLOW_PERMISSIVE_SELINUX) {
return selinux_status_from_cmdline() == SELINUX_ENFORCING;
}
return true;
/*/
return false;
//*/
}
selinux_status_from_cmdline()这个函数上面也有定义,就是返回一个状态,如果是SELINUX_ENFORCING,那就得限制权限了,如果不是就返回false,跳过权限限制
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是 Linux 的一个安全子系统。SELinux 主要作用是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。对资源的访问控制分为两类: DAC和MAC
- enforcing: 强制模式, 执行SELinux规则, 违反的行为会被阻止
- permissive: 宽容模式, 执行SELinux规则, 违反的行不会被阻止
- disabled: 关闭SELinux