使用 Android HCE 模拟不同的卡

Emulate different cards using Android HCE

我想实现一个可以支持某些类型卡片的应用程序。我想知道以下内容:

  1. 我可以使用 HCE 模拟不同类型的卡,例如非接触式支付卡吗?

  2. 我需要什么来实现它?

我可以使用 HCE 模拟不同类型的卡吗?

这取决于您要模拟的特定卡片类型。 Android HCE 可以模拟在 ISO/IEC 14443-4 (ISO-DEP) 之上实现 ISO/IEC 7816-4 并使用 [=36= 中定义的应用程序选择机制的任何智能卡应用程序] 7816-4 与任何众所周知的 AID。

这意味着您可以,例如,模仿

请注意,除了技术实施方面,您可能(将会!)还需要克服一些组织障碍...

我需要什么来实现它?

从纯技术的角度,您需要获取、阅读、理解您要实现的卡片方案的技术规范。然后,您可以实现一个 HostApduService,它使用那些规范中定义的协议,并为 specification/the reader 系统使用的 AID 注册。您甚至可以在一次 HCE 应用程序中使用多个 HostApduService 组件来模拟不同的智能卡应用程序(只要它们由不同的 AID 寻址)。

从组织的角度来看,肯定不止于此:根据系统的不同,您可能需要获得 permissions/license 才能实施。您还需要将您的用户媒体(例如加密密钥等)注册到系统中(通常您不能只从现有卡中提取它们,这就是首先使用安全智能卡的原因)。