SELinux权限修改
方法一:adb修改SELinux
Enforcing(已打开) Permissive(已关闭)
1 | getenforce //获取当前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 | /external/sepolicy |
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; |