使用Android HCE模拟不同的卡

最后发布: 2016-05-01 14:09:44


问题

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

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

  2. 我需要执行什么?

android nfc contactless-smartcard hce emv
回答

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

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

这意味着您可以例如进行仿真

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

我需要执行什么?

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

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