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

modem上报SIM卡状态为unknown问题分析

问题描述:

QCM6125平台上客户反馈了一个问题:

140486 多次切换云卡和物理卡模式出现无法识别物理卡

问题分析:

APP和radio日志分析:

刚开始只有AP日志,看样子SIM卡是识别到了,只是没有激活:

uaflog:
08-07 11:36:29:588  2997  3660 D QCPlatFormTransferV26:sendRemoteEvent: ret: UIM_REMOTE_SUCCESS(0), event: RemoteUimEvent(slot=0, event=3, atr=, errorCode=0, usage=1, transport=2, apduTimeout=14000, disableAllPolling=0, pollTimer=2700000, hasUsage=true),polltimer=true.
08-07 11:36:29:589  2997  3660 D QCPlatFormTransferV26:sendRemoteEvent: ret: UIM_REMOTE_SUCCESS(0), event: RemoteUimEvent(slot=0, event=0, atr=, errorCode=0, usage=1, transport=2, apduTimeout=14000, disableAllPolling=0, pollTimer=2700000, hasUsage=true),polltimer=true.radio log:
08-07 11:36:29.056  2551  2760 D RadioConfigIndicationHidl: [UNSL]< UNSOL_SIM_SLOT_STATUS_CHANGED [IccSlotStatus {CARDSTATE_ABSENT,atr=,eid=,num_ports=1, IccSimPortInfo-0{iccid=,logicalSlotIndex=0,portActive=true}}, IccSlotStatus {CARDSTATE_ABSENT,atr=,eid=,num_ports=1, IccSimPortInfo-0{iccid=,logicalSlotIndex=1,portActive=true}}]
08-07 11:36:29.234  2551  2551 D SubscriptionInfoUpdater: Broadcasting intent ACTION_SIM_STATE_CHANGED ABSENT reason null for phone: 0
08-07 11:36:29.235  2551  2551 D SubscriptionInfoUpdater: Broadcasting intent ACTION_SIM_CARD_STATE_CHANGED ABSENT for phone: 0 slot: 0 port: 0
08-07 11:36:29.257  2551  2551 D SubscriptionInfoUpdater: Broadcasting intent ACTION_SIM_APPLICATION_STATE_CHANGED UNKNOWN for phone: 0 slot: 0port: 0
08-07 11:36:29.485  2551  2551 D QtiSimPhoneBookAdnRecordCache[0]: ACTION_SIM_STATE_CHANGED intent received simStatus: ABSENTphoneId: 0
08-07 11:36:29.583  2551  2760 D RadioConfigIndicationHidl: [UNSL]< UNSOL_SIM_SLOT_STATUS_CHANGED [IccSlotStatus {CARDSTATE_ABSENT,atr=,eid=,num_ports=1, IccSimPortInfo-0{iccid=,logicalSlotIndex=0,portActive=true}}, IccSlotStatus {CARDSTATE_ABSENT,atr=,eid=,num_ports=1, IccSimPortInfo-0{iccid=,logicalSlotIndex=1,portActive=true}}]
08-07 11:36:29.694  2551  2760 D RadioConfigIndicationHidl: [UNSL]< UNSOL_SIM_SLOT_STATUS_CHANGED [IccSlotStatus {CARDSTATE_PRESENT,atr=3b9f96801fc78031e073fe21136756485553494d18dc,eid=,num_ports=1, IccSimPortInfo-0{iccid=898601248[Gl7xdG2ZzOTPHunbz_o-39YImK0],logicalSlotIndex=0,portActive=true}}, IccSlotStatus {CARDSTATE_ABSENT,atr=,eid=,num_ports=1, IccSimPortInfo-0{iccid=,logicalSlotIndex=1,portActive=true}}]
08-07 11:36:31.275  2551  2760 D RadioConfigIndicationHidl: [UNSL]< UNSOL_SIM_SLOT_STATUS_CHANGED [IccSlotStatus {CARDSTATE_PRESENT,atr=3b9f96801fc78031e073fe21136756485553494d18dc,eid=,num_ports=1, IccSimPortInfo-0{iccid=898601248[Gl7xdG2ZzOTPHunbz_o-39YImK0],logicalSlotIndex=0,portActive=true}}, IccSlotStatus {CARDSTATE_ABSENT,atr=,eid=,num_ports=1, IccSimPortInfo-0{iccid=,logicalSlotIndex=1,portActive=true}}]
08-07 11:36:31.310  2551  2760 D RILJ    : [UNSL]< UNSOL_RESPONSE_SIM_STATUS_CHANGED [PHONE0]
08-07 11:36:31.314  2551  2551 D RILJ    : [3542]> GET_SIM_STATUS [PHONE0]
08-07 11:36:31.324  2551  2760 D RILJ    : [3542]< GET_SIM_STATUS IccCardState {CARDSTATE_PRESENT,PINSTATE_UNKNOWN,num_apps=1,gsm_id=-1,cdma_id=-1,ims_id=-1,atr=3b9f96801fc78031e073fe21136756485553494d18dc,iccid=898601248[Gl7xdG2ZzOTPHunbz_o-39YImK0],eid=,SlotPortMapping={physicalSlotIndex=0, portIndex=0}} [PHONE0]
08-07 11:36:31.363  2551  2551 D SubscriptionInfoUpdater: Broadcasting intent ACTION_SIM_STATE_CHANGED NOT_READY reason null for phone: 0
08-07 11:36:31.365  2551  2551 D SubscriptionInfoUpdater: Broadcasting intent ACTION_SIM_CARD_STATE_CHANGED PRESENT for phone: 0 slot: 0 port: 0

