【正文】
  设备在播放视频时有异常,使用Logcat查看日志时发现了如下记录:

04-27 14:01:59.136 2825 2825 E SELinux : avc: denied { find } for service=display pid=3015 uid=1046 scontext=u:r:mediacodec:s0 tcontext=u:object_r:display_service:s0 tclass=service_manager permissive=0
04-27 14:01:59.136 2825 2825 I auditd : avc: denied { find } for service=display pid=3015 uid=1046 scontext=u:r:mediacodec:s0 tcontext=u:object_r:display_service:s0 tclass=service_manager permissive=0

  从上方的Log中可以看出这个问题是因为mediacodec的sepolicy权限没有添加完善所致。具体的操作权限从Log中可以看到是find权限Source上下文mediacodecTarget上下文display_serviceTarget类service_manager。解决方法就是在te文件中为mediacodec添加上缺失的find权限。添加权限的格式为:

allow SourceContext TargetContext:TargetClass Permission;

  在任何1个te文件中添加权限都可以,但为了保持格式一致,我最终选择在device/intel/sepolicy/dolby/mediacodec.te文件中按上述格式添加上以下语句:

allow mediacodec display_service:service_manager find;

  重新编译bootimage并烧写到设备上进行测试,问题得到解决。

【注意】
  有时添加完一条权限后可能又会报另一种权限缺失,我们只需要按照上述方法再添加这种缺失的权限即可,直到系统不再报告sepolicy权限缺失为止。

【题外话】
  前天因为少提交了一个device/intel/cherrytrail/r2_cht_ffd/目录下的 patch,结果第二天测试组同事为设备烧入user版本的镜像后发现所有音频相关的功能都无法正常工作了,而且整个系统都非常卡。因为我平时都是使用eng版本进行测试,没有碰到过这个问题,所以第一反应就是这是权限没有添加成功导致。检查之后发现果然是这样:虽然我在device/intel/sepolicy/dolby/目录下已经为Dolby音效添加了te文件,但在上文提到的r2_cht_ffd路径下忘记了在BoardConfig.mk文件中添加以下代码,所以实际上user版本的镜像中Dolby相关的sepolicy权限配置并没有被编译

# Add sepolicy dir for Dolby audio
BOARD_SEPOLICY_DIRS += device/intel/sepolicy/dolby

  因为Dolby音效是整合到Android系统的AudioFlinger、NuPlayer、AudioServer等这些系统部件中的,所以当Dolby的权限忘记添加时就会使这些系统部件无法正常工作,从而整个Audio系统也就自然而然地挂掉了。
  为Dolby添加好上方这条语句后,音频系统就又可以正常工作了。现在想想,一不小心就搞崩了Android音频系统,也真是刺激

Android系统下在te文件中为指定服务添加sepolicy权限相关推荐

  1. linux中查找某一个字符串,Linux系统下,在文件中查找某个字符串

    android获取手机信息大全 IMEI号,IESI号,手机型号: private void getInfo() { TelephonyManager mTm = (TelephonyManager) ...

  2. python3查找文件中指定字符串_Python3在指定路径下递归定位文件中出现的字符串...

    [本文出自天外归云的博客园] 脚本功能:在指定的路径下递归搜索,找出指定字符串在文件中出现的位置(行信息). 用到的python特性: 代码如下: import os import sys __all ...

  3. 解析android系统下Dex2oat的实现

    简介 在Android系统5.0及以上系统开始逐渐丢弃Dalvik虚拟机,由于ART虚拟机对内存分配和回收都做了算法优化,降低了内存碎片化程度,回收时间也得以缩短,所有android系统5.0及以上都 ...

  4. windows查看linux文件中文,Linux 系统下无法查看Windows 中创建的中文文件名

    标  题: Linux 系统下无法查看Windows 中创建的中文文件名 我是Linux初学者,在网上搜索了很久,经过多次尝试仍然无法解决问题,只好在这里发贴请教了,还望各位高手指点一下. 问题描述: ...

  5. android 读build.prop,Android系统下的build.prop文件

    Android系统下的build.prop文件,用adb shell进入,再进入到system目录,查看该目录下的文件,会看到build.prop文件,用exit命令退出. 1551927518(1) ...

  6. Mac系统下修改hosts文件

    Mac系统下修改hosts文件 小巫只从买了macbook pro之后一直用来装逼还没认真用起来,因为确实在windows下有时候用起来比mac要方便一点,但比起流畅性和观赏性windows也是差了那 ...

  7. wps临时文件不自动删除_win10系统下wps残留文件无法删除如何解决

    一位用户反馈自己在win10系统电脑中卸载金山WPS办公软件时,发现根本无法将wps残留的文件夹删除,在删除的时候提示"操作无法完成,因为其中的文件夹或文件已在另一程序打开 请关闭该文件夹文 ...

  8. 删除android软件,adb shell删除Android系统下的软件

    一.删除Android系统下的软件,使用adb shell进入系统,然后使用命令重新挂载"/system"目录为读写权限,具体操作及命令如下: 1.打开dos窗口:win+R 输入 ...

  9. Linux怎么让文件按大小排序,linuxsortlinux系统下,按文件的大小进行排序的命令...

    怎样用sort 命令以 GPA作为关键字排序文件 Linux可以使用ls命令实现这一功能. ls命令是一个非常有用的查看文件与目录的命令,list之意,它的参数非常多. ls命令默认是按照文件名的字母 ...

最新文章

  1. mysql备份psb文件怎么打开_Navicat for MySQL 数据备份教程
  2. 深入浅出的webpack构建工具---DllPlugin DllReferencePlugin提高构建速度(七)
  3. svchost服务(DLL服务)
  4. Python获取当前脚本绝对路径
  5. 【jQuery小实例】---2自定义动画
  6. SAP Spartacus CmsPage的加载逻辑
  7. OpenCV函数cvFindContours
  8. vue路由匹配实现包容性_成为多元化和包容性领导者的3个关键策略
  9. python scrapy框架爬虫当当图书网
  10. SQL Server 2012 完全安装
  11. UEFI开发与调试---ImageHandle和ControllerHandle
  12. FreeCAD开发:修改了源码,需要翻译成中文,如何更新语言包
  13. dB,dBm W之换算关系
  14. 参考文献起止页码怎么写_参考文献规范写法
  15. Java爬虫之批量下载LibreStock图片(可输入关键词查询下载)
  16. sspanel php,sspanelv3魔改版邮件设置指南及常用配置
  17. Astah Professional安装
  18. java 操作 word 表格和样式_java 处理word文档 (含图片,表格内容)
  19. 共享汽车死亡前仆后继,巨头们要排队共赴黄泉?
  20. 恒大健康:自称股东的FF员工提起集体诉讼 无理控告我们

热门文章

  1. 惠而浦扫地机器人充不进电_【诉说心声】whirlpool /美国惠而浦n78s吸尘器怎么样?老司机深度剖析真心话 | 智能扫地机器人评测...
  2. java毕业设计腾讯网游辅助小助手源码+lw文档+mybatis+系统+mysql数据库+调试
  3. 移动 网通 联通 电信
  4. rat linux安装u盘,U盘安装系统、LiveOS、LiveUSB
  5. 南京:平安夜地铁1、2、3号线延时至次日两点
  6. 扫二维码时判断手机是安卓还是IOS
  7. 【仿真】波形dump(vcd,shm,fsdb,saif,...)
  8. 尚学堂shopping的经验
  9. Tesseract-OCR 字库训练
  10. Linux下日志分析--Linux日志