当前位置: 首页 > news >正文

学习笔记:【QC】Android Q - phone 模块

一、phone init 流程图

二、phone MO 流程图

三、phone MT 流程图

四、Log分析(MO_qcril_hal_分析)


1、RILJ请求dial

enqueue进队列,QCRIL-hal pop出来处理,最后还是调用qmi_client_send_msg_async发送给modem
11-07 17:29:23.598  2758  2758 D RILJ    : [3917]> DIAL [SUB1]
11-07 17:29:23.600  1069  1069 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 27] [main(1069,1069)] enqueue: [DispatcherModule-MessageQueue]: enqueuing priority(NORMAL) message 0x7cfe197058 Id: RIL_REQUEST_DIAL
11-07 17:29:23.601  1069  1103 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 83] [DispatcherModul(1069,1103)] pop: [DispatcherModule-MessageQueue]: msg: 0x7cfe197058

2、RILJ请求SET_SUPP_SVC_NOTIFICATION

enqueue进队列,QCRIL-hal pop出来处理,发送给modem
11-07 17:29:23.603  2758  2758 D RILJ    : [3918]> SET_SUPP_SVC_NOTIFICATION enable = true [SUB1]
11-07 17:29:23.606  1069  1069 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 27] [main(1069,1069)] enqueue: [DispatcherModule-MessageQueue]: enqueuing priority(NORMAL) message 0x7cfe059938 Id: com.qualcomm.qti.qcril.android.RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION
11-07 17:29:23.607  1069  1103 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 83] [DispatcherModul(1069,1103)] pop: [DispatcherModule-MessageQueue]: msg: 0x7cfe059938

3、RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION响应

收到modem对RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION返回请求结果async_resp,处理完调用qcril_send_request_response->qmi_ril_fw_send_request_response_epilog返回RILJ
11-07 17:29:23.611  1069  1344 D RILQ    : RIL[1][Log.cpp: 49] [VoiceModemEndPo(1069,1344)] d: [ModemEndPointModule]: qmiAsyncCb
11-07 17:29:23.611  1069  1344 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 27] [VoiceModemEndPo(1069,1344)] enqueue: [DispatcherModule-MessageQueue]: enqueuing priority(NORMAL) message 0x7cfb8285d8 Id: com.qualcomm.qti.qcril.qmi_async_resp
11-07 17:29:23.611  1069  1103 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 83] [DispatcherModul(1069,1103)] pop: [DispatcherModule-MessageQueue]: msg: 0x7cfb8285d8
11-07 17:29:23.613  1069  1103 W RILQ    : (1/1069): RIL[1][(1069,1103)] qcril_send_request_response: UI <--- com.qualcomm.qti.qcril.legacy.event.RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION (0x7cfddf72b0) Complete --- RIL [RID 0, Token id 3918, Success, Len 0 ]
11-07 17:29:23.618  2758  2834 D RILJ    : [3918]< SET_SUPP_SVC_NOTIFICATION  [SUB1]

4、UNSOL_RESPONSE_CALL_STATE_CHANGED

收到modem主动上报的UNSOL_RESPONSE_CALL_STATE_CHANGED,call state CC IN PROGRESS,处理完调用qcril_send_unsol_response_epilog返回RILJ
11-07 17:29:23.611  1069  1344 D RILQ    : RIL[1][Log.cpp: 49] [VoiceModemEndPo(1069,1344)] d: [ModemEndPointModule]: qmiUnsolIndCb
11-07 17:29:23.612  1069  1344 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 27] [VoiceModemEndPo(1069,1344)] enqueue: [DispatcherModule-MessageQueue]: enqueuing priority(NORMAL) message 0x7cfe196d58 Id: VOICE_QMI_IND
11-07 17:29:23.619  1069  1103 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 83] [DispatcherModul(1069,1103)] pop: [DispatcherModule-MessageQueue]: msg: 0x7cfe196d58
11-07 17:29:23.619  1069  1103 V qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 4978] [DispatcherModul(1069,1103)] qcril_qmi_voice_all_call_status_ind_hdlr: > qcril_qmi_voice_all_call_status_ind_hdlr: 
11-07 17:29:23.619  1069  1103 F qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 5136] [DispatcherModul(1069,1103)] qcril_qmi_voice_all_call_status_ind_hdlr: call state CC IN PROGRESS for conn id 1
11-07 17:29:23.621  1069  1103 W RILQ    : (1/1069): RIL[1][(1069,1103)] qcril_send_unsol_response_epilog: UI <--- RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED (0x3e9) --- RIL [RID 0, Len 0, (null)]
11-07 17:29:23.623  2758  2834 D RILJ    : [UNSL]< UNSOL_RESPONSE_CALL_STATE_CHANGED [SUB1]