怀疑类似问题:

http://redmine.ukelink.com/issues/139240 手动杀掉进程,出现云卡Ready timeout

问题在于这台设备的卡槽一有一张实体sim卡,当云卡被remove掉后这张实体sim卡起来了并且走到了ready的状态,当modem正在读卡并且将卡状态发送到ap侧时,uservice下发了event 1,关闭了实体卡通道,同时也关闭了实体sim卡。但对于ap侧来说卡一这张卡的session_state已经是activated的,但是还没有更新index_gw_pri_prov的状态,所以当实体sim卡变为absent的时候并没有更新session_state。随后在卡一起云卡的时候由于卡一已经是activated状态,故ap侧未下发激活卡的命令,因此云卡出现了ready timeout。

07-01 18:49:46:349  4777  4854 D QCPlatFormTransferV26:sendRmtEvent: UIM_REMOTE_CARD_REMOVED(3)
07-01 18:49:46:350  4777  4854 D QCPlatFormTransferV26:sendRmtEvent: UIM_REMOTE_CONNECTION_UNAVAILABLE(0)10:50:25.695000          Android QCRIL/Low                                           [      DiagLogger.cpp     86] [QCRIL_UIM_CARD] RIL[0][qcril_uim_card.cpp: 4056] [UimModule-Loope(1376,1898)] qcril_uim_process_change_subscription: qcril_uim_process_change_subscription: subs_mode_pref: 0x1, slot: 0x0, sub_type: 0x0, act_status: 0x1
10:50:25.695000          Android QCRIL/Low                                           [      DiagLogger.cpp     86] [QCRIL_UIM_CARD] RIL[0][qcril_uim_card.cpp: 576] [UimModule-Loope(1376,1898)] qcril_uim_ignore_change_subscription: Couldnt match session info: GW_PRI:2, GW_SEC:0, GW_TER:0, 1X_PRI:0, 1X_SEC:0, 1X_TER:0
10:50:25.695000          Android QCRIL/Low                                           [      DiagLogger.cpp     86] [QCRIL_UIM_CARD] RIL[0][qcril_uim_card.cpp: 327] [UimModule-Loope(1376,1898)] qcril_uim_find_prov_session_type: Cannot Activate RIL_sub_type: 0

只是139240问题是物理卡影响了物理卡,而140486问题是云卡影响到了物理卡。因此做类似39240问题的处理:云卡切物理卡时event 3和0也间隔1秒。

modem日志分析:

后面我们复现出modem日志后发现和139240问题不同,仅从qcril卡状态打印来看卡这段时间一直是present:

