I am a beginner programmer and have problem about sending CCID Command to the Smart Card via Usb Host on Android mobile device. This time I sent PC_to_RDR_IccPowerOn CCID command PC_to_RDR_IccPowerOn to activate the card and received ATR response back.
Next process I sent PC_to_RDR_XfrBlock CCID command to the card for select Applet but I got error response instead.
CCID Response: 80 00 00 00 00 00 00 40 FE 00 - 0xFE Meaning CCID Timeout While Talking to ICC about error code is Reference in Document DWG Device Smart Card Integrated Circuit Device (s) Section 6.2.6.
I find information to slove this problem but not found way to resolve. How I can resolve this issue and get APDU response back to 90 00?
More information#1 This Byte array is the ATR value (answer to reset) that I get from RDR_to_PC_DataBlock answer is
ATR response: 3B 68 00 00 54 48 20 4E 49 44 20 36
Reference ATR value at https://smartcard-atr.appspot.com/
#2 This Byte array is APDU command that I combine with PC_to_RDR_XfrBlock CCID command to select Applet.
6F 0D000000 00 01 00 0000 00A4040008A000000054480001
Applet used to select Thailand Personal DF name of the APDU command line from this link.
https://github.com/chakphanu/ThaiNationalIDCard/blob/master/APDU.md
For response I am not good at English but I will try to sent information as I can if you want, Thankyou for your help.
Normally I use 2 these command
1 PC_to_RDR_IccPowerOn
Command (byte) 0x62, (byte) 0x00000000, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x0000
1 RDR_to_PC_DataBlock
Response 80 0C 00 00 00 00 00 00 00 00 3B 68 00 00 54 48 20 4E 49 44 20 36
2 PC_to_RDR_XfrBlock (with APDU Selet Applet)
Command (byte) 0x6f, (byte) 0x0000000c, (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x0000, (byte) 0x00, (byte) 0xa4, (byte) 0x04, (byte) 0x00, (byte) 0x08, (byte) 0xa0, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x54, (byte) 0x48, (byte) 0x00, (byte) 0x01
2 RDR_to_PC_DataBlock
Response 80 00 00 00 00 00 00 40 FE 00
reference for this link Communicate with smartcard reader through Android USB host