Not working with a usb-reader #37

Open
opened 2024-07-11 20:21:56 +02:00 by incognito1990 · 14 comments

Hi!

I've tried to manage eSIM cards (5ber/esim-me) via a USB reader, but received the error message 'Cannot connect to eSim via a USB smart card reader.' I've tried different devices, but haven't succeeded. Here are the details:

USB reader: Rocketek Cr310
Phone: Motorola Edge X30 (Android 13)
eSIM cards: 5ber and esim-me
Soft: beta02-59-g829f019

The same cards work via the same reader on Windows 10 with EasyLPAC v0.7.6.
Logs:

07-11 21:00:31.431 23208 23236 I EuiccChannelManager: Scanning USB device 2002:3034
07-11 21:00:31.445 23208 23208 D CompatibilityChangeReporter: Compat change id reported: 160794467; UID 10857; state: ENABLED
07-11 21:00:31.448 23208 23236 I EuiccChannelManager: Scanning USB device 2002:3034
07-11 21:00:34.683 23208 23236 I EuiccChannelManager: Scanning USB device 2002:3034
07-11 21:00:34.683 23208 23236 I EuiccChannelManager: Found CCID interface on 2002:3034, and has permission; trying to open channel
07-11 21:00:34.690 23208 23208 D VRI[UnprivilegedMainActivity]: update {(0,0)(fillxfill) sim={adjust=resize forwardNavigation} ty=BASE_APPLICATION wanim=0x1030300
07-11 21:00:34.690 23208 23208 D VRI[UnprivilegedMainActivity]:   fl=LAYOUT_IN_SCREEN LAYOUT_INSET_DECOR SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS
07-11 21:00:34.690 23208 23208 D VRI[UnprivilegedMainActivity]:   pfl=NO_MOVE_ANIMATION FORCE_DRAW_STATUS_BAR_BACKGROUND USE_BLAST FIT_INSETS_CONTROLLED
07-11 21:00:34.690 23208 23208 D VRI[UnprivilegedMainActivity]:   bhv=DEFAULT
07-11 21:00:34.690 23208 23208 D VRI[UnprivilegedMainActivity]:   fitSides=} by setLayoutParams
07-11 21:00:34.704 23208 23208 W Choreographer: Frame time is 0.118697 ms in the future!  Check that graphics HAL is generating vsync timestamps using the correct timebase.
07-11 21:00:34.785 23208 23236 V UsbCcidTransceiver: CCID: attempting to power on with voltage _5V
07-11 21:00:34.785 23208 23236 D UsbCcidTransceiver: Receive data block immediate seq=0
07-11 21:00:34.841 23208 23236 D UsbCcidTransceiver: Received 33 bytes: 801700000000000080003B******************************************FB0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07-11 21:00:34.841 23208 23236 D UsbCcidTransceiver: Usb transport connected, took 156ms, ATR=3B******************************************FB
07-11 21:00:34.842 23208 23236 D UsbCcidTransceiver: Receive data block immediate seq=1
07-11 21:00:34.844 23208 23236 D UsbCcidTransceiver: Received 10 bytes: 800000000000014000003B******************************************FB0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07-11 21:00:34.844 23208 23236 W System.err: UsbCcidErrorException(msg=USB-CCID error!, errorResponse=CcidDataBlock(dwLength=0, bSlot=0, bSeq=1, bStatus=64, bError=0, bChainParameter=0, data=[]))
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.usb.UsbCcidTransceiver.receiveDataBlock(UsbCcidTransceiver.kt:162)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.usb.UsbCcidTransceiver.sendXfrBlock(UsbCcidTransceiver.kt:280)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.usb.UsbCcidTransceiver.sendXfrBlock$default(UsbCcidTransceiver.kt:254)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.usb.UsbApduInterface.transmitApduByChannel(UsbApduInterface.kt:133)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.usb.UsbApduInterface.logicalChannelOpen(UsbApduInterface.kt:51)
07-11 21:00:34.844 23208 23236 W System.err: 	at net.typeblog.lpac_jni.LpacJni.euiccInit(Native Method)
07-11 21:00:34.844 23208 23236 W System.err: 	at net.typeblog.lpac_jni.impl.LocalProfileAssistantImpl.<init>(LocalProfileAssistantImpl.kt:25)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.EuiccChannel.<init>(EuiccChannel.kt:17)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelFactory.tryOpenUsbEuiccChannel(DefaultEuiccChannelFactory.kt:53)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invokeSuspend(DefaultEuiccChannelManager.kt:211)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:8)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:4)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel$suspendImpl(DefaultEuiccChannelManager.kt:202)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel(Unknown Source:0)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.ui.UsbCcidReaderFragment$tryLoadUsbChannel$2.invokeSuspend(UsbCcidReaderFragment.kt:144)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
07-11 21:00:34.844 23208 23236 W System.err: java.lang.IllegalArgumentException: Failed to initialize LPA
07-11 21:00:34.844 23208 23236 W System.err: 	at net.typeblog.lpac_jni.impl.LocalProfileAssistantImpl.<init>(LocalProfileAssistantImpl.kt:26)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.EuiccChannel.<init>(EuiccChannel.kt:17)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelFactory.tryOpenUsbEuiccChannel(DefaultEuiccChannelFactory.kt:53)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invokeSuspend(DefaultEuiccChannelManager.kt:211)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:8)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:4)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel$suspendImpl(DefaultEuiccChannelManager.kt:202)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel(Unknown Source:0)
07-11 21:00:34.844 23208 23236 W System.err: 	at im.angry.openeuicc.ui.UsbCcidReaderFragment$tryLoadUsbChannel$2.invokeSuspend(UsbCcidReaderFragment.kt:144)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
07-11 21:00:34.844 23208 23236 W System.err: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
07-11 21:00:34.844 23208 23236 I EuiccChannelManager: No valid eUICC channel found on USB device 2002:3034