5、RIL_REQUEST_DIAL响应

收到modem对RIL_REQUEST_DIAL返回请求结果async_resp,这边没有返回RILJ
11-07 17:29:23.620  1069  1344 D RILQ    : RIL[1][Log.cpp: 49] [VoiceModemEndPo(1069,1344)] d: [ModemEndPointModule]: qmiAsyncCb
11-07 17:29:23.621  1069  1344 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 27] [VoiceModemEndPo(1069,1344)] enqueue: [DispatcherModule-MessageQueue]: enqueuing priority(NORMAL) message 0x7cfb828b18 Id: com.qualcomm.qti.qcril.qmi_async_resp
11-07 17:29:24.352  1069  1103 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 83] [DispatcherModul(1069,1103)] pop: [DispatcherModule-MessageQueue]: msg: 0x7cfb828b18
11-07 17:29:23.619  1069  1103 V qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 9758] [DispatcherModul(1069,1103)] qcril_qmi_voice_unsol_ind_cb_helper: > qcril_qmi_voice_unsol_ind_cb_helper:
11-07 17:29:24.353  1069  1103 V qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 8460] [DispatcherModul(1069,1103)] qcril_qmi_voice_command_cb: > qcril_qmi_voice_command_cb: 
11-07 17:29:24.354  1069  1103 I qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 7362] [DispatcherModul(1069,1103)] qcril_qmi_voice_dial_call_resp_hdlr: DIAL CALL RESP : ril_err=0, dial_call_resp_result=0, dial_call_resp_error=0, cc_sups_result_valid=0, cc_result_type_valid=0, cc_result_type=0 
11-07 17:29:24.354  1069  1103 V qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 7640] [DispatcherModul(1069,1103)] qcril_qmi_voice_dial_call_resp_hdlr: < qcril_qmi_voice_dial_call_resp_hdlr: 
11-07 17:29:24.354  1069  1103 V qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 8621] [DispatcherModul(1069,1103)] qcril_qmi_voice_command_cb: < qcril_qmi_voice_command_cb: 

6、UNSOL_RESPONSE_CALL_STATE_CHANGED

收到modem主动上报的UNSOL_RESPONSE_CALL_STATE_CHANGED,call state CC IN PROGRESS,call state ORIGINATING
11-07 17:29:23.622  1069  1344 D RILQ    : RIL[1][Log.cpp: 49] [VoiceModemEndPo(1069,1344)] d: [ModemEndPointModule]: qmiUnsolIndCb
11-07 17:29:23.622  1069  1344 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 27] [VoiceModemEndPo(1069,1344)] enqueue: [DispatcherModule-MessageQueue]: enqueuing priority(NORMAL) message 0x7cfe036dd8 Id: VOICE_QMI_IND
11-07 17:29:24.355  1069  1103 D RILQ    : RIL[1][QcrilMainMessageQueue.cpp: 83] [DispatcherModul(1069,1103)] pop: [DispatcherModule-MessageQueue]: msg: 0x7cfe036dd8
11-07 17:29:24.356  1069  1103 V qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 9758] [DispatcherModul(1069,1103)] qcril_qmi_voice_unsol_ind_cb_helper: > qcril_qmi_voice_unsol_ind_cb_helper: 
11-07 17:29:24.356  1069  1103 V qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 4978] [DispatcherModul(1069,1103)] qcril_qmi_voice_all_call_status_ind_hdlr: > qcril_qmi_voice_all_call_status_ind_hdlr: 
11-07 17:29:24.356  1069  1103 F qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 5110] [DispatcherModul(1069,1103)] qcril_qmi_voice_all_call_status_ind_hdlr: call state ORIGINATING for conn id 1

6.1、DIAL的回调

