Android 上的 MIFARE Ultralight 仿真

MIFARE Ultralight emulation on Android

我需要创建一个简单的 Android 应用程序来模拟 Mifare Ultralight 卡。它应该只有 "sends" 数据(从可编辑缓冲区中获取)在接收数据时在同一缓冲区上读取和写入。

但是我不知道如何模拟reader和模拟卡之间的这种通信。我已经读过 Android HCE,但我不知道如何实现 Mifare Ultralight 通信(ISO 14443 A 型)。

我也看了this, this and of course I read about Android HCE

真不知道通信要怎么实现。 假设我已经从 Android 开发者网站(带有基本应用程序)为 HCE 等注册并正确设置了 android 服务,我可以在读取模拟器时发送第一次数据。

但对于 MIFARE Ultralight 卡仿真:

1) 获取缓冲区后是否应该使用基本的NFC方法?

2) 如何开启卡模拟器与reader之间的通信?

3) 这些读写方法必须用在什么地方?

编辑: 让我们想象一个 MIFARE 钱包……所以,就像我需要存储和获取卡数据一样。在 mifare4mobile 网站上,他们告诉我可以使用 SDK,但任何人都知道如何使用以及在何处使用。

谢谢!

根本不可能在 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