字节自动由Android发送 – NFC到模拟卡
作者:互联网
我通过带有日志控制台的计算机在Card Emulation模式下运行SpringCard.
一旦我使用带有NFC的Android手机(API 4.1.2)进行检查(没有app runnig),
我的手机将这些数据发送到模拟卡:
1st set -> 90:60:00:00:00
2nd set -> 00:A4:04:00:07:D2:76:00:00:85:1:1:0
这些命令究竟是什么?它们与我的Android有关,它试图发现什么
科技是否使用仿真卡?
编辑
其实我已经明白了第二套是什么(APDU SELECT).
但似乎第一组是来自Android的专有APDU命令.
这可能与NPP(NDEF推送协议)有关吗?
解决方法:
这些命令是什么?
第一个命令(90 60 00 00 00)是MIFARE DESFire GetVersion命令(包装命令集).这似乎是特定于基于恩智浦的NFC NFC堆栈,并不是典型NFC标签检测程序的一部分.
第二个命令(00 A4 04 00 07 D2 76 00 00 85 01 01 00)是一个SELECT APDU,它试图通过其AID选择NFC论坛类型4标签应用程序(版本2.0).这是基于ISO 14443-4(ISO-DEP)的标签/智能卡的典型标签检测程序的一部分.
为什么在应用程序收到有关标记存在的通知之前发送这些命令,即使没有应用程序处于活动状态?
典型的NFC设备将自动发现包含NDEF消息的NFC标签的存在.通常这样的NDEF消息然后触发设备上的动作(例如,启动app).由于您的标签似乎是符合ISO 14443-4(ISO-DEP)标签/智能卡,因此启动了NFC论坛类型4标签的NDEF发现程序.此过程通常包含以下步骤:
>选择NFC论坛类型4标签应用程序(版本2.0)
00 A4 04 00 07 D2 76 00 00 85 01 01 00
>如果应用程序选择成功,请继续阅读功能容器文件和NDEF数据文件.
>如果应用程序选择失败,请继续选择NFC论坛类型4标签应用程序(版本1.0)
00 A4 04 00 07 D2 76 00 00 85 01 00 00
>如果应用程序选择成功,请继续阅读功能容器文件和NDEF数据文件.
>如果应用程序选择失败,则标记不是NFC论坛类型4标记.
>此时通常会重置与标记的连接,以便在重新激活标记后立即启动应用程序对标记执行的任何通信.
步骤1之前的附加命令表明NXP的NFC堆栈还试图找出Type 4标签是否是NXP产品(NXP的MIFARE DESFire或DESFIRE EV1).它与点对点模式协议无关.
备注Broadcom NFC堆栈:Android 4.4上似乎仍然存在一个已知问题:即使将标签传递给应用程序并且应用程序启动了IsoDep通信,NFC堆栈也会随意发送与应用程序通信交错的READ BINARY命令.由于无效的命令序列,这经常导致协议错误.恩智浦的NFC堆栈不会发生这种情况.
我可以阻止标签的初始处理吗?
是的,但仅限Android 4.4.在该平台上,您可以使用NfcAdapter的enableReaderMode方法将设备置于读取器模式而无需NDEF发现.
标签:apdu,android,nfc,contactless-smartcard,hce 来源: https://codeday.me/bug/20190825/1717434.html