SELinux avc 权限, audit2allow 使用

若在log出现“ avc:”则按照调试添加权限。

使用avc关键词查找权限相关log
adb logcat -b all | grep "avc:"

进行操作复现问题,抓取最新日志,eg:

05-28 11:41:34.264  7393  7393 I auditd  : type=1400 audit(0.0:383): avc: denied { read } for comm="m.android.email" name="vmstat" dev="proc" ino=4026532351 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=0
05-28 11:41:34.264  7393  7393 W m.android.email: type=1400 audit(0.0:383): avc: denied { read } for name="vmstat" dev="proc" ino=4026532351 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=0
05-28 11:43:05.454  7696  7696 I auditd  : type=1400 audit(0.0:384): avc: denied { read } for comm="m.android.email" name="vmstat" dev="proc" ino=4026532351 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=0
05-28 11:43:05.454  7696  7696 W m.android.email: type=1400 audit(0.0:384): avc: denied { read } for name="vmstat" dev="proc" ino=4026532351 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=0

创建任意文件,粘贴日志内容,eg:创建文件名称为se.txt,而后使用如下命令:

ubuntu@ubuntu:~$ audit2allow -i se.txt               //很重要的一个以python写的命令,主要用来处理日志,把日志中的违反策略的动作的记录,转换成 access vector
//如果没有该指令,执行安装
sudo apt-get install policycoreutils

得到结果:

#============= untrusted_app_25 ==============
allow untrusted_app_25 proc:file read;

修改该路径下的文件:/device/qcom/sepolicy/common/ untrusted_app_25.te,在文件添加上述语句:

allow untrusted_app_25 proc:file read;

如果没有相似的文件,使用下面查找

grep -rsn "untrusted_app_25" .
///得到结果//
./untrusted_app_25.te:29:hal_client_domain(untrusted_app_25, hal_perf);
./untrusted_app_25.te:32:hal_client_domain(untrusted_app_25, hal_iop);
./untrusted_app_25.te:35:allow untrusted_app_25 vendor_file:file {getattr open read};
./untrusted_app_25.te:38:allow untrusted_app_25 vendor_file:file execute;
./untrusted_app_25.te:41:allow untrusted_app_25 exfat:dir search;
./untrusted_app_25.te:42:allow untrusted_app_25 fuseblk:dir search;
./untrusted_app_25.te:44:allow untrusted_app_25 proc:file read;
///模仿修改/

编译 vendorimage、bootimage 验证。

参考链接:
Selinux SeAndroid理解
SELinux audit2allow命令使用

SELinux avc权限--audit2allow相关推荐

  1. Android 修改 SELinux avc 权限的方法

    系统版本:Android 11.0     平         台:RK3568 在 Android 系统的开发及适配过程中,我们常常需要对 SELinux avc  权限进行修改,以下是我对 SEL ...

  2. 2022-07-20 Android 11 SELinux avc 修改sys目录下面某个节点的权限

    一.我这里有/sys/devices/platform/thermal-camera-control/powerenable 这样一个节点,用命令ls -Z 查看该文件的域. 二.我现在在一个普通ap ...

  3. Andorid SELinux策略、te语法、avc权限总结

    浅谈te语法 前言 1.引言 2.基本定义 2.1 用type关键字定义类型 2.2 用typealias声明别名 2.3 attribute关键字声明属性/域 2.4 类型与属性/域相关联 3.基本 ...

  4. Android P SELinux (三) 权限检查原理与调试

    Android P SELinux (一) 基础概念 Android P SELinux (二) 开机初始化与策略文件编译过程 Android P SELinux (三) 权限检查原理与调试 Andr ...

  5. android avc格式,Android权限 - avc权限问题

    1.一般来说,如何确认是Selinux权限引起的问题? 通过命令adb shell getenforce,查看Selinux状态 adb shell getenforce Enforcing  //1 ...

  6. Android Selinux avc报错分析

    avc权限报错 E SELinux : avc: denied { find } for interface=vendor.qti.hardware.perf::IPerf sid=u:r:media ...

  7. 以Android L读取系统所有logcat并写入文件为例分析Android 以添加系统进程的方式申请selinux的权限执行shell脚本,以及avc:dined应该怎么申请权限

    添加selinux较好的文章,可以通过adb shell dmesg > kenel.log 获取kmesg 可以看到 avc:dined 相关内容 首先说说环境: 基于Android L的ao ...

  8. 使用audit2allow工具来根据avc log生成selinux规则

    audit2allow工具是google提供的一个原生的python脚本工具,可以根据avc权限错误log信息自动生成selinux规则.使用方法如下: 1.首先抓取设备启动的logcat或者dmes ...

  9. Android 使用 audit2allow 工具添加SELinux权限

    开发应用报错,提示 avc: denied { write } for comm="com.test" name="/" dev="dm-5" ...

最新文章

  1. 大多数的自动驾驶公司,注定要倒闭
  2. 无法relay信件处理一例
  3. Binder源码分析之Native层(原)
  4. idea Scala import spark.implicits._ 报红,无法导入的解决办法
  5. 如何将多个Android Wear手表与单个手机配对
  6. hihoCoder 1092 : Have Lunch Together
  7. Node Version Manager--NodeJS的多版本管理工具--轻松实现多个版本的NodeJS的管理开发
  8. 如何编辑PDF文件,教你几招轻松搞定
  9. 巧用DOS命令打印上线文件列表
  10. 一路走来一路歌—我和团队有个约会
  11. Python入门--字符串的比较
  12. oracle建库并使用HR范例,Oracle HR样例数据库建立
  13. 洛谷.U19464.山村游行wander(LCT 伪期望)
  14. Python如何使用生成器得到斐波那契数列
  15. 倍福BECKHOFF PLC:自动化编程笔记
  16. 激荡三十年:1978-2008 之序
  17. K8s入门:Docker,kubectl,Kind的安装
  18. 深入机器学习系列之自然语言处理
  19. GL_INVALID_OPERATION
  20. 一文带你看懂JAVA IO流,史上最全面的IO教学啦(附送JAVA IO脑图

热门文章

  1. 《三国群英传2网络版》所有装备掉落查询
  2. Differentially Private Deep Learning with Iterative Gradient Descent Optimization
  3. Oracle 监听端口被占用,别的端口也提示占用
  4. 服务器搭建微信会员卡系统,智络会员管理系统如何与微信对接
  5. MySQL-DQL语句
  6. vue3.2+ 滑动验证组件,pc/手机通用,即插即用
  7. git pull origin master与git pull --rebase origin master的区别
  8. JAVA有关NFC读卡器读取数据
  9. python文件有几种类型、分别是什么_4. 内置类型
  10. 2016年4月1日作业