[  63/   0]              MSG                      03:36:29.055000          Android QCRIL/Low                                           [      DiagLogger.cpp     82] [QCRIL_UIM_CARD] RIL[0][qcril_uim_card.cpp: 3195] [UimModule-Loope(1289,1566)] qcril_uim_print_card_status: card[0].card_state: 1                                                                                                                             0
[  63/   0]              MSG                      03:36:29.580000          Android QCRIL/Low                                           [      DiagLogger.cpp     82] [QCRIL_UIM_CARD] RIL[0][qcril_uim_card.cpp: 3195] [UimModule-Loope(1289,1566)] qcril_uim_print_card_status: card[0].card_state: 1                                                                                                                             0
[  63/   0]              MSG                      03:36:31.286250          Android QCRIL/Low                                           [      DiagLogger.cpp     82] [QCRIL_UIM_CARD] RIL[0][qcril_uim_card.cpp: 3195] [UimModule-Loope(1289,1566)] qcril_uim_print_card_status: card[0].card_state: 1                                                                                                                             0  

难道是modem没上报卡状态?查看以前的问题总结:

SDX55平台卡问题总结--2020.11

结合log:

[  21/   2]              MSG                      03:36:26.758359          User Identity Module/High                                   [    qmi_uim_remote.c   1224] qmi_uim_remote_event_req_handler:event 0x3, slot 0x2
[  21/   2]              MSG                      03:36:26.758359          User Identity Module/High                                   [         uim_btsap.c    645] UIM_2:  Received BTSAP event -- 0x4, state 0x0, mode 0x0
[0x1544]                 LOG                      03:36:26.760004          QMI_MCS_QCSI_PKT                                            Length:  208
03:36:26.760004	[0x1544]	QMI_MCS_QCSI_PKT
packetVersion = 2
V2 {MsgType = IndicationCounter = 1203ServiceId = UIMMajorRev = 1MinorRev = 92ConHandle = 0x00000020MsgId = 0x00000032QmiLength = 164Service_UIM {ServiceUIMV1 {uim_status_change {uim_status_change_indTlvs[0] {Type = 0x14Length = 39extended_card_info {extended_card_info_len = 2extended_card_info[0] {iccid_len = 10iccid = { 152, 104, 64, 45, 145, 34, 29, 130, 137, 54}atr_len = 22atr = { 59, 159, 149, 128, 31, 199, 128, 49, 224, 115, 254, 33, 19, 87, 134, 133, 9, 134, 152, 68, 24, 163}eid_len = 0}extended_card_info[1] {iccid_len = 0atr_len = 0eid_len = 0}}}uim_status_change_indTlvs[1] {Type = 0x13Length = 9card_mode {card_mode_len = 2card_mode = { UIM_CARD_MODE_TELECOM_CARD, UIM_CARD_MODE_TELECOM_CARD }}}uim_status_change_indTlvs[2] {Type = 0x12Length = 53extended_card_status {index_gw_len = 2index_gw = { 0, 65535 }index_1x_len = 2index_1x = { 65535, 65535 }num_slot = 2card_info[0] {card_state = UIM_EXTENDED_CARD_STATE_PRESENTupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 1app_info[0] {app_type = UIM_APP_TYPE_USIMapp_state = UIM_APP_STATE_READYperso_state = UIM_PERSO_STATE_READYperso_feature = UIM_PERSO_FEATURE_STATUS_UNKNOWNperso_retries = 0perso_unblock_retries = 0aid_len = 16aid_value = { 160, 0, 0, 0, 135, 16, 2, 255, 134, 255, 255, 137, 255, 255, 255, 255}univ_pin = UIM_UNIV_PIN_PIN1_USEDpin1 {pin_state = UIM_PIN_STATE_DISABLEDpin_retries = 3puk_retries = 10}pin2 {pin_state = UIM_PIN_STATE_ENABLED_NOT_VERIFIEDpin_retries = 3puk_retries = 10}}}card_info[1] {card_state = UIM_EXTENDED_CARD_STATE_ABSENTupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 0}}}uim_status_change_indTlvs[3] {Type = 0x10Length = 51card_status {index_gw_pri = 0index_1x_pri = 65535index_gw_sec = 65535index_1x_sec = 65535num_slot = 2card_info[0] {card_state = UIM_CARD_STATE_PRESENTupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 1app_info[0] {app_type = UIM_APP_TYPE_USIMapp_state = UIM_APP_STATE_READYperso_state = UIM_PERSO_STATE_READYperso_feature = UIM_PERSO_FEATURE_STATUS_UNKNOWNperso_retries = 0perso_unblock_retries = 0aid_len = 16aid_value = { 160, 0, 0, 0, 135, 16, 2, 255, 134, 255, 255, 137, 255, 255, 255, 255}univ_pin = UIM_UNIV_PIN_PIN1_USEDpin1 {pin_state = UIM_PIN_STATE_DISABLEDpin_retries = 3puk_retries = 10}pin2 {pin_state = UIM_PIN_STATE_ENABLED_NOT_VERIFIEDpin_retries = 3puk_retries = 10}}}card_info[1] {card_state = UIM_CARD_STATE_ABSENTupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 0}}}}}}
}
          
