I am trying to use the NFC ACR122 reader to select an application emulated in a single Nexus 5 using Android guest card emulation. However, a small AID is not recognized.
My goal is to use a three-byte AID, as on the DESfire card. My first goal is just to execute a SELECT statement.
My test application uses the following configuration for AID:
<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android" android:description="@string/service_descr" android:requireDeviceUnlock="false" > <aid-group android:category="other" android:description="@string/aid_descr" > <aid-filter android:name="A0A1A2" /> <aid-filter android:name="B0B1B2B3" /> <aid-filter android:name="C0C1C2C3C4" /> <aid-filter android:name="D0D1D2D3D4D5" /> <aid-filter android:name="E0E1E2E3E4E5E6" /> </aid-group> </host-apdu-service>
If I run the following APDUs:
00 a4 04 00 03 a0 a1 a2 00 00 a4 04 00 04 b0 b1 b2 b3 00 00 a4 04 00 05 c0 c1 c2 c3 c4 00 00 a4 04 00 06 d0 d1 d2 d3 d4 d5 00 00 a4 04 00 07 e0 e1 e2 e3 e4 e5 e6 00
I always get the following answers:
=> 00 a4 04 00 03 a0 a1 a2 00 <= 6f 00 => 00 a4 04 00 04 b0 b1 b2 b3 00 <= 6a 82 => 00 a4 04 00 05 c0 c1 c2 c3 c4 00 <= 90 00 => 00 a4 04 00 06 d0 d1 d2 d3 d4 d5 00 <= 90 00 => 00 a4 04 00 07 e0 e1 e2 e3 e4 e5 e6 00 <= 90 00
So, with Android, only AIDs longer than 5 bytes will work? Or am I really something wrong?
android nfc hce mifare apdu
Marcos ramos
source share