0


【android 9】【selinux】【2.工具篇】

系列文章目录

可跳转到下面链接查看下表所有内容https://blog.csdn.net/handsomethefirst/article/details/138226266?spm=1001.2014.3001.5501文章浏览阅读2次。系列文章大全https://blog.csdn.net/handsomethefirst/article/details/138226266?spm=1001.2014.3001.5501



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语句即可

标签: android

本文转载自: https://blog.csdn.net/handsomethefirst/article/details/138507051
版权归原作者 handsomethefirst 所有, 如有侵权,请联系我们删除。

“【android 9】【selinux】【2.工具篇】”的评论:

还没有评论