[  21/   2]              MSG                      03:36:27.013281          User Identity Module/High                                   [    qmi_uim_remote.c   1224] qmi_uim_remote_event_req_handler:event 0x0, slot 0x2
[  21/   2]              MSG                      03:36:27.013281          User Identity Module/High                                   [         uim_btsap.c    645] UIM_2:  Received BTSAP event -- 0x1, state 0x0, mode 0x0
[0x1544]                 LOG                      03:36:27.015006          QMI_MCS_QCSI_PKT                                            Length:  208
[  21/   2]              MSG                      03:36:27.025052          User Identity Module/High                                   [    uimdrv_hal_iso.c    349] UIM_2: uim power up @ 1.8 v
[  21/   2]              MSG                      03:36:27.027240          User Identity Module/High                                   [            mmgsdi.c   8243] Received event: 0x24 in mmgsdi_evt_cb
[  21/   2]              MSG                      03:36:27.027240          User Identity Module/High                                   [           qmi_uim.c  16945] qmi_uim_process_card_detection_started_evt, slot 0x2
[  21/   3]              MSG                      03:36:27.795547          User Identity Module/Error                                  [          uim_sigs.c   1201] UIM_2: Timed out on the command response
[  21/   2]              MSG                      03:36:27.809349          User Identity Module/High                                   [    uimdrv_hal_iso.c    349] UIM_2: uim power up @ 1.8 v
[  21/   3]              MSG                      03:36:28.580365          User Identity Module/Error                                  [          uim_sigs.c   1201] UIM_2: Timed out on the command response
[  21/   2]              MSG                      03:36:28.622396          User Identity Module/High                                   [    uimdrv_hal_iso.c    356] UIM_2: uim power up @ 3 v
[  21/   2]              MSG                      03:36:29.158359          User Identity Module/High                                   [    qmi_uim_remote.c   1224] qmi_uim_remote_event_req_handler:event 0x3, slot 0x1
[  21/   2]              MSG                      03:36:29.158359          User Identity Module/High                                   [         uim_btsap.c    645] UIM_1:  Received BTSAP event -- 0x4, state 0x0, mode 0x0
[0x1544]                 LOG                      03:36:29.160029          QMI_MCS_QCSI_PKT                                            Length:  116
03:36:29.160029	[0x1544]	QMI_MCS_QCSI_PKT
packetVersion = 2
V2 {MsgType = IndicationCounter = 1207ServiceId = UIMMajorRev = 1MinorRev = 92ConHandle = 0x00000020MsgId = 0x00000032QmiLength = 72Service_UIM {ServiceUIMV1 {uim_status_change {uim_status_change_indTlvs[0] {Type = 0x14Length = 7extended_card_info {extended_card_info_len = 2extended_card_info[0] {iccid_len = 0atr_len = 0eid_len = 0}extended_card_info[1] {iccid_len = 0atr_len = 0eid_len = 0}}}uim_status_change_indTlvs[1] {Type = 0x13Length = 9card_mode {card_mode_len = 2card_mode = { UIM_CARD_MODE_TELECOM_CARD, UIM_CARD_MODE_TELECOM_CARD }}}uim_status_change_indTlvs[2] {Type = 0x12Length = 23extended_card_status {index_gw_len = 2index_gw = { 65535, 65535 }index_1x_len = 2index_1x = { 65535, 65535 }num_slot = 2card_info[0] {card_state = UIM_EXTENDED_CARD_STATE_UNKNOWNupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 0}card_info[1] {card_state = UIM_EXTENDED_CARD_STATE_UNKNOWNupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 0}}}uim_status_change_indTlvs[3] {Type = 0x10Length = 21card_status {index_gw_pri = 65535index_1x_pri = 65535index_gw_sec = 65535index_1x_sec = 65535num_slot = 2card_info[0] {card_state = UIM_CARD_STATE_ABSENTupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 0}card_info[1] {card_state = UIM_CARD_STATE_ABSENTupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 0}}}}}}
}
[  21/   3]              MSG                      03:36:29.393255          User Identity Module/Error                                  [          uim_sigs.c   1201] UIM_2: Timed out on the command response
[  21/   2]              MSG                      03:36:29.409401          User Identity Module/High                                   [    uimdrv_hal_iso.c    349] UIM_2: uim power up @ 1.8 v
[  21/   2]              MSG                      03:36:29.685182          User Identity Module/High                                   [    qmi_uim_remote.c   1224] qmi_uim_remote_event_req_handler:event 0x0, slot 0x1
[  21/   2]              MSG                      03:36:29.685182          User Identity Module/High                                   [         uim_btsap.c    645] UIM_1:  Received BTSAP event -- 0x1, state 0x0, mode 0x0
[0x1544]                 LOG                      03:36:29.687076          QMI_MCS_QCSI_PKT                                            Length:  116
03:36:29.687076	[0x1544]	QMI_MCS_QCSI_PKT
packetVersion = 2
V2 {MsgType = IndicationCounter = 1209ServiceId = UIMMajorRev = 1MinorRev = 92ConHandle = 0x00000020MsgId = 0x00000032QmiLength = 72Service_UIM {ServiceUIMV1 {uim_status_change {uim_status_change_indTlvs[0] {Type = 0x14Length = 7extended_card_info {extended_card_info_len = 2extended_card_info[0] {iccid_len = 0atr_len = 0eid_len = 0}extended_card_info[1] {iccid_len = 0atr_len = 0eid_len = 0}}}uim_status_change_indTlvs[1] {Type = 0x13Length = 9card_mode {card_mode_len = 2card_mode = { UIM_CARD_MODE_TELECOM_CARD, UIM_CARD_MODE_TELECOM_CARD }}}uim_status_change_indTlvs[2] {Type = 0x12Length = 23extended_card_status {index_gw_len = 2index_gw = { 65535, 65535 }index_1x_len = 2index_1x = { 65535, 65535 }num_slot = 2card_info[0] {card_state = UIM_EXTENDED_CARD_STATE_UNKNOWNupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 0}card_info[1] {card_state = UIM_EXTENDED_CARD_STATE_UNKNOWNupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 0}}}uim_status_change_indTlvs[3] {Type = 0x10Length = 21card_status {index_gw_pri = 65535index_1x_pri = 65535index_gw_sec = 65535index_1x_sec = 65535num_slot = 2card_info[0] {card_state = UIM_CARD_STATE_ABSENTupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 0}card_info[1] {card_state = UIM_CARD_STATE_ABSENTupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 0}}}}}}
}
[  21/   3]              MSG                      03:36:30.365313          User Identity Module/Error                                  [          uim_sigs.c   1201] UIM_2: Timed out on the command response
[  21/   2]              MSG                      03:36:30.407995          User Identity Module/High                                   [    uimdrv_hal_iso.c    356] UIM_2: uim power up @ 3 v
[  21/   3]              MSG                      03:36:31.364297          User Identity Module/Error                                  [          uim_sigs.c   1201] UIM_2: Timed out on the command response
[  21/   2]              MSG                      03:36:31.364297          User Identity Module/High                                   [          uim_sigs.c   1638] UIM_2: Entering UIM_MAX_NUM_ATTEMPTS
[0x1544]                 LOG                      03:36:31.367003          QMI_MCS_QCSI_PKT                                            Length:  208
03:36:31.367003	[0x1544]	QMI_MCS_QCSI_PKT
packetVersion = 2
V2 {MsgType = IndicationCounter = 1212ServiceId = UIMMajorRev = 1MinorRev = 92ConHandle = 0x00000020MsgId = 0x00000032QmiLength = 164Service_UIM {ServiceUIMV1 {uim_status_change {uim_status_change_indTlvs[0] {Type = 0x14Length = 39extended_card_info {extended_card_info_len = 2extended_card_info[0] {iccid_len = 10iccid = { 152, 104, 16, 66, 8, 65, 136, 85, 116, 84}atr_len = 22atr = { 59, 159, 150, 128, 31, 199, 128, 49, 224, 115, 254, 33, 19, 103, 86, 72, 85, 83, 73, 77, 24, 220}eid_len = 0}extended_card_info[1] {iccid_len = 0atr_len = 0eid_len = 0}}}uim_status_change_indTlvs[1] {Type = 0x13Length = 9card_mode {card_mode_len = 2card_mode = { UIM_CARD_MODE_TELECOM_CARD, UIM_CARD_MODE_TELECOM_CARD }}}uim_status_change_indTlvs[2] {Type = 0x12Length = 53extended_card_status {index_gw_len = 2index_gw = { 65535, 65535 }index_1x_len = 2index_1x = { 65535, 65535 }num_slot = 2card_info[0] {card_state = UIM_EXTENDED_CARD_STATE_PRESENTupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 1app_info[0] {app_type = UIM_APP_TYPE_USIMapp_state = UIM_APP_STATE_DETECTEDperso_state = UIM_PERSO_STATE_UNKNOWNperso_feature = UIM_PERSO_FEATURE_STATUS_UNKNOWNperso_retries = 0perso_unblock_retries = 0aid_len = 16aid_value = { 160, 0, 0, 0, 135, 16, 2, 255, 134, 255, 255, 137, 255, 255, 255, 255}univ_pin = UIM_UNIV_PIN_PIN1_USEDpin1 {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}pin2 {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}}}card_info[1] {card_state = UIM_EXTENDED_CARD_STATE_ERRORupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_NO_ATR_RECEIVEDnum_app = 0}}}uim_status_change_indTlvs[3] {Type = 0x10Length = 51card_status {index_gw_pri = 65535index_1x_pri = 65535index_gw_sec = 65535index_1x_sec = 65535num_slot = 2card_info[0] {card_state = UIM_CARD_STATE_PRESENTupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_UNKNOWNnum_app = 1app_info[0] {app_type = UIM_APP_TYPE_USIMapp_state = UIM_APP_STATE_DETECTEDperso_state = UIM_PERSO_STATE_UNKNOWNperso_feature = UIM_PERSO_FEATURE_STATUS_UNKNOWNperso_retries = 0perso_unblock_retries = 0aid_len = 16aid_value = { 160, 0, 0, 0, 135, 16, 2, 255, 134, 255, 255, 137, 255, 255, 255, 255}univ_pin = UIM_UNIV_PIN_PIN1_USEDpin1 {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}pin2 {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}}}card_info[1] {card_state = UIM_CARD_STATE_ERRORupin {pin_state = UIM_PIN_STATE_UNKNOWNpin_retries = 0puk_retries = 0}error_code = UIM_CARD_ERROR_CODE_NO_ATR_RECEIVEDnum_app = 0}}}}}}
}

