Mifare DESFire通信被路由到HCE,而不是在多个Android设备上的脱离主机(UICC)。
通过与脱离主机安全元素的基于OMAPI的通信,我已经学习了如何将AID添加到Android脱离主机路由表中,以便可以在UICC上选择它们。 (感谢@MichaelRoland)
我当前的问题:我的UICC上确实有一个虚拟的Mifare DESfire卡。现在,有些设备无法将本机包装的Mifare命令路由到UICC,并且我仍然没有开关来更改默认路由。因此,我想在主机外路由表中添加另一个条目,但是我不知道要使用哪个AID。
我们的MIFARE DESFire测试应用程序F01010
有一个PICC应用程序AID。这是用于在CLT接口上选择应用程序的AID,但是无法将其输入到Android脱离主机路由表中。此外,我们还有两个与MIFARE DESFire应用程序有关的AID。这是虚拟卡管理器AID(A0000003964D344D1400000000000000
)和服务管理器AID(A0000003964D344D2400000000000000
)。
但是我必须在路由表中插入哪个AID?
最佳答案
Android(可能还有NFC控制器本身)目前仅支持基于ISO / IEC 7816-4 AID / DF名称的路由配置。您不能为本机DESFire AID(即那些3字节的AID)或所有本机包装的通信添加路由。
你可以做什么:
在创建应用程序期间,为您的DESFire应用程序分配一个ISO / IEC 716-4 DF名称。此DF名称是可以在Android脱离主机路由配置中指定的AID。但是,您需要使用DESFire ISO命令集(特别是发出SELECT FILE(按DF名称)命令来选择DESFire应用程序)来触发基于AID的路由。
DESFire EV1本身具有AID / DF名称D2 76 00 00 85 01 00
。如果您的读者选择了此AID(使用SELECT FILE(按DF名称)命令),则DESFire卡将切换到ISO框架(允许使用ISO命令和包装的本机命令)并选择其主文件。您可以在Android上注册此AID,以将所有DESFire通信路由到UICC。但是,每个阅读器都需要通过发送该SELECT FILE命令来启动DESFire通信。
关于android - M4M-Mifare DESFire EV1:需要将哪个Mifare AID添加到NFC路由表中,以便在主机外路由到UICC上的Mifare DESFire虚拟卡?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38232695/