DIAL的回调是从UNSOL_RESPONSE_CALL_STATE_CHANGED的返回走到qcril_send_empty_payload_request_response,然后qcril_send_request_response返回RILJ
11-07 17:29:24.358  1069  1103 E qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 24767] [DispatcherModul(1069,1103)] qmi_ril_voice_ims_command_oversight_handle_event: ccx ril qcril_reqlist_query to deal with RIL_REQUEST_DIAL...
11-07 17:29:24.358  1069  1103 E qcril_qmi_voice: RIL[1][qcril_qmi_voice.cc: 24771] [DispatcherModul(1069,1103)] qmi_ril_voice_ims_command_oversight_handle_event: ccx ril qcril_send_empty_payload_request_response
11-07 17:29:24.358  1069  1103 E RILQ    : (1/1069): RIL[1][(1069,1103)] qcril_send_empty_payload_request_response: ccx ril qcril.c qcril_send_empty_payload_request_response
11-07 17:29:24.358  1069  1103 E RILQ    : (1/1069): RIL[1][(1069,1103)] qcril_send_empty_payload_request_response: ccx ril qcril_send_request_response
11-07 17:29:24.358  1069  1103 W RILQ    : (1/1069): RIL[1][(1069,1103)] qcril_send_request_response: UI <--- com.qualcomm.qti.qcril.legacy.event.RIL_REQUEST_DIAL (0x7cfddf6658) Complete --- RIL [RID 0, Token id 3917, Success, Len 0 ]
11-07 17:29:24.360  2758  2834 D RILJ    : [3917]< DIAL  [SUB1]

6.2、qcril_qmi_voice_all_call_status_ind_hdlr

qcril_qmi_voice_all_call_status_ind_hdlr继续处理,通过qcril_send_unsol_response_epilog返回RILJ
11-07 17:29:24.360  1069  1103 W RILQ    : (1/1069): RIL[1][(1069,1103)] qcril_send_unsol_response_epilog: UI <--- RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED (0x3e9) --- RIL [RID 0, Len 0, (null)]
11-07 17:29:24.362  2758  2834 D RILJ    : [UNSL]< UNSOL_RESPONSE_CALL_STATE_CHANGED [SUB1]


注意:


1.1069  1344 这个是ModemEndPointModule 接收modem返回线程,主动上报:qmiUnsolIndCb;请求返回:qmiAsyncCb ,接收完都enqueue进队列
2.1069  1103,这个是消息处理线程,从队列里面pop出消息进行处理
3.处理完上报给RILJ,data的上报,不是qcril_qmi_voice_dial_call_resp_hdlr,而是从qcril_qmi_voice_all_call_status_ind_hdlr(UNSOL_RESPONSE_CALL_STATE_CHANGED的处理)回调上去的

 

http://www.lryc.cn/news/341274.html

相关文章:

  • webscoket+webrtc实现语音通话
  • PHP源码_众筹商城
  • 智能小程序 Ray 开发——表单组件 Button 和 Checkbox 实操讲解
  • 渗透之sql注入联合查询的注入
  • NLP transformers - 文本分类
  • QT 开发COM(ActiveX)组件基础介绍和方案验证
  • [1673]jsp在线考试管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • 每日一算法
  • Spring Cloud Gateway直接管理Vue.js的静态资源
  • 14.集合、常见的数据结构
  • NLP从入门到实战——命名实体识别
  • 接口测试工具-postman介绍
  • 日志中看到来自User Agent go-http-client / 1.1的大量请求(go-http-client 1.1)服务器爆了
  • yolov8 区域声光报警+计数
  • 《QT实用小工具·五十五》带有标签、下划线的Material Design风格输入框
  • 用Go实现一个无界资源池
  • Apache Seata基于改良版雪花算法的分布式UUID生成器分析2
  • 13、揭秘JVM垃圾回收器:面试必备知识,你掌握了吗?
  • 治疗耳鸣患者案例分享第二期
  • 数据加密的方法
  • Android BINDER是干嘛的?
  • 运维各种中间件的手动安装(非常详细)
  • 【Android】Android应用性能优化总结
  • FBA头程海运发货流程是怎样的?
  • 二、VLAN原理和配置
  • stackqueue类——适配器模式 双端队列deque(C++)
  • SpringCloud知识点梳理
  • 【NOI】C++程序结构入门之分支结构二
  • web自动化系列-使用普通模式编写测试用例以及存在问题(十六)
  • VSCode 配置 Qt 开发环境