发现在卡2 从power up开始的整个card_detection期间,卡1有卡状态变化要报给AP时,双卡的extended_card_status的card_state 都是 UIM_EXTENDED_CARD_STATE_UNKNOWN,就是这个原因导致云卡退出时qcril没收到absent的卡状态,再启动物理卡时就没有再进行激活卡的操作。这和SDX55平台的卡问题是一样的,高通的bug。

modem上报SIM卡状态为UNKNOWN的代码位置

uim\uimqmi\src\qmi_uim_parsing.c
static boolean qmi_uim_populate_card_and_app_state()
{
……if(app_count_per_slot_len < max_card_count){return FALSE;}/* As per the design, status change indication would be sent only if carddetection is finished for all the applicable slots, if get_card_statusrequest is received when any of the slots detection is in progress sendresponse with card_state as UNKNOWN, this is done to avoid the followingpossible scenario:1) SIM detection started for both the slots2) Card inserted is received for SLOT_13) qmi_uim_get_card_status is received and responded with SLOT_1 card aspresent and SLOT_2 card as absent4) AP sent activation request on SLOT_1 as it knows card statusas present5) MMGSDI performs session activation and sends session changed event 6) QMI_UIM doesnt send status change indication(once session changed eventis received) to it's clients as SLOT_2 detection is still in progressbut sends activation response as success7) Cards in both the slots are removed and MMGSDI receives card_errorfor both the slots8) QMI_UIM sends status change indication with card status as absent,gw_index as 0XFFFF and with invalid gw_index AP cannot clean upthe activation status 9) AP doesn't send activation status after card is inserted as forit session is already activated(as it is not cleaned up earlier) */if(qmi_uim_check_card_error_on_any_slot()){UIM_MSG_HIGH_0("Status change indication populated with card state error");}else{if(qmi_uim_is_slot_detection_in_progress()){/* Send response with card state as ABSENT and error code as unknown */qmi_uim_set_card_state_absent(tlv_len,tlv_data_ptr,extended_card_status,curr_ptr,max_card_count,tlv_data_card_state);return TRUE;}}simlock_display = qmi_uim_util_is_simlock_display_for_valid_card_enabled();
……
}

