字节自动由Android发送 - NFC到模拟卡

 karen_8009 发布于 2023-02-02 20:08

我通过带有日志控制台的计算机在Card Emulation模式下运行SpringCard.

一旦我使用带有NFC的Android手机(API 4.1.2)进行检查(没有应用程序运行),我的手机会将这些数据发送到模拟卡:

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推送协议)有关吗?

1 个回答
  • 这些命令是什么?

    第一个command(90 60 00 00 00)是MIFARE DESFire GetVersion命令(包装命令集).这似乎是特定于基于恩智浦的NFC NFC堆栈,并不是典型NFC标签检测程序的一部分.

    第二个command(00 A4 04 00 07 D2 76 00 00 85 01 01 00)是一个SELECT APDU,它试图通过AID选择NFC Forum Type 4标签应用程序(版本2.0).这是基于ISO 14443-4(ISO-DEP)的标签/智能卡的典型标签检测程序的一部分.

    为什么在应用程序收到有关标记存在的通知之前发送这些命令,即使没有应用程序处于活动状态?

    典型的NFC设备将自动发现包含NDEF消息的NFC标签的存在.通常这样的NDEF消息然后触发设备上的动作(例如,启动应用程序).由于您的标签似乎是符合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发现.

    2023-02-02 20:11 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有