Why doesn't Android HCE support Mifare Classic type?

走远了吗. 提交于 2019-12-29 07:13:00

问题


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.

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

Any comments will be very appreciated.


回答1:


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:

  • 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 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).

  • 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 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 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).



来源:https://stackoverflow.com/questions/27396659/why-doesnt-android-hce-support-mifare-classic-type

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!