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

80P平台有个平台问题:进入MMITEST和FACTORYTEST中FM测试项 - 插入耳机,会提示无法收听,但是FM应用中功能是ok的

8月20日的软件该功能还是好的,并且看了MMITest和FactoryTest中没有FM测试项相关的修改,请帮忙排查下是什么原因

09-02 07:09:16.172 5172-5246/com.nbbsw.mmi_test W/AudioTrack: See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case

09-02 07:09:16.172 5172-5246/com.nbbsw.mmi_test D/FmService: initAudioRecordSink, mAudioRecord = android.media.AudioRecord@9bdee55,mAudioTrack = android.media.AudioTrack@f3a906a

09-02 07:09:16.172 5172-5246/com.nbbsw.mmi_test I/FmService: startRender: notifying for mRenderLock

09-02 07:09:16.173 5172-5250/com.nbbsw.mmi_test I/FmService: RenderThread: run, isRender = false

09-02 07:09:16.173 5172-5250/com.nbbsw.mmi_test I/FmService: RenderThread: waiting for mRenderLock

09-02 07:09:16.174 5172-5246/com.nbbsw.mmi_test I/FMLIB_COM: COM_open_dev start

09-02 07:09:16.174 5172-5246/com.nbbsw.mmi_test E/FMLIB_COM: Open /dev/fm failed, Permission denied

09-02 07:09:16.174 5172-5246/com.nbbsw.mmi_test I/FMLIB_COM: COM_open_dev, [fd=-1] [ret=-1007]

09-02 07:09:16.174 5172-5246/com.nbbsw.mmi_test E/FMLIB_CORE: FMR_open_dev failed, [fd=-1]

09-02 07:09:16.174 5172-5246/com.nbbsw.mmi_test D/FMLIB_JNI: openDev, [ret=-1007]

09-02 07:09:16.174 5172-5246/com.nbbsw.mmi_test I/FMLIB_JNI: powerUp, [freq=96]

 

分析:

 从log看是在Open /dev/fm failed, Permission denied 权限存在问题。

出现节点权限问题的时候,我们一般怀疑两点,拿userdebug软件test这两点怀疑:

1)SELinux权限问题,root remount手机,设置 shell setenforce 0;

      adb shell getenforce  ====>Permissive

     测试,问题依旧存在,排除SELinux权限问题

2) /dev/fm 节点读写执行权限问题, root remount手机,

  adb shell 

Smart_S200_3G:/ # cd dev/                                                     

Smart_S200_3G:/dev # chmod 666 fm    

测试,问题不在复现,问题定位在此。

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

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

4)

查看工程代码:

80P\device\mediatek\mt6580\init.mt6580.rc

    # FM Radio device node

    mknod /dev/fm     c 193 0;

    chmod 0660 /dev/fm

    chown media media /dev/fm

对比39O,39P代码:

此处权限被修改为了

    # FM Radio device node

    mknod /dev/fm     c 193 0;

    chmod 0666 /dev/fm

    chown media media /dev/fm

所以目前第一种修改方案是在init.rc中修改节点dev/fm权限为0666,验证可以解决问题。

 

5)SPL反馈8月20日软件还是好的。

查看 crw-rw-rw- 1 media     media        231,   0 2009-12-31 19:08 fm

与当前问题软件比较,权限确实修改了。

 

6)问题查看80P代码

20日之前80P\device\mediatek\mt6580\init.mt6580.rc

一直配置的  chmod 0660 /dev/fm,为什么之前是好的?

查看80O代码

bird_o1mp2_k80_bsp\device\mediatek\mt6580\init.mt6580.rc

    # FM Radio device node

    mknod /dev/fm     c 193 0;

    chmod 0660 /dev/fm

    chown media media /dev/fm

配置的也是0660.

疑点为什么之前的软件一直好的?

7)查看8月20日到9月3日之前修改,没有怀疑的commit。只能采取二分查找修改点定位问题。

(借用repo命令查询前100条log

repo forall -p -c git log -100 $1 --oneline > $1.txt

将工程回退到某一时间点

/repo_mtk forall -c 'commitID=`git log --before "2019-08-27 15:00" -1 --pretty=format:"%H"`; git reset --hard $commitID')

确认到是

bird下面的

commit b10aecad530a6796e279954fcf120f013a25572a

    Google要求Android P以上版本data storage必须是encrypted状态

引起:

-MTK_ENCRYPTION_DEFAULT_OFF = yes

-MTK_ENCRYPTION_FDE_TO_FBE = no

-MTK_ENCRYPTION_TYPE_FILE = no

+MTK_ENCRYPTION_DEFAULT_OFF = no

+MTK_ENCRYPTION_FDE_TO_FBE = yes

+MTK_ENCRYPTION_TYPE_FILE = yes

具体两者如何关联待研究。

 

PS:P版userdebug软件直接root手机会报

remount of the / superblock failed: Permission denied

a,打开“开发者选项”中的“OEM 解锁”

b,通过指令adb reboot bootloader,进入fastboot 的方式,

c,在fastboot 模式下输入fastboot flashing unlock

d,根据提示按键(一般是音量上键)

e,解锁成功后可以通过fastboot reboot 重启手机

f.这时候我们就可以做disable-verity了

adb root

adb disable-verity

adb reboot

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值