使用 audit2allow 工具添加SELinux权限的方法

43 篇文章 1 订阅
4 篇文章 0 订阅

1. audit2allow工具的使用

audit2allow 命令的作用是分析日志,并提供允许的建议规则或拒绝的建议规则。

1.1 audit2allow的安装

sudo apt-get install policycoreutils

sudo apt install policycoreutils-python-utils

1.2 auditallow的命令

命令含义用法
-v--version显示程序的版本号并退出
-h--help显示此帮助消息并退出
-b--boot自最近启动的audit的审计消息,与-i冲突
-a--all从审计的log中读取输入,与-i冲突
-i<输入文件>--input从输入文件中读取输入

1.3 audit2allow的使用

第一步:从android log中获取对应的avc log文件

直接抓取avc log命令如下:

adb logcat –b all | grep avc >avc_log.txt

也可以从抓取到的android log中,筛选导出avc log

一般avc_log.txt内容如下:

06-25 04:39:15.811 4534 4534 I auditd : type=1400 audit(0.0:122): avc: denied { execute } for comm="gripper-backgro" path="/data/user/10/tv.danmaku.bilibilihd/lib-main/libijkffmpeg.so" dev="dm-39" ino=37776 scontext=u:r:platform_app:s0:c522,c768 tcontext=u:object_r:app_data_file:s0:c522,c768 tclass=file permissive=0

第二步:处理log文件

此时需要将生成的log文件最后一行未打全的log进行删除

第三步:使用audit2allow工具生成te文件

在ubuntu终端下使用audit2allow工具,直接分析log生成对应的te文件

audit2allow –i avc_log.txt >avc_log.te

生成的avc_log.te对应的内容例如下:

#============= platform_app ==============

allow platform_app app_data_file:file execute;

第四步:根据抓取的生成的te文件确定需要添加的文件名

此时========platform_app.te========

表示需要在platform_app.te这个文件下添加提示的te语句

allow platform_app app_data_file:file execute;

第五步:编译打包

重新对Android源代码进行编译打包生成img文件

第六步:将ubuntu下编译的镜像刷写进入机器中

android侧常用刷写指令

fastboot devices:列出所有已经进入fastboot模式的设备

fastboot erase system 擦除设备指定的分区

fastboot flash system system.img 将指定的image文件刷入设备的指定分区

fastboot reboot:重启设备

第七步:验证

开机启动后,找到之前报avc错platform_app对应的进程名:tv.danmaku.bilibilihd

ps -A|grep tv.danmaku.bilibilihd

然后抓取avclog,自己添加的te语句对应的avc log是否出现,若未出现,则修改成功。

logcat -b all --pid=3584|grep avc

或者直接看对应的程序有没有正常运行,若正常运行,则修改成功

2.audit2allow无法使用的问题

2.1 问题

在使用audit2allow工具自动生成avc语句时,可能会出现此问题

$ audit2allow -i avc_audit.txt > avc_audit.te
ValueError: You must specify the -p option with the path to the policy file.


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/bin/audit2allow", line 381, in <module>
    app.main()
  File "/usr/bin/audit2allow", line 365, in main
    audit2why.init()
SystemError: <built-in function init> returned a result with an error set

2.2 解决方案

对/usr/bin/audit2allow文件进行修改,具体修改方案如下:

$ cd /usr/bin/
$ sudo gedit audit2allow

//把文件的第362行到365行注销掉,保存即可

2.3 验证

重新执行audit2allow –i avc_denied.txt >avc_deniedte.te语句,若正常生成te,则修改成功

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JerryHe

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值