Skytoby

SELinux权限修改

SELinux权限修改

SELinux权限修改

方法一:adb修改SELinux

Enforcing(已打开) Permissive(已关闭)

1
2
3
getenforce    //获取当前seLinux状态
setenforce 1 //打开seLinux
setenforce 0 //关闭seLinux

方法二:从kernel中关闭

修改/kernel/arch/arm64/configs/xxxx_deconfig文件(xxxx一般表示终端产品名),去掉CONFIG_SECURITY_SELINUX=y的配置项

方法三:sepolicy中添加权限

3.1 修改依据

通过指令cat /proc/kmsg | grep denied 或者日志中的标志性log如:avc关键词

3.2 修改步骤

1.找对应的源类型.te文件,此文件可能的存放路径

1
2
3
/external/sepolicy
/device/qcom/sepolicy/common
/device/qcom/sepolicy/private

2.标志性日志

1
avc: denied { 操作权限 } for name="policyvers" dev="selinuxfs" ino=10 scontext=u:r:源类型:s0 tcontext=u:object_r:目标类型:s0 tclass=访问类型 permissive=0

3.在相应源类型.te文件,添加如下格式的一行语句(分号不能漏掉):

1
格式:allow 源类型 目标类型:访问类型 操作权限;

3.3 实例

日志

1
avc: denied { read } for name="policyvers" dev="selinuxfs" ino=10 scontext=u:r:system_app:s0 tcontext=u:object_r:selinuxfs:s0 tclass=file permissive=0

修改方法
在system_app.te文件中,添加如下语句(具体格式可以参考本修改android系统中的.te格式,如read是r_file_perms):

1
allow system_app selinuxfs:file read;