本文介绍了为什么Android HCE不支持Mifare Classic类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Mifare Classic是最常用的卡,我不明白为什么HCE(基于主机的卡仿真)仅支持ISO 14443-4,而不支持Mifare Classic类型.

Mifare Classic is the most used cards and I can't understand why HCE (Host-based Card Emulation) only supports ISO 14443-4, but not Mifare Classic type.

因为NXP阻止他们使用其专有协议和算法?还是因为他们没有在Android操作系统级别实现Mifare Classic?

Because NXP stops them from using their proprietary protocols and algorithms?Or because they didn’t implement Mifare Classic in Android OS level?

任何评论将不胜感激.

推荐答案

简短答案:因为Google决定仅在ISO-DEP(ISO/IEC 14443-4)上支持ISO/IEC 7816-4 ).

Short answer: Because Google decided to support only ISO/IEC 7816-4 over ISO-DEP (ISO/IEC 14443-4).

推测,他们决定采用这种方式:

Speculations on why they decided that way:

  • 首先,基于ISO-DEP的ISO/IEC 7816-4是高级协议层,可用于通过NCI(NFC控制器接口)将通信路由到应用处理器.可以路由较低的协议层(请阅读:"NCI协议支持此协议"),尽管NFC控制器甚至不需要支持较低层通信的路由.

  • First of all, ISO/IEC 7816-4 over ISO-DEP is the highes protocol layer that could be used to route communication to the application processor through NCI (NFC Controller Interface). Routing lower protocol layers is possible (read: "the NCI protocol supports this"), though there is no need for the NFC controller to even support routing of lower layer communication.

ISO/IEC 7816-4允许基于每个应用程序进行路由. IE.读取器选择特定的应用程序,然后,NFC控制器才决定是将通信传递到安全元件还是传递到应用程序处理器.应用程序处理器可以执行类似的路由机制,以将通信路由到特定的应用程序(现在在Android上已完成).

ISO/IEC 7816-4 over ISO-DEP permits routing on a per-application basis. I.e. the reader selects a specific application and only then, the NFC controller decides if the communication is passed to a secure element or to the application processor. The application processor can perform a similar routing mechanism to route communication to a specific app (that's what's done on Android now).

使用较低的协议层(例如ISO/IEC 14443-3),无法按应用进行路由.相反,该级别上的所有通信都将路由到安全元件或应用程序处理器.如果路由到应​​用程序处理器,则操作系统无法在多个应用程序之间进行选择.相反,只能为该类型的通信注册一个应用.但是,考虑到针对Android之类平台的众多应用程序开发人员,仅允许单个应用程序将相当不利于开发.

Using lower protocol layers (e.g. ISO/IEC 14443-3) there is no way of doing per-application routing. Instead all communication on that level would be routed to either a secure element or to the application processor. If routed to the application processor, then the operating system has no means to choose between multiple apps. Instead only one app could be registered for that type of communication. However, considering the multitude of app developers for a platform like Android, permitting only a single app would be rather inhibiting development.

MIFARE Classic是NXP的专有技术.我不希望他们许可MIFARE Classic协议/标签平台的纯软件实现(在应用处理器/Android系统上).

MIFARE Classic is proprietary technology from NXP. I don't expect them to license a pure software implementation (on the application processor/Android system) of the MIFARE Classic protocol/tag platform.

MIFARE Classic对身份验证命令使用非标准成帧,因此可能很难在NCI帧RF接口上进行仿真(尽管我对该协议的了解还不足以确认是否存在阻止该行为的实际限制) MF Classic仿真).

MIFARE Classic uses non-standard framing for authentication commands, so it might be difficult to emulate over the NCI Frame RF interface (though I'm not sufficiently familiar with that protocol to confirm if there's an actual limitation that prevents MF Classic emulation).

这篇关于为什么Android HCE不支持Mifare Classic类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 14:45