Hi! I've tried to manage eSIM cards (5ber/esim-me) via a USB reader, but received the error message 'Cannot connect to eSim via a USB smart card reader.' I've tried different devices, but haven't succeeded. Here are the details: USB reader: Rocketek Cr310 Phone: Motorola Edge X30 (Android 13) eSIM cards: 5ber and esim-me Soft: beta02-59-g829f019 The same cards work via the same reader on Windows 10 with EasyLPAC v0.7.6. Logs: ``` 07-11 21:00:31.431 23208 23236 I EuiccChannelManager: Scanning USB device 2002:3034 07-11 21:00:31.445 23208 23208 D CompatibilityChangeReporter: Compat change id reported: 160794467; UID 10857; state: ENABLED 07-11 21:00:31.448 23208 23236 I EuiccChannelManager: Scanning USB device 2002:3034 07-11 21:00:34.683 23208 23236 I EuiccChannelManager: Scanning USB device 2002:3034 07-11 21:00:34.683 23208 23236 I EuiccChannelManager: Found CCID interface on 2002:3034, and has permission; trying to open channel 07-11 21:00:34.690 23208 23208 D VRI[UnprivilegedMainActivity]: update {(0,0)(fillxfill) sim={adjust=resize forwardNavigation} ty=BASE_APPLICATION wanim=0x1030300 07-11 21:00:34.690 23208 23208 D VRI[UnprivilegedMainActivity]: fl=LAYOUT_IN_SCREEN LAYOUT_INSET_DECOR SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS 07-11 21:00:34.690 23208 23208 D VRI[UnprivilegedMainActivity]: pfl=NO_MOVE_ANIMATION FORCE_DRAW_STATUS_BAR_BACKGROUND USE_BLAST FIT_INSETS_CONTROLLED 07-11 21:00:34.690 23208 23208 D VRI[UnprivilegedMainActivity]: bhv=DEFAULT 07-11 21:00:34.690 23208 23208 D VRI[UnprivilegedMainActivity]: fitSides=} by setLayoutParams 07-11 21:00:34.704 23208 23208 W Choreographer: Frame time is 0.118697 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. 07-11 21:00:34.785 23208 23236 V UsbCcidTransceiver: CCID: attempting to power on with voltage _5V 07-11 21:00:34.785 23208 23236 D UsbCcidTransceiver: Receive data block immediate seq=0 07-11 21:00:34.841 23208 23236 D UsbCcidTransceiver: Received 33 bytes: 801700000000000080003B******************************************FB0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 07-11 21:00:34.841 23208 23236 D UsbCcidTransceiver: Usb transport connected, took 156ms, ATR=3B******************************************FB 07-11 21:00:34.842 23208 23236 D UsbCcidTransceiver: Receive data block immediate seq=1 07-11 21:00:34.844 23208 23236 D UsbCcidTransceiver: Received 10 bytes: 800000000000014000003B******************************************FB0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 07-11 21:00:34.844 23208 23236 W System.err: UsbCcidErrorException(msg=USB-CCID error!, errorResponse=CcidDataBlock(dwLength=0, bSlot=0, bSeq=1, bStatus=64, bError=0, bChainParameter=0, data=[])) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.usb.UsbCcidTransceiver.receiveDataBlock(UsbCcidTransceiver.kt:162) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.usb.UsbCcidTransceiver.sendXfrBlock(UsbCcidTransceiver.kt:280) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.usb.UsbCcidTransceiver.sendXfrBlock$default(UsbCcidTransceiver.kt:254) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.usb.UsbApduInterface.transmitApduByChannel(UsbApduInterface.kt:133) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.usb.UsbApduInterface.logicalChannelOpen(UsbApduInterface.kt:51) 07-11 21:00:34.844 23208 23236 W System.err: at net.typeblog.lpac_jni.LpacJni.euiccInit(Native Method) 07-11 21:00:34.844 23208 23236 W System.err: at net.typeblog.lpac_jni.impl.LocalProfileAssistantImpl.<init>(LocalProfileAssistantImpl.kt:25) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.EuiccChannel.<init>(EuiccChannel.kt:17) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelFactory.tryOpenUsbEuiccChannel(DefaultEuiccChannelFactory.kt:53) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invokeSuspend(DefaultEuiccChannelManager.kt:211) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:8) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:4) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel$suspendImpl(DefaultEuiccChannelManager.kt:202) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel(Unknown Source:0) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.ui.UsbCcidReaderFragment$tryLoadUsbChannel$2.invokeSuspend(UsbCcidReaderFragment.kt:144) 07-11 21:00:34.844 23208 23236 W System.err: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664) 07-11 21:00:34.844 23208 23236 W System.err: java.lang.IllegalArgumentException: Failed to initialize LPA 07-11 21:00:34.844 23208 23236 W System.err: at net.typeblog.lpac_jni.impl.LocalProfileAssistantImpl.<init>(LocalProfileAssistantImpl.kt:26) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.EuiccChannel.<init>(EuiccChannel.kt:17) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelFactory.tryOpenUsbEuiccChannel(DefaultEuiccChannelFactory.kt:53) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invokeSuspend(DefaultEuiccChannelManager.kt:211) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:8) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:4) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel$suspendImpl(DefaultEuiccChannelManager.kt:202) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel(Unknown Source:0) 07-11 21:00:34.844 23208 23236 W System.err: at im.angry.openeuicc.ui.UsbCcidReaderFragment$tryLoadUsbChannel$2.invokeSuspend(UsbCcidReaderFragment.kt:144) 07-11 21:00:34.844 23208 23236 W System.err: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) 07-11 21:00:34.844 23208 23236 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664) 07-11 21:00:34.844 23208 23236 I EuiccChannelManager: No valid eUICC channel found on USB device 2002:3034 ```

