Mifare Classic是最常用的卡,我不明白为什么HCE(基于主机的卡仿真)仅支持ISO 14443-4,但不支持Mifare Classic。
因为NXP阻止他们使用其专有协议(protocol)和算法?
还是因为他们没有在Android操作系统级别实现Mifare Classic?
任何意见将不胜感激。
简短答案:因为Google决定仅支持ISO/IEC 7816-4,而不是ISO-DEP(ISO/IEC 14443-4)。
关于的猜测,为什么他们决定采用的方式:
首先,基于ISO-DEP的ISO/IEC 7816-4是Highes协议(protocol)层,可用于通过NCI(NFC Controller 接口(interface))将通信路由到应用处理器。路由较低的协议(protocol)层是可能的(请阅读:“NCI协议(protocol)支持此协议(protocol)”),尽管NFC Controller 甚至不需要支持较低层通信的路由。 通过ISO-DEP的 ISO/IEC 7816-4允许基于每个应用程序进行路由。 IE。读取器选择特定的应用程序,然后,NFC Controller 才决定是将通信传递到安全元件还是传递到应用程序处理器。应用程序处理器可以执行类似的路由机制,以将通信路由到特定的应用程序(这就是现在在Android上所做的事情)。 使用较低的协议(protocol)层(例如ISO/IEC 14443-3),无法按应用进行路由。相反,该级别上的所有通信都将路由到安全元件或应用程序处理器。如果路由到应用程序处理器,则操作系统无法在多个应用程序之间进行选择。相反,只能为该类型的通信注册一个应用。但是,考虑到针对Android之类平台的众多应用程序开发人员,仅允许单个应用程序会阻碍开发。 MIFARE Classic是NXP的专有技术。我不希望他们许可MIFARE Classic协议(protocol)/标签平台的纯软件实现(在应用处理器/Android系统上)。 MIFARE Classic对身份验证命令使用非标准框架,因此可能难以在NCI帧RF接口(interface)上进行仿真(尽管我对该协议(protocol)的了解不足以确认是否存在阻止MF Classic仿真的实际限制)。