首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过HCE模拟CreditCard

通过HCE模拟CreditCard
EN

Stack Overflow用户
提问于 2014-02-12 17:03:45
回答 2查看 2.8K关注 0票数 2

我正在尝试开发一个在Android (4.4)上通过HCE模拟信用卡的应用程序。我有一个可以读取NFC标签的目标应用程序,现在我希望通过在我的设备上模拟NFC来达到同样的效果。该应用程序支持读取ISO 14443-4TypeA/IsoDep,这很好,因为这就是我正在模拟的。据我所知,应用程序读取的格式是:"B5105105105105100^CARDDATA^121222200000181000000,5105105105105100=121222200000181000000“(在本例中,我使用的是MC测试卡号)。我们的目标是让目标应用程序以正确的格式接收我发送的数据,而我还没有实现这一点。我试过检查其他例子,但它们很难找到,而且我的知识在这一点上有点有限。

我已经在我的apduservice.xml中设置了目标应用程序所需的辅助in

现在的问题是如何将正确的数据发送到目标应用程序?我想同时发送"B5105105105105100^CARDDATA^121222200000181000000“和track1”track2“5105105105105100=121222200000181000000我是否需要以某种方式通过AID/PPSE验证apdu部件,而不是通过apduservice文件?

我尝试过以下几种方法,但都没有成功:

代码:

代码语言:javascript
复制
public static String pan = "B5105105105105100^CARDDATA^121222200000181000000,5105105105105100=121222200000181000000";

@Override
public byte[] processCommandApdu(byte[] apdu, Bundle extras) {
    byte[] response = new byte[] {};

    return response = pan.getBytes();
}

我遗漏了什么?感谢您的建议。

EN

回答 2

Stack Overflow用户

发布于 2014-02-12 18:24:33

你忽略了信用卡不是简单的记忆标签。取而代之的是,它们使用相当复杂的协议(由符合ISO 7816-4的文件结构组成,并使用特定命令来指令卡选择应用、返回文件数据、执行交易等)进行通信。信用卡协议由EMVCo指定,可在here中找到。

票数 5
EN

Stack Overflow用户

发布于 2014-04-30 07:50:13

例如,您可以查看此项目(https://bitbucket.org/tbellenger/hce_mobile_card/commits/52c7081cca5017638d4a74e40cb44a4bd7efb7f6)。不过,不要跳过这个提交,因为新代码会破坏功能。该应用程序能够通过NFC读取paywave或paypass信用卡,并将卡上的信息存储在手机中。然后,如果你在非接触式支付终端上点击手机,它将发送从手机接收到的信息。这里有一个你需要的助手库(https://bitbucket.org/tbellenger/card_tools)。祝好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21723134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档