I use cardreader card reader SYC-E001 with latest easyeuicc version 829f019aa2 it works perfect. The way how i need do it. First open app after connect card-reader with insert card, after it ask you grand usb access. If you first connect usb reader and open app after it doesn´t work. I try 5ber esim, esim.me and taobao esim. I have Xiaomi 13 pro with android 14.

I use cardreader card reader SYC-E001 with latest easyeuicc version 829f019aa2 it works perfect. The way how i need do it. First open app after connect card-reader with insert card, after it ask you grand usb access. If you first connect usb reader and open app after it doesn´t work. I try 5ber esim, esim.me and taobao esim. I have Xiaomi 13 pro with android 14.
Owner

Does the card reader work with pcscd on Linux? Because I see these readers come with their own drivers on Windows, and I'm wondering whether they are even using the standard USB CCID protocol. If they are not, then they are not expected to work with OpenEUICC, and there is no plan to support non-standard card readers. If they are, then something is broken in our USB CCID implementation.

Does the card reader work with `pcscd` on Linux? Because I see these readers come with their own drivers on Windows, and I'm wondering whether they are even using the standard USB CCID protocol. If they are not, then they are not expected to work with OpenEUICC, and there is no plan to support non-standard card readers. If they are, then something is broken in our USB CCID implementation.
Author

