安卓上的MIFARE Ultralight仿真技术

4
我需要创建一个简单的Android应用程序,模拟Mifare Ultralight卡。当读取数据时,它只应“发送”数据(从可编辑缓冲区中获取),并在接收到数据时在同一缓冲区上进行写入。
但我不知道如何模拟读卡器和模拟卡之间的这种通信。我已经阅读了关于Android HCE的内容,但我不知道如何实现Mifare Ultralight通信(ISO 14443类型A)。
我还阅读了这个这个以及当然我也阅读了有关Android HCE的内容。
我真的不知道通信必须如何实现。假设我已经注册并正确设置了HCE的android服务等,从Android开发者网站(带有基本应用程序)可以在第一次模拟读取时发送数据。
但对于MIFARE Ultralight卡模拟:
1)在获取缓冲区后,我应该使用基本的NFC方法吗?
2)如何启用卡模拟器和读卡器之间的通信?
3)这些读取和写入方法应在何处使用?
编辑:让我们想象一个MIFARE钱包...因此,就像我需要存储和获取卡的数据一样。在mifare4mobile网站上,他们告诉我SDK可用,但任何人都知道如何在哪里使用。
谢谢!
1个回答

4
在Android HCE上模拟MIFARE Ultralight是不可能的。Android HCE只允许在ISO/IEC 14443-4传输协议的基础上模拟基于ISO/IEC 7816-4 APDU的应用程序。
MIFARE Ultralight仅使用较低的协议层。具体而言,Ultralight通信协议直接位于ISO/IEC 14443-3 Type A中定义的帧结构之上,没有附加的传输协议。因此,在Android上使用HCE服务模拟它是不可能的。
这并不意味着硬件无法模拟MIFARE Ultralight协议。我已经验证了至少Broadcom NFC控制器能够模拟该协议。然而,实现这一点需要相当广泛的NFC堆栈修改,因此在未修改的原版Android设备上是不可能的。
另请参见 Emulate Mifare card with Android 4.4

你好,感谢您的回复。所以,没有“简单”的方法来做这件事...我发送了电子邮件给_mifare4mobile.org_,但没有回答!现在我正在阅读关于OpenNFC的一些内容。我认为存在一种方法来模拟ISO/IEC 1444-3 Type-A,从而模拟MIFARE卡。 - Marco Sanfilippo
@MarcoSanfilippo,OpenNFC在实际的Android设备上帮助不大,因为它不支持当前Android设备中的NFC控制器。 - Michael Roland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接