一、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的处理)回调上去的