【问题标题】:Native DESFire APDU Framing not worked本机 DESFire APDU 框架不起作用
【发布时间】:2015-12-20 15:06:44
【问题描述】:

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

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

例子:

AID 等于 000000h(PICC 级别)的 MIFARE DESFire SelectApplication
命令: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])

信息

  • 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
  • SAK: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|

【问题讨论】:

  • 您确定这是 DESFire 卡吗?您是否使用其他一些标签阅读器应用程序验证了这一点?
  • 恩智浦 TagInfo 告诉您该卡不是 DESFire 卡,对吗?那么,您为什么希望该卡可以作为 DESFire 访问?
  • 使用 TagInfo(NXP) 的附加读数,如上所示。我尝试使用另一个程序 NFCTagInfo(NFC 研究实验室 Hagenberg-Michael Roland),我得到卡是 DESFire 的信息。
  • 如果我的 android 不支持原生协议可以吗?

标签: android nfc mifare apdu contactless-smartcard


【解决方案1】:

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

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

【讨论】:

  • 是居民卡,可能是数据加密。我一头雾水,我试着用 TagWriter (nxp) 读卡,Sample App-Mifare SDK (nxp) 数据也没有出来。这个工具对我很有用。谢谢你的回答。很高兴认识你:)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-07
  • 2011-08-30
  • 2011-09-16
  • 2020-03-17
相关资源
最近更新 更多