Android SELinux规则如何编写,工具处理

1.直接从日志中获取信息添加缺失的SELinux权限

[    3.342984] audit: type=1400 audit(243.435:7): avc:  denied  { open } for  pid=313 comm="sn_writer" path="/dev/__properties__/u:object_r:vendor_product_prop:s0" dev="tmpfs" ino=14874 scontext=u:r:startup:s0 tcontext=u:object_r:vendor_product_prop:s0 tclass=file permissive=0
  1. 上方denied { open }的{ open }表示执行的操作。根据它和末尾的 tclass=file permissive=0,可以大致了解是对什么对象执行什么操作被拒绝了。
  2. scontext=u:r:startup:s0 表示发起相应操作的环境,此示例表示的是startup service。
  3. tcontext=u:object_r:vendor_product_prop:s0 表示操作目标的环境,在此示例中是归 startup 所有的某个 file。
  4. comm="sn_writer" 可帮助了解拒绝事件发生时正在运行的程序。

 可以总结出selinux权限语法为:

allow [scontext] [tcontext]:[tclass] [denied];
allow startup vendor_product_prop:file open;

2.audit2allow使用总结

  1. 把手机里面的policy文件拉到工程根目录
  2. 配置环境变量
  3. 复现场景
  4. 导出dmesg/logcat喂给audit2allow生成selinux rule

3.可以直接使用可视化工具处理

GitHub - fq0222/android_selinux_tools: 帮助开发者快速根据日志,生成Allow规则语句。




 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值