解决方案:

modem侧方案,申请这些:CR2685486,CR2802161 、CR2751360可解决该问题。

APP规避:event3和0之间间隔4秒。

APP规避后的modem日志:

记录一份APP规避后的modem日志,供后续进一步优先使用:

[  21/   2]              MSG                      01:01:42.762995          User Identity Module/High                                   [    qmi_uim_remote.c   1224] qmi_uim_remote_event_req_handler:event 0x3, slot 0x2
[  21/   2]              MSG                      01:01:42.762995          User Identity Module/High                                   [         uim_btsap.c    645] UIM_2:  Received BTSAP event -- 0x4, state 0x0, mode 0x0
[  21/   2]              MSG                      01:01:46.774323          User Identity Module/High                                   [    qmi_uim_remote.c   1224] qmi_uim_remote_event_req_handler:event 0x0, slot 0x2
[  21/   2]              MSG                      01:01:46.774323          User Identity Module/High                                   [         uim_btsap.c    645] UIM_2:  Received BTSAP event -- 0x1, state 0x0, mode 0x0
[0x1544]                 LOG                      01:01:46.776003          QMI_MCS_QCSI_PKT                                            Length:  116
[  21/   2]              MSG                      01:01:46.786016          User Identity Module/High                                   [    uimdrv_hal_iso.c    349] UIM_2: uim power up @ 1.8 v
[  21/   2]              MSG                      01:01:46.788021          User Identity Module/High                                   [            mmgsdi.c   8243] Received event: 0x24 in mmgsdi_evt_cb
[  21/   2]              MSG                      01:01:46.788021          User Identity Module/High                                   [           qmi_uim.c  16945] qmi_uim_process_card_detection_started_evt, slot 0x2
[  21/   2]              MSG                      01:01:46.815000          User Identity Module/High                                   [    qmi_uim_remote.c   1224] qmi_uim_remote_event_req_handler:event 0x3, slot 0x2
[  21/   0]              MSG                      01:01:46.815000          User Identity Module/Low                                    [    qmi_uim_remote.c   1474] qmi_uim_remote_event_req_handler: Cannot find client for slot
[  21/   3]              MSG                      01:01:47.555990          User Identity Module/Error                                  [          uim_sigs.c   1201] UIM_2: Timed out on the command response
[  21/   2]              MSG                      01:01:47.570130          User Identity Module/High                                   [    uimdrv_hal_iso.c    349] UIM_2: uim power up @ 1.8 v
[  21/   3]              MSG                      01:01:48.341276          User Identity Module/Error                                  [          uim_sigs.c   1201] UIM_2: Timed out on the command response
[  21/   2]              MSG                      01:01:48.343385          User Identity Module/High                                   [          uim_sigs.c   1605] UIM_2: Attempting power up at 3V
[  21/   2]              MSG                      01:01:48.383516          User Identity Module/High                                   [    uimdrv_hal_iso.c    356] UIM_2: uim power up @ 3 v
[  21/   3]              MSG                      01:01:49.153984          User Identity Module/Error                                  [          uim_sigs.c   1201] UIM_2: Timed out on the command response
[  21/   2]              MSG                      01:01:49.170078          User Identity Module/High                                   [    uimdrv_hal_iso.c    349] UIM_2: uim power up @ 1.8 v
[  21/   3]              MSG                      01:01:50.126589          User Identity Module/Error                                  [          uim_sigs.c   1201] UIM_2: Timed out on the command response
[  21/   2]              MSG                      01:01:50.127995          User Identity Module/High                                   [          uim_sigs.c   1605] UIM_2: Attempting power up at 3V
[  21/   2]              MSG                      01:01:50.168281          User Identity Module/High                                   [    uimdrv_hal_iso.c    356] UIM_2: uim power up @ 3 v
[  21/   2]              MSG                      01:01:50.774323          User Identity Module/High                                   [    qmi_uim_remote.c   1224] qmi_uim_remote_event_req_handler:event 0x0, slot 0x2
[  21/   0]              MSG                      01:01:50.774323          User Identity Module/Low                                    [    qmi_uim_remote.c   1474] qmi_uim_remote_event_req_handler: Cannot find client for slot
[  21/   2]              MSG                      01:01:50.782839          User Identity Module/High                                   [    qmi_uim_remote.c   1224] qmi_uim_remote_event_req_handler:event 0x3, slot 0x1
[  21/   2]              MSG                      01:01:50.782839          User Identity Module/High                                   [         uim_btsap.c    645] UIM_1:  Received BTSAP event -- 0x4, state 0x0, mode 0x0
[  21/   3]              MSG                      01:01:51.125313          User Identity Module/Error                                  [          uim_sigs.c   1201] UIM_2: Timed out on the command response
[  21/   2]              MSG                      01:01:51.125313          User Identity Module/High                                   [          uim_sigs.c   1638] UIM_2: Entering UIM_MAX_NUM_ATTEMPTS
[0x1544]                 LOG                      01:01:51.128009          QMI_MCS_QCSI_PKT                                            Length:  116
[  21/   2]              MSG                      01:01:54.790052          User Identity Module/High                                   [    qmi_uim_remote.c   1224] qmi_uim_remote_event_req_handler:event 0x0, slot 0x1
[  21/   2]              MSG                      01:01:54.790052          User Identity Module/High                                   [         uim_btsap.c    645] UIM_1:  Received BTSAP event -- 0x1, state 0x0, mode 0x0
[0x1544]                 LOG                      01:01:54.791001          QMI_MCS_QCSI_PKT                                            Length:  116
[  21/   2]              MSG                      01:01:54.800677          User Identity Module/High                                   [    uimdrv_hal_iso.c    349] UIM_1: uim power up @ 1.8 v
[  21/   2]              MSG                      01:01:55.115000          User Identity Module/High                                   [            mmgsdi.c   8278] MMGSDI_SESSION_CHANGED_EVT, app: 0x3, slot: 0x1, activated: 0x1, session_type: 0x0
[  21/   2]              MSG                      01:01:55.352995          User Identity Module/High                                   [            mmgsdi.c   8460] MMGSDI_SUBSCRIPTION_READY_EVT, app: 0x3, slot: 0x1

