gpt4 book ai didi

android - 通过 HCE 模拟信用卡

转载 作者:搜寻专家 更新时间:2023-11-01 08:00:41 26 4
gpt4 key购买 nike

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

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

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

我尝试了以下但没有成功:

代码:

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();
}

我错过了什么?感谢您的任何建议。

最佳答案

您没有意识到信用卡不是简单的内存标签。相反,它们使用相当复杂的协议(protocol)(由符合 ISO 7816-4 的文件结构和使用特定命令指示卡选择应用程序、返回文件数据、执行交易等)进行通信。信用卡协议(protocol)由 EMVCo 指定,可以在 here 中找到.

关于android - 通过 HCE 模拟信用卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21723134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com