运行avc denied的日志:

[ 20.626831] type=1400 audit(81582.939:4): avc: denied { read write } for comm="tee" name="mmcblk1rpmb" dev="tmpfs" ino=25616 scontext=u:r:tee:s0 tcontext=u:object_r:device:s0 tclass=chr_file permissive=0

根据SEinux policy规则,我们在相应的.te文件中添加allow规则

allow tee device:chr_file { open read write };

接着编译一下android,发现编译会报never allow的错误,报错内容如下:

libsepol.report_failure: neverallow on line 444 of system/sepolicy/public/domain.te (or line 12990 of policy.conf) violated by allow tee device:chr_file { read write };

libsepol.check_assertions: 1 neverallow failures occurred

Error while expanding policy

报错原因也比较直接,就是domain域中指明的规则,我们先看下为什么会报错吧

直接打开编译报错中那个domain.te,路径:system/sepolicy/public/domain.te,找到和我们添加的部分,搜索“device:chr_file”,可以找到如下内容了,看一下就明白了,不允许我们这样修改了。

# Don't allow raw read/write/open access to generic devices.

# Rather force a relabel to a more specific type.

neverallow domain device:chr_file { open read write };

那是什么原因导致的这个编译报错呢?

说直白一点就是当前这个process进程申请的权限过高了。

那有没有办法绕过这个报错呢?

当然是有的,可以参考如下步骤:

1、先查看一下是哪些相关的代码申请的这个权限,主要是判断一下是申请的属性还是device节点访问权限等。

2、新增加一个SELinux type

根据申请的类型可以进修改一下访问的Object的Lable

比如我这里是device节点,那我就在device.te中

type my_rpmb_device, dev_type;

3、绑定文件到这个SELinux type

因为我这里知道我访问的是/dev/mmcblk1rpmb节点,我在第一步中确认的,

所以在file_contexts中添加如下代码。

/dev/mmcblk1rpmb u:object_r:my_rpmb_device:s0

4、修改te文件,添加process/domain的访问权限

这里就比较简单了,直接添加对应的规则就可以了。

allow tee my_rpmb_device:chr_file { open read write };

最后重新再编译一下android,就不会再报之前的编译问题了

android 解决AVC问题相关推荐

  1. android 自定义view文字不齐,Android 解决TextView排版参差不齐的问题

    Android 解决TextView排版参差不齐的问题 在app中,展示数据时,里面有汉字.数字.特殊字符时,由于全角.半角问题导致TextView参差不齐.在网上找了许多,半角转全角并没什么用,还有 ...

  2. Android解决程序切换后台被干掉,恢复状态问题

    Android解决程序切换后台被干掉,恢复状态问题 参考文章: (1)Android解决程序切换后台被干掉,恢复状态问题 (2)https://www.cnblogs.com/caiwan/p/And ...

  3. Android 解决Android的TextView和EditText换行问题

    Android 解决Android的TextView和EditText换行问题 参考文章: (1)Android 解决Android的TextView和EditText换行问题 (2)https:// ...

  4. Android解决NDK not configured问题

    Android解决NDK not configured问题 参考文章: (1)Android解决NDK not configured问题 (2)https://www.cnblogs.com/chen ...

  5. Android 解决RecyclerView删除Item导致位置错乱的问题

    Android 解决RecyclerView删除Item导致位置错乱的问题 参考文章: (1)Android 解决RecyclerView删除Item导致位置错乱的问题 (2)https://www. ...

  6. Android 解决不同进程发送KeyEvent 的问题

    Android 解决不同进程发送KeyEvent 的问题 参考文章: (1)Android 解决不同进程发送KeyEvent 的问题 (2)https://www.cnblogs.com/TerryB ...

  7. android 解决Error:This Gradle plugin requires Studio 3.0 minimum

    今天,继续简单讲讲如何解决Error:This Gradle plugin requires Studio 3.0 minimum. 之前讲过这个问题,有点不全面,所以再记录一下. 原因:项目用的是3 ...

  8. android 解决Error:This Gradle plugin requires a newer IDE able to request IDE model level 3. For Andro

    今天,简单讲讲android studio导入工程时,出现报错Error:This Gradle plugin requires a newer IDE able to request IDE mod ...

  9. Android 解决: Failed to resolve: com.android.support:appcompat-v7:28.+ 错误

    今天,简单讲讲Android studio编译报错:Failed to resolve: com.android.support:appcompat-v7:28.+的问题. 这个问题其实之前遇到过,今 ...

最新文章

  1. C# 异步读取数据库里面的数据与绑定UI的解决办法
  2. 开发者如何构建技术影响力
  3. 程序员感悟----路该怎么走
  4. windows1064安装oracle,在Windows 10系统下安装Oracle 11g数据库
  5. 老男孩博客获三大搜素引擎搜索自然排名第一位(百度谷歌搜狗)
  6. Android -- ADT变化aarLint
  7. 解决“无法找到运行搜索助理需要的一个文件”
  8. 用linux遇到的一个死循环
  9. django常用的模型字段类型和常用的查询
  10. Python零基础学习笔记(十三)—— if 和 if-else语句...
  11. WindowsServer 2008 Ad建立ftp隔离用户
  12. SecureCRT护眼设置
  13. 输入网址的时候,浏览器是如何判断你是http协议还是https协议的
  14. 从周五开始美国服务器特别慢,美国服务器用户有同感吗?...
  15. Ubuntu 18.04.04 安装显卡驱动 nvidia安装
  16. 时间序列分析--移动平均法预测模型
  17. python扩展模块开发
  18. 2018年终总结--修身篇
  19. 几种并行计算模型的区别(BSP LogP PRAM)
  20. 软件安利Macs Fan Control Pro Mac(风扇转速调整及温度监控工具)

热门文章

  1. WinRAR 5.21 正式版 (简体中文)
  2. 电子邮箱的正确格式怎么写?个人邮箱账号登录入口是什么?
  3. 程序员们的神器,微软发布新品Surface Studio/Laptop/Pro
  4. Linux CentOS7 磁盘修复 无法加载目录 failed to mount /home 或 A start job is running for /home
  5. 易地推拓客团队分享放着有长期合作机会,为什么还要做“一锤子买卖”呢
  6. 常用数据分析模型:购物篮模型——商品关联分析
  7. 黑丝袜怎么画?画好黑丝袜有哪些技巧?
  8. geoserver解决跨域问题与wps安装
  9. simulink笔记——FM调制解调
  10. MySQL如何阅读死锁日志