http://www.dtcms.com/a/321435.html

相关文章:

  • 6_基于深度学习的火灾检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • 控制建模matlab练习13:线性状态反馈控制器-②系统的能控性
  • #C语言——刷题攻略:牛客编程入门训练(六):运算(三)-- 涉及 辗转相除法求最大公约数
  • JAVA,Maven聚合
  • 【记录】yumdownloader 和 yum install --downloadonly
  • Linux线程概念
  • 一洽客服系统:APP路由等级与路由条件设置
  • FreeRTOS入门知识(初识RTOS)(二)
  • NOIP普及组|2000T1进制转换
  • Spring Boot + Angular 实现安全登录注册系统:全栈开发指南
  • GPT-5 来了:和它改变世界的 982 天
  • 存储管理、XFS 增量备份恢复、LVM
  • Unity_VR_Pico开发手册
  • 防火墙安全作用及 firewalld 交互、端口配置
  • 基于嵌入式Linux RK3568 qt 车机系统开发
  • 前端单元测试最佳实践(一)
  • Linux系统编程Day9 -- gdb (linux)和lldb(macOS)调试工具
  • ubuntu安装gpu驱动
  • 中国的超算中心使用情况如何?是否算力过剩
  • vscode 配置
  • STM32学习笔记5-TIM定时器-1
  • windows安装Docker Desktop报错One prerequisite is not fulfilled.
  • CVPR2025-DEIM改进项目介绍
  • Linux 运维与优化的系统化思维:从内核到生产环境的全链路管理
  • 景区车辆监控调度管理平台建设方案
  • Jetpack Compose 常用控件
  • 电子EDI:MaxLinear EDI 需求分析
  • Go 的错误处理方式深度解析—— error vs panic vs recover:机制原理与实战取舍
  • vue3 遍历 map 用法
  • 密码学安全模型(Security Model):用形式化框架定义“安全“