android - DESFire EV1 卡仿真

标签 android nfc mifare hce contactless-smartcard

我需要在 Android 设备上模拟 DESFire EV1 卡。但是,我对如何将 Mifare SDK(精简版或高级版)与 HCE 结合使用感到困惑。

这可能吗?我需要开始这个项目,我对数据如何在 DESFire 卡中存储和加密进行了大量研究,但最终我发现我需要在 HCE 上使用 Mifare SDK。

最佳答案

首先,您不能使用 MIFARE SDK 来模拟卡。 MIFARE SDK 仅提供读卡器端功能。

其次,您无法使用 Android HCE 模拟 MIFARE DESFire (EV1) 卡的全部功能。但是,您可以模拟部分 MIFARE DESFire 协议(protocol)(更具体地说,您只能模拟 ISO/IEC 7816-4 框架(ISO 命令集或包装的 native 命令集),并且前提是前面有 ISO SELECT by AID 命令)。这是否足够取决于系统读取器端的要求。

  • 如果您的读卡器仅支持 DESFire native 命令集:您无法使用 Android HCE 模拟相应的卡。
  • 如果您的读卡器使用封装的 native 命令集但不使用 ISO SELECT(通过 AID)命令启动通信:您无法使用 Android HCE 模拟相应的卡。
  • 如果您的阅读器使用包装的 native 命令集并通过 ISO SELECT(通过 AID)命令(MIFARE DESFire 的 AID 为 D2760000850100)启动通信:您可以为DESFire AID,并且在选择此 AID 后将能够接收所有包装的 native 命令。
  • 如果您的读卡器使用 ISO 命令集但第一个命令不是 ISO SELECT(通过 AID)命令:您无法使用 Android HCE 模拟相应的卡。
  • 如果您的阅读器使用 ISO 命令集并通过 ISO SELECT(通过 AID)命令(对于 MIFARE DESFire AID 或(对于 DESFire EV1)对于 DESFire 应用程序之一的 ISO AID)开始通信:您可以为 DESFire AID(或特定应用程序的 AID)注册您的 HCE 服务,并且在选择此 AID 后将能够接收所有 ISO 命令。

请注意,如果您模拟 MIFARE DESFire 卡,可能会出现许可问题。

关于android - DESFire EV1 卡仿真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29532965/

相关文章:

java - "New Tag Collected"而不是读取应用程序的标签 - NFC android

android - Nexus 7 NFC 干扰无线充电

android - 如何使用 Mifare Lite SDK 管理 NTAG216 上的密码保护?

android - 使用 Mifare DESFire 对 Android 应用程序和锁定系统进行身份验证

android - 在原生 Android 应用程序中使用 WebGL

java - 使用 AppCompat 以编程方式更改操作栏背景和文本颜色

Android: 14443 A型卡的HCE

c# - 我如何在 desfire ev1 中进行 native 身份验证

java - connect() 和 disconnect() 在哪里实现?

android - 如何从 LayoutManager View (RecyclerView) 获取适配器项对象