系列文章目录
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的使用
第一步:从及其中抓取全部log生成对应的log文件。
抓取命令如下:
adb logcat –b all | grep avc >log.txt
一般log.txt内容如下:
12-15 12:52:16.779 11931 11931 I auditd : type=1400 audit(0.0:24731): avc: denied { sendto } for comm="testservice" name="testservice_error" dev="vdj" ino=14 sco
ntext=u:r:testservice:s0 tcontext=u:object_r:test_daemon:s0 tclass=unix_dgram_socket permissive=1
第二步:处理log文件
此时需要将生成的log文件最后一行未打全的log进行删除
第三步:在ubuntu终端下直接分析log生成对应的te文件
audit2allow –i log.txt >log.te
生成对应的内容例如下:
第四步:根据抓取的生成的te文件确定需要添加的文件名
此时========testservice.te========代表我们需要在testservice.te这个文件下添加提示的te语句
allow testservice test_daemon:unix_dgram_socket sendto;
第五步:编译打包
安卓编译三部曲
1.source build/envsetup.sh
2.lunch
3.make -j8
第六步:将ubuntu下编译的镜像刷写进入机器中
android侧常用刷写指令
fastboot devices:列出所有已经进入fastboot模式的设备。
fastboot erase system 擦除设备指定的分区
fastboot flash system system.img 将指定的image文件刷入设备的指定分区。
fastboot reboot:重启设备。
第七步:验证
开机启动后,找到testservice.te对应的进程名,本文进程名也是testservice
ps -A|grep testservice
然后抓取avclog,自己添加的te语句对应的avc log是否出现,若未出现,则修改成功。
logcat -b all --pid=3584|grep avc
2.audit2allow无法使用的问题
2.1 问题
在使用audit2allow工具自动生成avc语句时,可能会出现此问题
2.2 解决办法
1.cd /usr/bin/
2.vim audit2allow
3.把文件的第362行到365行注销掉,保存
4.重新执行audit2allow –i denied.txt >deniedte.txt语句即可
版权归原作者 handsomethefirst 所有, 如有侵权,请联系我们删除。