Android系统下在te文件中为指定服务添加sepolicy权限 ~~~~mark 详细

46 篇文章 0 订阅
28 篇文章 0 订阅
  • Android系统下在te文件中为指定服务添加sepolicy权限
  • 发布时间:2018-01-18 来源:网络 上传者:用户

    关键字: sepolicy 指定 权限 添加 Android 文件 系统 服务

    发表文章
  • 摘要:【正文】设备在播放视频时有异常,使用Logcat查看日志时发现了如下记录:04-2714:01:59.13628252825ESELinux:avc:denied{find}forservice=displaypid=3015uid=1046scontext=u:r:mediacodec:s0tcontext=u:object_r:display_service:s0tclass=service_managerpermissive=004-2714:01:59.1362825
  • 【正文】 
    设备在播放视频时有异常,使用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上下文是mediacodec,Target上下文是display_service,Target类是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 audioBOARD_SEPOLICY_DIRS += device/intel/sepolicy/dolby

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

  • 以上是Android系统下在te文件中为指定服务添加sepolicy权限的内容,更多 sepolicy 指定 权限 添加 Android 文件 系统 服务 的内容,请您使用右上方搜索功能获取相关信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值