Android 基于主机的卡模拟,有什么指导吗?

Android 基于主机的卡模拟,有什么指导吗?,android,nfc,cyanogenmod,hce,contactless-smartcard,Android,Nfc,Cyanogenmod,Hce,Contactless Smartcard,我是这个领域的新手,我有一个Nexus S(CyanogenMod11=Android Kitkat 4.4.2) 我需要使用HCE(基于主机的卡模拟)模式来模拟非接触式卡 为了完成这一点,我需要遵循哪些步骤和技巧,有什么指导吗? (-我需要对模拟的安全元素进行编程吗?将其放到云上?) 附言:我还必须使用新的阅读器模式,因为我的应用程序将被另一部支持安卓NfC的手机读取,而不是NfC阅读器 谢谢。在CyanogenMod 11之前,CyanogenMod支持自己的基于主机的卡仿真功能。您可以为a

我是这个领域的新手,我有一个Nexus S(CyanogenMod11=Android Kitkat 4.4.2) 我需要使用HCE(基于主机的卡模拟)模式来模拟非接触式卡

为了完成这一点,我需要遵循哪些步骤和技巧,有什么指导吗? (-我需要对模拟的安全元素进行编程吗?将其放到云上?)

附言:我还必须使用新的阅读器模式,因为我的应用程序将被另一部支持安卓NfC的手机读取,而不是NfC阅读器


谢谢。

在CyanogenMod 11之前,CyanogenMod支持自己的基于主机的卡仿真功能。您可以为
android.nfc.tech.IsoPcdA
技术注册智能卡,然后可以使用
IsoPcdA.transceive()
方法模拟智能卡。请参阅Nikolay Elenkov关于如何使用此API的文章

然而,浏览网页时,似乎该功能在版本11中已经被删除,取而代之的是Android 4.4的官方HCE API

官方Android 4.4 HCE API允许应用程序在Android服务中模拟非接触式智能卡(ISO 14443-4+ISO 7816-4 APDU)。该服务将处理应用程序的所有传入命令apdu,并生成适当的响应apdu。有关如何注册此类HCE服务以及如何在HCE服务中处理传入命令APDU的更多信息,请参阅

不幸的是,在使用libnfc-nxp作为低级NFC堆栈的设备上,该API也不可用(请参阅CyanogenMod 11源代码中的空实现和)


因此,总而言之,目前似乎不太可能在Nexus s上使用CM 11进行基于主机的卡模拟。

非常感谢您的详细回复。因此,根据尼古拉·埃连科夫(Nikolay Elenkov)博客上的评论,他的方法可以在Nexus s上使用CM9/CM10。显然,这是我唯一的解决办法?另一个问题,请使用尼古拉·埃伦科夫的方法,是否可以使用另一个支持安卓NFC的设备而不是NFC阅读器(如在新的阅读器模式下)?再次感谢,如果您能尽快回复我,我将不胜感激,这真的很紧急And@rick_mo正确,如果您在Nexus S上使用CM9(实际上我认为是CM9.1)或CM10,您可以使用那些CyanogenMod HCE扩展。关于从另一个Android NFC设备的访问,适用与官方Android HCE相同的限制(即,您需要通过使用读卡器模式API禁用点对点通信)。抱歉,如果我不太理解,您的意思是不可能“从另一个CM9.1/CM10 NFC设备读取”?不,这不是因为这样的设备会尝试使用点对点模式连接,而不是使用读/写模式。是否有教程向我详细介绍如何进行连接?谢谢:D