Hello NXP NFC team,
We are working on the MESA3 tablet running Android U. NFC works normally with other SIMs but fails when a Verizon SIM is inserted.
We suspect the Secure Element UICC feature might be causing the issue. And we have disabled the Secure Element in HAL Manifest.xml to test, but the problem persists.
Product/Platform: MESA3 tablet running Android U
Chipset: The hardware uses the legacy NQ310 NFC chipset, which has no direct Android U support. So we are using the SN100 libjni in place of the NQ310 driver to enable NFC on Android U.
Could you please help suggest recommended solution or workaround for
1. ensuring Verizon SIM compatibility with NFC in this setup. (or) bypassing Secure Element functionality on SN-series stack for development.
Thanks in advance for your support.
Hi NXP NFC team,
Could you please share your fix suggestions on priority to fix this NFC not working issue with verizon secure SIM?
Thanks,
Shenbagaraja
Logs Snippets:
07-15 14:09:20.449 6987 7013 I libnfc_nci: [INFO:PowerSwitch.cpp(201)] PowerSwitch::setLevel: actual power level=PS-FULL
07-15 14:09:20.449 6987 7013 I libnfc_nci: [INFO:NativeSecureElement.cpp(440)] NxpNfc_GetHwInfo: Enter;
07-15 14:09:20.449 6987 7013 I libnfc_nci: [INFO:NativeNfcManager.cpp(1805)] nfcManager_doInitialize: exit
07-15 14:09:20.454 6987 7013 I libnfc_nci: [INFO:NativeNfcManager.cpp(4596)] nfcManager_setPreferredSimSlot : uiccslot : 1 : enter
07-15 14:09:20.455 6987 7013 E AidRoutingManager: Size of routing table800
07-15 14:09:20.455 6987 7013 I NfcService: Add T4T Nfcee AID
07-15 14:09:20.456 6987 7013 D NfcService: updateDefaultAidRoute routeLoc:65535
07-15 14:09:20.456 6987 7013 V NfcProperties: prop nfc.dta.skip_ndef_read doesn't exist; fallback to legacy prop nfc.dta.skipNdefRead
07-15 14:09:20.458 6987 6987 I libnfc_nci: [INFO:NativeT4tNfcee.cpp(855)] FW Version: 0.0.0
07-15 14:09:20.458 6987 6987 I libnfc_nci: [INFO:NativeT4tNfcee.cpp(869)] nfcManager_isFwSupportNonStdT4TAid Enter isFwSupport = 0
07-15 14:09:20.458 6987 6987 I libnfc_nci: [INFO:RoutingManager.cpp(500)] RoutingManager::removeAidRouting: enter
07-15 14:09:20.458 6987 6987 I libnfc_nci: [INFO:nfa_ee_api.cc(718)] NFA_EeRemoveAidRouting
07-15 14:09:20.458 6987 6987 I libnfc_nci: [INFO:gki_buffer.cc(329)] GKI_getbuf 0xb400007617c47e50 44:46
07-15 14:09:20.458 6987 6987 I libnfc_nci: [INFO:RoutingManager.cpp(514)] RoutingManager::removeAidRouting: removed AID
07-15 14:09:20.458 6987 7017 I libnfc_nci: [INFO:nfa_sys_main.cc(95)] NFA got event 0x0209
07-15 14:09:20.458 6987 7017 I libnfc_nci: [INFO:nfa_ee_main.cc(688)] Event API_REMOVE_AID(0x209), State: INIT_DONE(1)
07-15 14:09:20.458 6987 7017 I libnfc_nci: [INFO:nfa_ee_act.cc(179)] nfa_ee_api_remove_aid id:0x0 len=7 aid:d2 76 00 00 85 01 01
07-15 14:09:20.458 6987 7017 W libnfc_nci: [WARNING:nfa_ee_act.cc(1541)] nfa_ee_api_remove_aid The AID entry is not in the database
07-15 14:09:20.459 6987 7017 I libnfc_nci: [INFO:RoutingManager.cpp(1143)] RoutingManager::nfaEeCallback: NFA_EE_REMOVE_AID_EVT status=9
07-15 14:09:20.460 6987 6987 I libnfc_nci: [INFO:RoutingManager.cpp(436)] RoutingManager::addAidRouting: enter
07-15 14:09:20.460 6987 6987 I libnfc_nci: [INFO:SecureElement.cpp(1477)] SecureElement::getEseHandleFromGenericId: enter; ESE-ID = 0x7F
07-15 14:09:20.460 6987 6987 I libnfc_nci: [INFO:SecureElement.cpp(1516)] SecureElement::getEseHandleFromGenericId: enter; ESE-Handle = 0x410
07-15 14:09:20.460 6987 6987 I libnfc_nci: [INFO:nfa_ee_api.cc(651)] handle:<0x410>
07-15 14:09:20.460 6987 6987 I libnfc_nci: [INFO:nfa_ee_main.cc(446)] nfa_ee_find_ecb
07-15 14:09:20.461 6987 6987 E libnfc_nci: [ERROR:nfa_ee_api.cc(661)] Bad ee_handle or AID (len=7)
07-15 14:09:20.461 6987 6987 E libnfc_nci: [ERROR:RoutingManager.cpp(492)] RoutingManager::addAidRouting: failed to route AID
07-15 14:09:20.461 6987 6987 I libnfc_nci: [INFO:RoutingManager.cpp(1774)] clearRoutingEntry: Enter . Clear Routing Type = 1
07-15 14:09:20.461 6987 6987 I libnfc_nci: [INFO:nfa_ee_api.cc(456)] handle:<0x400>clear technology_mask:<0x7>
07-15 14:09:20.461 6987 6987 I libnfc_nci: [INFO:nfa_ee_main.cc(446)] nfa_ee_find_ecb
07-15 14:09:20.461 6987 6987 I libnfc_nci: [INFO:gki_buffer.cc(329)] GKI_getbuf 0xb400007617c47e50 44:46
07-15 14:09:20.461 6987 7017 I libnfc_nci: [INFO:nfa_sys_main.cc(95)] NFA got event 0x0205
07-15 14:09:20.461 6987 7017 I libnfc_nci: [INFO:nfa_ee_main.cc(688)] Event API_CLEAR_TECH_CFG(0x205), State: INIT_DONE(1)
07-15 14:09:20.461 6987 7017 I libnfc_nci: [INFO:RoutingManager.cpp(1043)] RoutingManager::nfaEeCallback: NFA_EE_CLEAR_TECH_CFG_EVT; status=0x0
07-15 14:09:20.463 6987 6987 I libnfc_nci: [INFO:RoutingManager.cpp(1774)] clearRoutingEntry: Enter . Clear Routing Type = 2
07-15 14:09:20.463 6987 6987 I libnfc_nci: [INFO:nfa_ee_api.cc(586)] handle:<0x400>clear protocol_mask:<0x28>
07-15 14:09:20.463 6987 6987 I libnfc_nci: [INFO:nfa_ee_main.cc(446)] nfa_ee_find_ecb
07-15 14:09:20.463 6987 6987 I libnfc_nci: [INFO:gki_buffer.cc(329)] GKI_getbuf 0xb400007567c54860 44:46
07-15 14:09:20.463 6987 7017 I libnfc_nci: [INFO:nfa_sys_main.cc(95)] NFA got event 0x0207
07-15 14:09:20.463 6987 7017 I libnfc_nci: [INFO:nfa_ee_main.cc(688)] Event API_CLEAR_PROTO_CFG(0x207), State: INIT_DONE(1)
07-15 14:09:20.463 6987 7017 I libnfc_nci: [INFO:RoutingManager.cpp(1057)] RoutingManager::nfaEeCallback: NFA_EE_CLEAR_PROTO_CFG_EVT; status=0x0
07-15 14:09:20.465 6987 6987 D NfcService: computeRoutingParameters >>>
07-15 14:09:20.490 6987 7013 I libnfc_nci: [INFO:NativeNfcManager.cpp(3029)] nfcManager_doSetScreenState: state = 8 prevScreenState= 0, discovry_param = 1
07-15 14:09:20.490 6987 6987 I libnfc_nci: [INFO:RoutingManager.cpp(1537)] RoutingManager::setRoutingEntry: enter, >>>>>>>> type:0x2 value =0x20 route:7 power:0x0
07-15 14:09:20.490 6987 6987 I libnfc_nci: [INFO:SecureElement.cpp(1401)] SecureElement::getEeInfo: enter; mbNewEE=0, mActualNumEe=0
07-15 14:09:20.490 6987 6987 I libnfc_nci: [INFO:nfa_ee_api.cc(120)] NFA_EeGetInfo em_state:1 cur_ee:3
07-15 14:09:20.491 6987 6987 I libnfc_nci: [INFO:nfa_ee_api.cc(162)] num_ret:0
07-15 14:09:20.491 6987 6987 E libnfc_nci: [ERROR:SecureElement.cpp(1423)] SecureElement::getEeInfo: num EEs discovered: 0
07-15 14:09:20.491 6987 6987 I libnfc_nci: [INFO:SecureElement.cpp(1437)] SecureElement::getEeInfo: exit; mActualNumEe=0, mNumEePresent=0
07-15 14:09:20.491 6987 6987 I libnfc_nci: [INFO:RoutingManager.cpp(1551)] RoutingManager::setRoutingEntry: enter,max_tech_mask :0
07-15 14:09:20.491 6987 6987 E libnfc_nci: [ERROR:RoutingManager.cpp(2127)] getUiccRouteLocId route 7
07-15 14:09:20.491 6987 6987 I libnfc_nci: [INFO:RoutingManager.cpp(1566)] RoutingManager::setRoutingEntry: enter, handle:ffff invalid
07-15 14:09:20.491 6987 6987 I libnfc_nci: [INFO:RoutingManager.cpp(1537)] RoutingManager::setRoutingEntry: enter, >>>>>>>> type:0x2 value =0x4 route:0 power:0x1
07-15 14:09:20.491 6987 6987 I libnfc_nci: [INFO:SecureElement.cpp(1401)] SecureElement::getEeInfo: enter; mbNewEE=0, mActualNumEe=0
07-15 14:09:20.491 6987 6987 I libnfc_nci: [INFO:nfa_ee_api.cc(120)] NFA_EeGetInfo em_state:1 cur_ee:3
07-15 14:09:20.491 6987 6987 I libnfc_nci: [INFO:nfa_ee_api.cc(162)] num_ret:0
07-15 14:09:20.491 6987 6987 E libnfc_nci: [ERROR:SecureElement.cpp(1423)] SecureElement::getEeInfo: num EEs discovered: 0
Logs with Verizon SIM show:
07-15 14:09:20.460 SecureElement::getEseHandleFromGenericId: ESE-ID = 0x7F
07-15 14:09:20.491 SecureElement::getEeInfo: num EEs discovered: 0
07-15 14:09:20.491 RoutingManager::setRoutingEntry: handle:ffff invalid
07-15 14:09:20.455 AidRoutingManager: Size of routing table800
It appears the UICC EE is not discovered and AID routing to UICC fails when Verizon SIM is use