80P 平台MMITEST和FACTORYTEST中FM测试项不能收听 (二)

 接着《80P 平台MMITEST和FACTORYTEST中FM测试项不能收听》疑问分析:

进入MMITEST和FACTORYTEST中FM测试项 - 插入耳机,会提示无法收听,但是FM应用中功能是ok的。为什么会产生这样的差异。

adb shell查看问题时候节点权限:

crw-rw---- 1 media     media        231,   0 2019-09-02 07:06 fm

一度陷入僵局,提EService,MTK的回复居然也是

 

为什么FM应用进程在Media分组?为什么为什么?进行了以下思考:

    一 查看FMAPK|MMITestAPK的是不是media用户组。

    -rw-r--r-- 1 root root 650037 2019-09-06 06:58 FMRadio.apk

    -rw-r--r-- 1 root root 48811054 2019-09-11 13:03 MMITest.apk

 

    这是个误区 ,APK都是root用户组的,觉得应该权限和ROOT一样,百度发现理解是有问题的,这个权限不涉及APK运行时候的访问权限。

二查看Android.mk的签名是否一致。

   发现都是LOCAL_CERTIFICATE := platform

  

三查看AndroidMainfest.xml文件是否 有android:sharedUserId,共享media相关的ID。

发现FM中没有此属性。

 

四 顺着MTK的回复百度android 用户组 权限相关。

看到了一个关键性文件:

frameworks/base/data/etc/platform.xml ===声明权限对应组

打开此文件发现:

frameworks\base\core\res\AndroidManifest.xml中有声明权限:

 

直觉告诉我答案出来了:只要声明android.permission.ACCESS_BROADCAST_RADIO权限就可以获取media用户组,打开FM设备。

检查FM的AndroidMainfest.xml文件的确有此声明。

在MMITest中添加此权限验证,在dev/fm节点权限为0660的情况下open正常。

这题的一个疑惑解开了,还剩一个就是权限为什么会根据加密变化了???…………

 

参考

https://blog.csdn.net/zhgeliang/article/details/78805214

https://blog.csdn.net/u013686019/article/details/52753727Android添加用户组及自定义App权限

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值