Selinux作用框架
上图摘抄网络
Google原生策略 system/sepolicy
客制化的策略 BOARD_SEPOLICY_DIRS += device/manufacturer/device-name/sepolicy
Android 8.0 之后
- system/sepolicy/public 平台共有策略的全部定义
- system/sepolicy/private 平台私有规则,不会向vendor部分暴露。
- system/sepolicy/vendor 厂商规则,可引用public的规则,不能引用private的规则
- device/manufacturer/device-name/sepolicy 厂商自定义的规则,包括如上的vendor部分
常见SE权限问题解决:
问题:通常发生SE 后会有如下log输出
avc: denied { call } for scontext=u:r:shell:s0 tcontext=u:r:hal_hello_default:s0 tclass=binder permissive=1
解决思路及方法:
缺少什么权限:call
源:shell
目标:hal_hello_default
文件类别:binder
在源的te规则中添加相应allow规则
system/sepolicy/public/domain.te定义的neverallow规则 不能修改因为会导致CTS测试失败