Hi @PeterCxy
I've installed pcscd and pcsc-tools on raspbian 11 and it looks like it works.

pcsc_scan:

Using reader plug'n play mechanism
Scanning present readers...
0: Generic USB2.0-CRW [Smart Card Reader Interface] (20070818000000000) 00 00

Fri Jul 12 17:34:56 2024
 Reader 0: Generic USB2.0-CRW [Smart Card Reader Interface] (20070818000000000) 00 00
  Event number: 0
  Card state: Card inserted,
  ATR: 3B ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** FB

ATR: 3B ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** FB
+ TS = 3B --> Direct Convention
+ T0 = 9F, Y(1): 1001, K: 15 (historical bytes)
  TA(1) = 96 --> Fi=512, Di=32, 16 cycles/ETU
    250000 bits/s at 4 MHz, fMax for Fi = 5 MHz => 312500 bits/s
  TD(1) = 80 --> Y(i+1) = 1000, Protocol T = 0
-----
  TD(2) = 3F --> Y(i+1) = 0011, Protocol T = 15 - Global interface bytes following
-----
  TA(3) = C7 --> Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V C 1.8V
  TB(3) = 82 -->
+ Historical bytes: ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
  Category indicator byte: 80 (compact TLV data object)
    Tag: 3, len: 1 (card service data byte)
      Card service data byte: E0
        - Application selection: by full DF name
        - Application selection: by partial DF name
        - BER-TLV data objects available in EF.DIR
        - EF.DIR and EF.ATR access services: by GET RECORD(s) command
        - Card with MF
    Tag: 7, len: 3 (card capabilities)
      Selection methods: FE
        - DF selection by full DF name
        - DF selection by partial DF name
        - DF selection by path
        - DF selection by file identifier
        - Implicit DF selection
        - Short EF identifier supported
        - Record number supported
      Data coding byte: 21
        - Behaviour of write functions: proprietary
        - Value 'FF' for the first byte of BER-TLV tag fields: invalid
        - Data unit in quartets: 2
      Command chaining, length fields and logical channels: 1B
        - Logical channel number assignment: by the interface device and card
        - Maximum number of logical channels: 4
    Tag: 5, len: 7 (card issuer's data)
      Card issuer data: AA 86 60 F0 01 00 04
+ TCK = FB (correct checksum)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
        NONE

Updating /home/pi/.cache/smartcard_list.txt using http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt

Possibly identified card (using /home/pi/.cache/smartcard_list.txt):
3B ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** FB
        The eSIM.me Card (Telecommunication)
        https://esim.me/

Do you need additional information?

Hi @PeterCxy I've installed `pcscd `and `pcsc-tools` on raspbian 11 and it looks like it works. `pcsc_scan`: ``` Using reader plug'n play mechanism Scanning present readers... 0: Generic USB2.0-CRW [Smart Card Reader Interface] (20070818000000000) 00 00 Fri Jul 12 17:34:56 2024 Reader 0: Generic USB2.0-CRW [Smart Card Reader Interface] (20070818000000000) 00 00 Event number: 0 Card state: Card inserted, ATR: 3B ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** FB ATR: 3B ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** FB + TS = 3B --> Direct Convention + T0 = 9F, Y(1): 1001, K: 15 (historical bytes) TA(1) = 96 --> Fi=512, Di=32, 16 cycles/ETU 250000 bits/s at 4 MHz, fMax for Fi = 5 MHz => 312500 bits/s TD(1) = 80 --> Y(i+1) = 1000, Protocol T = 0 ----- TD(2) = 3F --> Y(i+1) = 0011, Protocol T = 15 - Global interface bytes following ----- TA(3) = C7 --> Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V C 1.8V TB(3) = 82 --> + Historical bytes: ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** Category indicator byte: 80 (compact TLV data object) Tag: 3, len: 1 (card service data byte) Card service data byte: E0 - Application selection: by full DF name - Application selection: by partial DF name - BER-TLV data objects available in EF.DIR - EF.DIR and EF.ATR access services: by GET RECORD(s) command - Card with MF Tag: 7, len: 3 (card capabilities) Selection methods: FE - DF selection by full DF name - DF selection by partial DF name - DF selection by path - DF selection by file identifier - Implicit DF selection - Short EF identifier supported - Record number supported Data coding byte: 21 - Behaviour of write functions: proprietary - Value 'FF' for the first byte of BER-TLV tag fields: invalid - Data unit in quartets: 2 Command chaining, length fields and logical channels: 1B - Logical channel number assignment: by the interface device and card - Maximum number of logical channels: 4 Tag: 5, len: 7 (card issuer's data) Card issuer data: AA 86 60 F0 01 00 04 + TCK = FB (correct checksum) Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): NONE Updating /home/pi/.cache/smartcard_list.txt using http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt Possibly identified card (using /home/pi/.cache/smartcard_list.txt): 3B ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** FB The eSIM.me Card (Telecommunication) https://esim.me/ ``` Do you need additional information?
Author

Hi.
I checked, the same reader with the same cards works on ubuntu 24.04 x86_64 with lpac and pcscd

Hi. I checked, the same reader with the same cards works on ubuntu 24.04 x86_64 with lpac and pcscd

with the new update from Peter Cxy versioin 27627fdf15 the USB-C Reader Rocketek Cr310 works on Xiaomi 13 pro with 5ber and esim. me. Awsome thx for the update!

with the new update from Peter Cxy versioin 27627fdf15 the USB-C Reader Rocketek Cr310 works on Xiaomi 13 pro with 5ber and esim. me. Awsome thx for the update!
Author

@fifi501 no changes for me.
The issue is still relevant

@fifi501 no changes for me. The issue is still relevant

@incognito1990 did you use the latest app version 27627fdf1 ? I have try it on 2 other xiaomi phones with that app version and also with another PC card reader, also this work on all 3 phones.

@incognito1990 did you use the latest app version 27627fdf1 ? I have try it on 2 other xiaomi phones with that app version and also with another PC card reader, also this work on all 3 phones.
Author

@fifi501 yes, the latest version. I've check on different devices (moto, samsung, xiaomi), it doesn't work for me.
Unfortunately I have only one reader, I can't check with other readers, but according to the logs, the app is able to read card's ATR, that means the reader works fine

@fifi501 yes, the latest version. I've check on different devices (moto, samsung, xiaomi), it doesn't work for me. Unfortunately I have only one reader, I can't check with other readers, but according to the logs, the app is able to read card's ATR, that means the reader works fine
Owner

The reader is clearly behaving in some non-standard way that I don't understand yet, but unfortunately I don't own that same reader and can't debug. I'm going to leave this issue open in case someone else has the same reader, sees the same issue and is able to debug.

The reader is clearly behaving in some non-standard way that I don't understand yet, but unfortunately I don't own that same reader and can't debug. I'm going to leave this issue open in case someone else has the same reader, sees the same issue and is able to debug.

I have the same issue with external USB-CCID card(UTHAI) and it works on Windows 11 & Linux without any drivers. Here is the log and seems EasyEUICC can read the USB card.

=========================================
08-30 12:03:17.178 14905 14931 I EuiccChannelManager: Scanning USB device 1002:3034
08-30 12:03:17.178 14905 14931 I EuiccChannelManager: Found CCID interface on 1002:3034, and has permission; trying to open channel
08-30 12:03:17.284 14905 14931 V UsbCcidTransceiver: CCID: attempting to power on with voltage _5V
08-30 12:03:17.285 14905 14931 D UsbCcidTransceiver: Receive data block immediate seq=0
08-30 12:03:17.358 14905 14931 D UsbCcidTransceiver: Received 33 bytes: 8xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
08-30 12:03:17.359 14905 14931 D UsbCcidTransceiver: Usb transport connected, took 176ms, ATR=3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE
08-30 12:03:17.365 14905 14931 D UsbCcidTransceiver: Receive data block immediate seq=1
08-30 12:03:17.381 14905 14931 D UsbCcidTransceiver: Received 10 bytes: 80xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEE0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
08-30 12:03:17.385 14905 14931 W System.err: UsbCcidErrorException(msg=USB-CCID error!, errorResponse=CcidDataBlock(dwLength=0, bSlot=0, bSeq=1, bStatus=64, bError=0, bChainParameter=0, data=[]))
08-30 12:03:17.386 14905 14931 W System.err: at im.angry.openeuicc.core.usb.UsbCcidTransceiver.receiveDataBlock(UsbCcidTransceiver.kt:162)
08-30 12:03:17.386 14905 14931 W System.err: at im.angry.openeuicc.core.usb.UsbCcidTransceiver.sendXfrBlock(UsbCcidTransceiver.kt:280)
08-30 12:03:17.386 14905 14931 W System.err: at im.angry.openeuicc.core.usb.UsbCcidTransceiver.sendXfrBlock$default(UsbCcidTransceiver.kt:254)
08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.usb.UsbApduInterface.transmitApduByChannel(UsbApduInterface.kt:133)
08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.usb.UsbApduInterface.logicalChannelOpen(UsbApduInterface.kt:51)
08-30 12:03:17.387 14905 14931 W System.err: at net.typeblog.lpac_jni.LpacJni.euiccInit(Native Method)
08-30 12:03:17.387 14905 14931 W System.err: at net.typeblog.lpac_jni.impl.LocalProfileAssistantImpl.(LocalProfileAssistantImpl.kt:25)
08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.EuiccChannel.(EuiccChannel.kt:17)
08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelFactory.tryOpenUsbEuiccChannel(DefaultEuiccChannelFactory.kt:53)
08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invokeSuspend(DefaultEuiccChannelManager.kt:211)
08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:8)
08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:4)
08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169)
08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel$suspendImpl(DefaultEuiccChannelManager.kt:202)
08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel(Unknown Source:0)
08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.ui.UsbCcidReaderFragment$tryLoadUsbChannel$2.invokeSuspend(UsbCcidReaderFragment.kt:144)
08-30 12:03:17.387 14905 14931 W System.err: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
08-30 12:03:17.387 14905 14931 W System.err: java.lang.IllegalArgumentException: Failed to initialize LPA
08-30 12:03:17.388 14905 14931 W System.err: at net.typeblog.lpac_jni.impl.LocalProfileAssistantImpl.(LocalProfileAssistantImpl.kt:26)
08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.EuiccChannel.(EuiccChannel.kt:17)
08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelFactory.tryOpenUsbEuiccChannel(DefaultEuiccChannelFactory.kt:53)
08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invokeSuspend(DefaultEuiccChannelManager.kt:211)
08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:8)
08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:4)
08-30 12:03:17.388 14905 14931 W System.err: at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
08-30 12:03:17.388 14905 14931 W System.err: at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169)
08-30 12:03:17.388 14905 14931 W System.err: at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel$suspendImpl(DefaultEuiccChannelManager.kt:202)
08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel(Unknown Source:0)
08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.ui.UsbCcidReaderFragment$tryLoadUsbChannel

