Android P SElinux权限调试

Android P SElinux权限调试

在Android P上要开发一个开机过程中运行bin程序,在Android O上权限问题还算比较好解决,而在 Android P上面由于谷歌收紧了 Android SElinux控制,增加了许多neverallow规则,导致调试权限十分不便

开发的bin程序由于要开机运行,因此需要通过init.rc去启动这个bin程序severe。而这个bin程序要去控制“data”分区文件和“sys”文件节点状态。

因此该功能涉及到selinux权限有两部分,一部分是sys下的权限,一部分是data下的权限

在userdebug下SElinux 权限调试模式

由于该功能在开机阶段,不能直接用setenforce 0方式去设置SElinux权限为permissive进行debug,可以采用在自己的te文件添加对自己该部分的permissive权限用于调试,以此bin程序举例

type egbin, domain;
type egbin_exec, exec_type, file_type;
permissive egbin;
#注意:该功能只能用在userdebug、eng版本,user版本会导致编译不通过
init_daemo_domain(egbin)
sys下的权限

由于Android P收紧的对 sysfs 的权限,导致直接配置对sysfs的SElinux权限,会触发编译时的neverallow规则,如

……
allow egbin sysfs:file {
    read getattr open ioctl }
allow egbin sysfs:dir {
    search }
……

上述规则在Android P之前是可以编译通过的,在Android P上是不可以的。推测原因可能是Android P收紧了对“sys”底下的文件权限,如果直接给应用sysfs权限,会导致应用权限太大,可以在sys下干许多事情,很不安全。因此需要细化sys下的权限,对于上面:

  • 问题需要在file.te和file_contexts下添加对于sys具体目录下的组别
#Path:/device/qcom/sepolicy/vendo
  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值