M4M - Mifare DESFire EV1: Какой Mifare AID необходимо добавить в таблицу маршрутизации NFC для маршрутизации вне хоста на виртуальную карту Mifare DESFire на UICC?
Связь Mifare DESFire направляется на HCE вместо внешнего хоста (UICC) на нескольких устройствах Android.
Из обмена данными на основе OMAPI с элементами защиты вне хоста я уже узнал, как добавить AID в таблицу маршрутизации вне хоста Android, чтобы я мог выбирать их в UICC. (Спасибо @MichaelRoland)
Моя текущая проблема: у меня есть виртуальная карта Mifare DESfire на моем UICC. Теперь некоторые устройства не маршрутизируют мои встроенные команды Mifare в UICC, и у меня все еще нет переключателя для изменения маршрутизации по умолчанию. Поэтому я хотел иметь еще одну запись в моей таблице маршрутизации вне хоста, но я не знаю, какой AID использовать.
Существует приложение PICC AID нашего тестового приложения MIFARE DESFire. F01010
, Это AID, который используется для выбора приложения на интерфейсе CLT, но его нельзя ввести в таблицу маршрутизации вне хоста Android. Кроме того, у нас есть два дополнительных AID, связанных с приложением MIFARE DESFire. Это AID менеджера виртуальных карт (A0000003964D344D1400000000000000
) и сервисный менеджер AID (A0000003964D344D2400000000000000
).
Но какой AID я должен вставить в таблицу маршрутизации?
2 ответа
Android (и, вероятно, сами контроллеры NFC) в настоящее время поддерживает только конфигурацию маршрутизации на основе имен AID / DF ISO/IEC 7816-4. Вы не можете добавить маршрутизацию для собственных идентификаторов AID DESFire (то есть тех трехбайтовых идентификаторов AID), а также для всех встроенных соединений.
Что ты можешь сделать:
При создании приложения присвойте своим приложениям DESFire имя DF ISO/IEC 716-4. Это имя DF является идентификатором AID, который можно указать в конфигурации маршрутизации вне хоста Android. Однако вам нужно использовать набор команд ISO DESFire (и, в частности, выполнить команду SELECT FILE (по имени DF), чтобы выбрать приложение DESFire), чтобы запустить маршрутизацию на основе AID.
У самого DESFire EV1 есть имя AID / DF
D2 76 00 00 85 01 00
, Если ваш читатель выберет этот AID (используя команду SELECT FILE (по имени DF)), карта DESFire переключится на кадрирование ISO (допускаются команды ISO и переносные собственные команды) и выберет его основной файл. Вы можете зарегистрировать этот AID в Android, чтобы направить все коммуникации DESFire в UICC. Однако каждый читатель должен запустить связь DESFire, отправив команду SELECT FILE.
Вы должны перейти по ссылке ISO7816-5, если вы хотите развернуть свое приложение в широком смысле, чтобы не было конфликтов между приложениями, которые используют один и тот же AID. Второй способ - использовать проприетарный незарегистрированный AID, который всегда начинается с 0x0F.
пример: 0x0F, 0x11, 0x22, 0x33, 0x44