I have the same issue with external USB-CCID card(UTHAI) and it works on Windows 11 & Linux without any drivers. Here is the log and seems EasyEUICC can read the USB card. ========================================= 08-30 12:03:17.178 14905 14931 I EuiccChannelManager: Scanning USB device 1002:3034 08-30 12:03:17.178 14905 14931 I EuiccChannelManager: Found CCID interface on 1002:3034, and has permission; trying to open channel 08-30 12:03:17.284 14905 14931 V UsbCcidTransceiver: CCID: attempting to power on with voltage _5V 08-30 12:03:17.285 14905 14931 D UsbCcidTransceiver: Receive data block immediate seq=0 08-30 12:03:17.358 14905 14931 D UsbCcidTransceiver: Received 33 bytes: 8xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 08-30 12:03:17.359 14905 14931 D UsbCcidTransceiver: Usb transport connected, took 176ms, ATR=3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 08-30 12:03:17.365 14905 14931 D UsbCcidTransceiver: Receive data block immediate seq=1 08-30 12:03:17.381 14905 14931 D UsbCcidTransceiver: Received 10 bytes: 80xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEE0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 08-30 12:03:17.385 14905 14931 W System.err: UsbCcidErrorException(msg=USB-CCID error!, errorResponse=CcidDataBlock(dwLength=0, bSlot=0, bSeq=1, bStatus=64, bError=0, bChainParameter=0, data=[])) 08-30 12:03:17.386 14905 14931 W System.err: at im.angry.openeuicc.core.usb.UsbCcidTransceiver.receiveDataBlock(UsbCcidTransceiver.kt:162) 08-30 12:03:17.386 14905 14931 W System.err: at im.angry.openeuicc.core.usb.UsbCcidTransceiver.sendXfrBlock(UsbCcidTransceiver.kt:280) 08-30 12:03:17.386 14905 14931 W System.err: at im.angry.openeuicc.core.usb.UsbCcidTransceiver.sendXfrBlock$default(UsbCcidTransceiver.kt:254) 08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.usb.UsbApduInterface.transmitApduByChannel(UsbApduInterface.kt:133) 08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.usb.UsbApduInterface.logicalChannelOpen(UsbApduInterface.kt:51) 08-30 12:03:17.387 14905 14931 W System.err: at net.typeblog.lpac_jni.LpacJni.euiccInit(Native Method) 08-30 12:03:17.387 14905 14931 W System.err: at net.typeblog.lpac_jni.impl.LocalProfileAssistantImpl.<init>(LocalProfileAssistantImpl.kt:25) 08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.EuiccChannel.<init>(EuiccChannel.kt:17) 08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelFactory.tryOpenUsbEuiccChannel(DefaultEuiccChannelFactory.kt:53) 08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invokeSuspend(DefaultEuiccChannelManager.kt:211) 08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:8) 08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:4) 08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89) 08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169) 08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1) 08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel$suspendImpl(DefaultEuiccChannelManager.kt:202) 08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel(Unknown Source:0) 08-30 12:03:17.387 14905 14931 W System.err: at im.angry.openeuicc.ui.UsbCcidReaderFragment$tryLoadUsbChannel$2.invokeSuspend(UsbCcidReaderFragment.kt:144) 08-30 12:03:17.387 14905 14931 W System.err: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) 08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42) 08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95) 08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) 08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) 08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) 08-30 12:03:17.387 14905 14931 W System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664) 08-30 12:03:17.387 14905 14931 W System.err: java.lang.IllegalArgumentException: Failed to initialize LPA 08-30 12:03:17.388 14905 14931 W System.err: at net.typeblog.lpac_jni.impl.LocalProfileAssistantImpl.<init>(LocalProfileAssistantImpl.kt:26) 08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.EuiccChannel.<init>(EuiccChannel.kt:17) 08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelFactory.tryOpenUsbEuiccChannel(DefaultEuiccChannelFactory.kt:53) 08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invokeSuspend(DefaultEuiccChannelManager.kt:211) 08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:8) 08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager$enumerateUsbEuiccChannel$2.invoke(Unknown Source:4) 08-30 12:03:17.388 14905 14931 W System.err: at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89) 08-30 12:03:17.388 14905 14931 W System.err: at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169) 08-30 12:03:17.388 14905 14931 W System.err: at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1) 08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel$suspendImpl(DefaultEuiccChannelManager.kt:202) 08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.core.DefaultEuiccChannelManager.enumerateUsbEuiccChannel(Unknown Source:0) 08-30 12:03:17.388 14905 14931 W System.err: at im.angry.openeuicc.ui.UsbCcidReaderFragment$tryLoadUsbChannel

