我想实现一个可以支持某些类型卡的应用程序。我想知道以下事情:
-
我可以使用HCE模拟不同类型的卡,例如支付非接触式卡吗?
-
我需要什么来实现它?
是否可以使用 HCE 模拟不同类型的卡?
这取决于您要模拟的特定卡类型。Android HCE 可以模拟任何在 ISO/IEC 14443-4 (ISO-DEP( 之上实现 ISO/IEC 7816-4 的智能卡应用,以及将 ISO/IEC 7816-4 中定义的应用选择机制与任何知名 AID 结合使用。
这意味着您可以,例如,模拟
- 基于非接触式支付系统EMV规范的支付卡,
- 遵循德国 VDV-KA、ITSO 通用微处理器或 Cipurse 规范的交通票务非接触式卡,
- 等。
请注意,除了技术实现方面,您可能还需要克服一些组织障碍......
我需要什么来实现它?
从纯技术角度来看,您需要获取、阅读和理解要实现的卡方案的技术规范。然后,您可以实现一个 HostApduService
,该说出这些规范中定义的协议,并为规范/读取器系统使用的 AID 注册。您甚至可以在一次 HCE 应用程序中使用多HostApduService
组件来模拟不同的智能卡应用程序(只要它们由不同的 AID 寻址(。
从组织的角度来看,肯定不止于此:根据系统的不同,您可能需要获取实施的权限/许可证。您还需要将用户媒体(例如加密密钥等(注册到系统中(通常您不能仅从现有卡中提取它们,这就是首先使用安全智能卡的原因(。