本机 DESFire APDU 框架不起作用

Native DESFire APDU Framing not worked

我正在使用 Galaxy A5,Android 5.0.2,SDK 21 和 Android Studio 1.1.0

Android 作为 PCD,Mifare DESFire 作为 PICC。本机 DESFire APDU 框架不起作用,但 ISO 7816-4 起作用。

示例:

MIFARE DESFire SelectApplication,AID 等于 000000h(PICC 级别)
命令:90 5a 00 00 03 00 00 00 00.
预期响应:91 00.
当前响应是 68 00.

文档参考:AN11004.pdf (page 33)

void SelectApp() {
    _isoDep.connect();
    byte[] reqSelectApp = new byte[]{(byte) 0x90, (byte) 0x5A, (byte) 0x00, (byte) 0x00, (byte) 0x03, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00};
    byte[] resSelectApp = _isoDep.transceive(reqSelectApp);
    _responseTextView.append(String.format("reqSelectApp: %s length:%d\n", BytesToHexStr(reqSelectApp), reqSelectApp.length));
    _responseTextView.append(String.format("resSelectApp: %s length:%d\n", BytesToHexStr(resSelectApp), resSelectApp.length));
}

String BytesToHexStr(byte[] items) {
    StringBuilder builder = new StringBuilder();
    for (byte item : items) {
        builder.append(String.format("%02X", item));
    }
    return builder.toString();
}                        

TagInfo 扫描(版本 4.11.59 [β4011059])

信息

NDEF

额外

科技

Android

中不支持 MIFARE Classic

详细协议信息:

虽然 ATQA/SAK 卡看起来好像是 DESFire(这就是为什么我的 NFC TagInfo 应用程序如此检测它,但应该给您一个读取错误或指示 DESFire 主应用程序的可用性),其余参数(尤其是历史字节)清楚地表明这不是 DESFire 卡。

因此,不要指望卡响应 DESFire 命令(本机或包装本机)。这也与卡响应 68 00 时的行为相匹配(这表明不支持 CLA 字节的编码(在您的情况下为 0x90)。