本机 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
.
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])
信息
- IC制造商:恩智浦半导体
- IC类型:未知IC
NDEF
- 无NFC数据集存储:
额外
科技
- 支持的技术:
- ISO/IEC 14443-4(A 型)兼容
- ISO/IEC 14443-3(A 型)兼容
ISO/IEC 14443-2(A 型)兼容
Android 技术资料:
标签说明:
- 标签:技术 [android.nfc.tech.IsoDep、android.nfc.tech.NfcA]
- android.nfc.tech.IsoDep
- 最大收发长度:261字节
- 默认最大收发超时:309 毫秒
- 不支持扩展长度的 APDU
- android.nfc.tech.NfcA
- 最大收发长度:253字节
- 默认最大收发超时:618 毫秒
Android
中不支持 MIFARE Classic
详细协议信息:
- ID:04:62:26:82:8A:29:80
- ATQA: 0x4403
- 萨克:0x20
- ATS:0x1078B3C402654B5450304432654B545000
- 最大。接受的帧大小:256 字节(FSCI:8)
- 支持的接收速率:106、212、424 kbit/s(DR:1、2、4)
- 支持的发送速率:106、212、424 kbit/s(DS:1、2、4)
- 不支持不同的发送和接收速率
- SFGT:4.833 毫秒(SFGI:4)
- FWT:1.237 秒(FWI:12)
- 不支持 NAD
- 支持 CID
- 历史字节:0x654B5450304432654B5450 |eKTP0D2eKTP|
虽然 ATQA/SAK 卡看起来好像是 DESFire(这就是为什么我的 NFC TagInfo 应用程序如此检测它,但应该给您一个读取错误或指示 DESFire 主应用程序的可用性),其余参数(尤其是历史字节)清楚地表明这不是 DESFire 卡。
因此,不要指望卡响应 DESFire 命令(本机或包装本机)。这也与卡响应 68 00
时的行为相匹配(这表明不支持 CLA 字节的编码(在您的情况下为 0x90
)。
我正在使用 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
.
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])
信息
- IC制造商:恩智浦半导体
- IC类型:未知IC
NDEF
- 无NFC数据集存储:
额外
科技
- 支持的技术:
- ISO/IEC 14443-4(A 型)兼容
- ISO/IEC 14443-3(A 型)兼容
ISO/IEC 14443-2(A 型)兼容
Android 技术资料: 标签说明:
- 标签:技术 [android.nfc.tech.IsoDep、android.nfc.tech.NfcA]
- android.nfc.tech.IsoDep
- 最大收发长度:261字节
- 默认最大收发超时:309 毫秒
- 不支持扩展长度的 APDU
- android.nfc.tech.NfcA
- 最大收发长度:253字节
- 默认最大收发超时:618 毫秒
Android
中不支持 MIFARE Classic详细协议信息:
- ID:04:62:26:82:8A:29:80
- ATQA: 0x4403
- 萨克:0x20
- ATS:0x1078B3C402654B5450304432654B545000
- 最大。接受的帧大小:256 字节(FSCI:8)
- 支持的接收速率:106、212、424 kbit/s(DR:1、2、4)
- 支持的发送速率:106、212、424 kbit/s(DS:1、2、4)
- 不支持不同的发送和接收速率
- SFGT:4.833 毫秒(SFGI:4)
- FWT:1.237 秒(FWI:12)
- 不支持 NAD
- 支持 CID
- 历史字节:0x654B5450304432654B5450 |eKTP0D2eKTP|
虽然 ATQA/SAK 卡看起来好像是 DESFire(这就是为什么我的 NFC TagInfo 应用程序如此检测它,但应该给您一个读取错误或指示 DESFire 主应用程序的可用性),其余参数(尤其是历史字节)清楚地表明这不是 DESFire 卡。
因此,不要指望卡响应 DESFire 命令(本机或包装本机)。这也与卡响应 68 00
时的行为相匹配(这表明不支持 CLA 字节的编码(在您的情况下为 0x90
)。