使用 Android HCE 模拟不同的卡
Emulate different cards using Android HCE
我想实现一个可以支持某些类型卡片的应用程序。我想知道以下内容:
我可以使用 HCE 模拟不同类型的卡,例如非接触式支付卡吗?
我需要什么来实现它?
我可以使用 HCE 模拟不同类型的卡吗?
这取决于您要模拟的特定卡片类型。 Android HCE 可以模拟在 ISO/IEC 14443-4 (ISO-DEP) 之上实现 ISO/IEC 7816-4 并使用 [=36= 中定义的应用程序选择机制的任何智能卡应用程序] 7816-4 与任何众所周知的 AID。
这意味着您可以,例如,模仿
- 基于EMV specifications for contactless payment systems、
的支付卡
- 符合德国 VDV-KA、ITSO 通用微处理器或 Cipurse 规范的交通票务非接触式卡,
- 等等
请注意,除了技术实施方面,您可能(将会!)还需要克服一些组织障碍...
我需要什么来实现它?
从纯技术的角度,您需要获取、阅读、理解您要实现的卡片方案的技术规范。然后,您可以实现一个 HostApduService
,它使用那些规范中定义的协议,并为 specification/the reader 系统使用的 AID 注册。您甚至可以在一次 HCE 应用程序中使用多个 HostApduService
组件来模拟不同的智能卡应用程序(只要它们由不同的 AID 寻址)。
从组织的角度来看,肯定不止于此:根据系统的不同,您可能需要获得 permissions/license 才能实施。您还需要将您的用户媒体(例如加密密钥等)注册到系统中(通常您不能只从现有卡中提取它们,这就是首先使用安全智能卡的原因)。
我想实现一个可以支持某些类型卡片的应用程序。我想知道以下内容:
我可以使用 HCE 模拟不同类型的卡,例如非接触式支付卡吗?
我需要什么来实现它?
我可以使用 HCE 模拟不同类型的卡吗?
这取决于您要模拟的特定卡片类型。 Android HCE 可以模拟在 ISO/IEC 14443-4 (ISO-DEP) 之上实现 ISO/IEC 7816-4 并使用 [=36= 中定义的应用程序选择机制的任何智能卡应用程序] 7816-4 与任何众所周知的 AID。
这意味着您可以,例如,模仿
- 基于EMV specifications for contactless payment systems、 的支付卡
- 符合德国 VDV-KA、ITSO 通用微处理器或 Cipurse 规范的交通票务非接触式卡,
- 等等
请注意,除了技术实施方面,您可能(将会!)还需要克服一些组织障碍...
我需要什么来实现它?
从纯技术的角度,您需要获取、阅读、理解您要实现的卡片方案的技术规范。然后,您可以实现一个 HostApduService
,它使用那些规范中定义的协议,并为 specification/the reader 系统使用的 AID 注册。您甚至可以在一次 HCE 应用程序中使用多个 HostApduService
组件来模拟不同的智能卡应用程序(只要它们由不同的 AID 寻址)。
从组织的角度来看,肯定不止于此:根据系统的不同,您可能需要获得 permissions/license 才能实施。您还需要将您的用户媒体(例如加密密钥等)注册到系统中(通常您不能只从现有卡中提取它们,这就是首先使用安全智能卡的原因)。