Android HCE: есть ли правила для AID?
Я пытаюсь использовать считыватель ACR122 NFC, чтобы выбрать приложение, эмулированное в одном Nexus 5, с помощью эмуляции хост-карты Android. Однако небольшие AID не распознаются.
Моя цель - использовать трехбайтовый AID, как я использую в карте DESfire. Моя первая цель - только выполнить команду SELECT.
Мое тестовое приложение использует следующую конфигурацию для идентификаторов 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>
Если я запускаю следующие APDU:
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
Я всегда получаю следующие ответы:
=> 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
Таким образом, только Android с длиной более 5 байтов будут работать с Android? Или я что-то не так делаю?