在阅读了很多问题之后,我决定发布这个问题。我读到android的股票版本不支持用于卡片仿真的API。此外,由于谷歌/三星管理的密钥,我们无法编写自定义应用程序来保护嵌入在nfc控制器中的元素。
我需要模仿一张牌(mifare或desfire等)。我能看到的选项是通过软件来做。我有一个ACR122U阅读器,我已经测试过NFC P2P模式可以正常使用Nexus-S。
1)我遇到一个网站,说nexus的NFC控制器(pn532)可以模拟一个mifare 4k卡。如果这是真的,我可以写/读apdu命令到这个模拟卡吗? (可能如果我使用像cyanogenmod这样的模型rom)
2)我可以编写一个android应用程序来读取从阅读器发送的apdu命令并生成适当的响应(如果不完全,那么仅在某种程度上)。为此,我搜索了我们需要使用cynagenmod修补nexus。有人试过通过这种方法模拟卡吗?
我知道这是可能的,因为我们有来自访问控制公司的产品提供移动应用程序,通过这些应用程序可以打开门,例如http://www.assaabloy.com/en/com/Products/seos-mobile-access/
答案 0 :(得分:3)
可能对您的任务有帮助的一些事实:
答案 1 :(得分:1)
现在,Android 4.4可通过软件进行卡片仿真。 http://developer.android.com/guide/topics/connectivity/nfc/hce.html
答案 2 :(得分:0)
2)绝对可以通过软件进行卡片仿真,但不会在当前的Android API中公开。你将不得不深入研究libnfc-nxp(可能在下面)。但这可能是一个困难的问题。此功能在Inside Secure的芯片上提供,如OpenNFC参考实现中所示。唯一的问题是它是否需要更改CLF固件。如果没有,那么你可以将其破解为软件映像。
但需要注意的是,您将缺少以下功能: - 安全性(Android应用程序不如智能卡安全) - 快速且可预测的响应时间(好吧,取决于你可能的编码方式) - 手机关机时卡片仿真
我认为SEOS基于ISO14443-4而不是Mifare。这意味着您需要一个安全的元素来运行它。
1)对此不太确定,我的猜测是这仍然是基于硬件的(例如依赖于嵌入式安全元素,如恩智浦的SmartMX。
另一种选择是开始开发安全元素。最直接的方法是使用SWP / HCI支持获得一些样本测试SIM。有一个名为IzyNFC的免费开发工具包,可用于javacard,以及用于Android应用程序的GSMA和AFSCM技术文档。