如何排查并解决SEAndroid 的审计不通过
来源:互联网 发布:koala for mac 编辑:程序博客网 时间:2024/05/16 15:35
Android 5.0 之后,SEAndroid所有的部分均为Enforcing模式;如果当某个操作不被SEAndroid允许时,例如对文件进行write,该如何排查出信息,同时,在sepolicy中,添加上相应的allow语句,将权限开放出去;
1:SEAndroid不允许时,log记录在哪里?
SEAndroid的审计不通过时,log记录在dmesg 中,dmesg是kernel的log,如果想要获取该log,可以使用如下命令:
adb shell su -c dmesg ----- 获取kernel log
2: 查看SEAndroid 不允许的log
SEAndroid 审计不通过的log,带有"avc:" 所以,用如下命令即可搜集到审计不同的log:
adb shell su -c demsg | grep 'avc:' ---- 得到审计不通过的log信息
如果有审计不通过的,会得出如下类似的信息:
<5> type=1400 audit: avc: denied { read write } for pid=177comm="rmt_storage" name="mem" dev="tmpfs" ino=6004 scontext=u:r:rmt:s0tcontext=u:object_r:kmem_device:s0 tclass=chr_file不被允许的操作是:read 和write
访问者是:u:r:rmt:s0
被访问者是:u:object_r:kmem_device:s0
操作对象是:chr_file
相当于在sepolicy 策略语言中,缺乏这样的语句allow rmt kmem_device:chr_file {read write}
TIP:
pid=177 表示访问者所在的进程,comm中给的是一个提示,表示当这个denial发生时,什么正在运行;
3:如何消除这样的不通过
很简单,可以直接在sepolicy中加上这样的策略语句;
例如上处avc不通过,可以在/external/sepolicy/ 目录下,新建一个test.te
在test.te 中写入,allow rmt kmem_device:chr_file {read write},
重新编译策略语言,刷机即可;
但是当avc很多时,人工去看容易出错且慢,我们可以使用工具来完成这项工作;
selinux/policycoreutils/audit2allow环境搭建:
测试电脑的配置是:unbutu 12.04
step 1:在 ubuntu中安装policycoreutils
sudo apt-get install policycoreutils
step 2 : 使用audit2allow 工具完成策略语言的添加:
adb shell su -c dmesg | audit2allow
例如上诉avc语句就会输出:
#============= rmt ==============allow rmt kmem_device:chr_file { read write };
TIP:
1: 要知道,audit2allow是policycoreutils中的工具之一
2:如果在ubuntu 14.04 或者更新的版本中,可以直接将策略语句插入到编译好的sepolicy中
命令如下:
adb shell su -c dmesg | audit2allow -p out/target/product/<device>/root/sepolicy
0 0
- 如何排查并解决SEAndroid 的审计不通过
- 如何排查解决修改表结构,改表名超时的问题
- C++编译不通过问题排查
- seandroid 如何添加被denied的权限
- 工厂模式解决如何不通过new来创建实例对象的方法
- codeblock pthread 编译不通过的解决
- 解决添加新的图片编译不通过
- SEAndroid 解决案例
- SEAndroid 解决案例
- 如何解决直播过程中直播功耗高的问题 | 直播疑难杂症排查
- 用ProcessExplorer和WinDbg排查并解决“无响应”
- SEandroid是如何使用max_permissions.xml seapp_contexts的?
- seandroid 如何添加被denied的权限(avc denied)
- 关于vc6.0中很多函数编译不通过的解决:
- 关于vc6.0中很多函数编译不通过的解决:
- 如何解决Bug并养成固定良好的解决思绪
- Android程序中如何排查和解决异常
- 如何不通过白名单获取手机的UA
- 【爬虫-反爬虫】系列一:基础之概述(1)
- Unity3d使用心得(2):Unity3d 动态下载动画资源——AnimationClip 的使用
- Android5.x之RecyclerView使用(5)网格布局
- leetcode Median Of Two Sorted Arrays
- 用libevent实现httpserver
- 如何排查并解决SEAndroid 的审计不通过
- 【leetcode】278. First Bad Version
- Android架构实例分析之编写hello驱动的HAL层代码
- 切换场景的动画
- Just a Html
- 时间空间
- 小数值1.5625的二进制表示是?----阿里巴巴2015实习生笔试题
- django render和render_to_response()
- HashMap以及跟HashMap相关的内容