美文网首页
【移动网络】【T43-自由测】手机插SIM卡后无法在双卡与网络中

【移动网络】【T43-自由测】手机插SIM卡后无法在双卡与网络中

作者: 平头说人生 | 来源:发表于2018-05-23 19:13 被阅读46次

    【移动网络】【T43-自由测】手机插SIM卡后无法在双卡与网络中启用卡,同时也无法呼入或呼出电话

    需要修改两个问题:

    1 弹框UI 的修改

    2 Sim卡禁用开关无效问

    问题二 Sim卡禁用无效问题是: Qcom自扩展的service IQcrilMsgTunnel 没有得到初始化造成的

    Attempt to invoke interface method 'int com.qualcomm.qcrilmsgtunnel.IQcrilMsgTunnel.sendOemRilRequestRaw(byte[], byte[], int)' on a null object reference

    我们需要了解QcrilOemHook是 最终是通过IQtiOemHook使用HIDL去下发request,此处设计和RIL的HIDL设计一样

    So, what's Hidl?

    Sim卡启用禁用过程: App

    -->bindIExtTelephony.Stub(ExtTelephonyServiceImpl.activateUiccCard)-->QtiUiccCardProvisioner-->QtiRilInterface

    -->QcRilHook(sendQcRilHookMsg)

    -->bind service to IQcrilMsgTunnel: IQcrilMsgTunnel(sendOemRilRequestRaw)

    -->IQcrilMsgTunnel.Stub(QcrilMsgTunnelIfaceManager)

    在QtiRilInterface中会初始化QcRilHook对象,在QcRilHook的构造函数中会先start QcrilMsgTunnelService,然后bind,

    然而Log中没有打印出 QcRilHook构造函数中的相关Log

    但是往下看Log可以看到QtiRilInterface在初始化的时候QcrilMsgTunnelService还没有启动起来,

    所以肯定会导致bind service失败, 最终导致sim卡禁用的命令无法下发

    03-04 07:42:17.979 15889 15889 D QtiRilInterface: in constructor

    03-04 07:42:18.083 16202 16202 D QcrilMsgTunnelService: onCreate method

    03-04 07:42:18.086 16202 16202 D QcrilMsgTunnelIfaceManager: :Instantiated

    所以我们分析得出的原因是因为QcrilMsgTunnelService启动太晚,至少晚于ExtTelephonyServiceImpl的启动,导致得不到QcrilMsgTunnelIfaceManager的服务,最终导致sim卡禁用和打开无效。

    所以我们的问题是: 为什么这次QcrilMsgTunnelService启动晚了?

    按照正常逻辑它该什么时候启动?

    备注:通过fastboot刷机后首次重启会出现此现象,再次重启后不存在了。

    相关文章

      网友评论

          本文标题:【移动网络】【T43-自由测】手机插SIM卡后无法在双卡与网络中

          本文链接:https://www.haomeiwen.com/subject/ebldjftx.html