I also cannot get USB card readers to work. I have tried 2 readers, 2 android devices and 2 esims
Card readers work with EasyLPAC on Windows 10 (9esim card)
EasyEUICC v1.2.0
Card Readers Rocketek CR310 & AP3300
Lenovo M8 Android 13 & Pixel 3A Android 12
5ber standard & 9esim

Log file attached

I also cannot get USB card readers to work. I have tried 2 readers, 2 android devices and 2 esims Card readers work with EasyLPAC on Windows 10 (9esim card) EasyEUICC v1.2.0 Card Readers Rocketek CR310 & AP3300 Lenovo M8 Android 13 & Pixel 3A Android 12 5ber standard & 9esim Log file attached
Contributor

Resolve this problem and supports more non-standard USB CCID smartcard reader.

I think libusb and libpcsclite need to be ported to Android.

However, I think Peter would reject this idea.

Resolve this problem and supports more non-standard USB CCID smartcard reader. I think libusb and libpcsclite need to be ported to Android. However, I think Peter would reject this idea.
Contributor

Rocketek CR310 use RTS5169 solution

Datasheet: https://news.eda365.com/device/download/724953 (PDF)

lsusb -vvv
Bus 003 Device 004: ID 0bda:0169 Realtek Semiconductor Corp. Mass Storage Device
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0bda Realtek Semiconductor Corp.
  idProduct          0x0169 Mass Storage Device
  bcdDevice           61.23
  iManufacturer           1 Generic
  iProduct                2 USB2.0-CRW
  iSerial                 3 20070818000000000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0074
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          4 CARD READER
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass        11 Chip/SmartCard
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0
      iInterface              6 Smart Card Reader Interface
      ChipCard Interface Descriptor:
        bLength                54
        bDescriptorType        33
        bcdCCID              1.10
        nMaxSlotIndex           0
        bVoltageSupport         7  5.0V 3.0V 1.8V
        dwProtocols             3  T=0 T=1
        dwDefaultClock       3750
        dwMaxiumumClock      7500
        bNumClockSupported      0
        dwDataRate          10080 bps
        dwMaxDataRate      312500 bps
        bNumDataRatesSupp.      0
        dwMaxIFSD             254
        dwSyncProtocols  00000000
        dwMechanical     00000000
        dwFeatures       00010030
          Auto clock change
          Auto baud rate change
          TPDU level exchange
        dwMaxCCIDMsgLen       271
        bClassGetResponse      00
        bClassEnvelope         00
        wlcdLayout           none
        bPINSupport             0
        bMaxCCIDBusySlots       1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               8
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x05  EP 5 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              5 Bulk-In, Bulk-Out, Interface
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)
Rocketek CR310 use [RTS5169](https://www.realtek.com/Product/Index?id=641&cate_id=195) solution Datasheet: https://news.eda365.com/device/download/724953 (PDF) <details> <summary>lsusb -vvv</summary> ``` Bus 003 Device 004: ID 0bda:0169 Realtek Semiconductor Corp. Mass Storage Device Negotiated speed: High Speed (480Mbps) Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 [unknown] bDeviceSubClass 0 [unknown] bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0bda Realtek Semiconductor Corp. idProduct 0x0169 Mass Storage Device bcdDevice 61.23 iManufacturer 1 Generic iProduct 2 USB2.0-CRW iSerial 3 20070818000000000 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0074 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 4 CARD READER bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 11 Chip/SmartCard bInterfaceSubClass 0 [unknown] bInterfaceProtocol 0 iInterface 6 Smart Card Reader Interface ChipCard Interface Descriptor: bLength 54 bDescriptorType 33 bcdCCID 1.10 nMaxSlotIndex 0 bVoltageSupport 7 5.0V 3.0V 1.8V dwProtocols 3 T=0 T=1 dwDefaultClock 3750 dwMaxiumumClock 7500 bNumClockSupported 0 dwDataRate 10080 bps dwMaxDataRate 312500 bps bNumDataRatesSupp. 0 dwMaxIFSD 254 dwSyncProtocols 00000000 dwMechanical 00000000 dwFeatures 00010030 Auto clock change Auto baud rate change TPDU level exchange dwMaxCCIDMsgLen 271 bClassGetResponse 00 bClassEnvelope 00 wlcdLayout none bPINSupport 0 bMaxCCIDBusySlots 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 8 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 5 Bulk-In, Bulk-Out, Interface Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 [unknown] bDeviceSubClass 0 [unknown] bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 can't get debug descriptor: Resource temporarily unavailable Device Status: 0x0000 (Bus Powered) ``` </details>
Contributor

can't figure out how to fix it

can't figure out how to fix it
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
6 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: PeterCxy/OpenEUICC#37
No description provided.