gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:17 25 4
gpt4 key购买 nike

我有一个 SpringCard 通过我的计算机和日志控制台以卡仿真模式运行。

只要我用我的 Android 手机 (API 4.1.2) 检查它并打开 NFC(没有应用程序运行),我的手机将这些数据发送到模拟卡:

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

最佳答案

这些命令是什么?

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

第二个命令(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) 的标签/智能卡的典型标签检测程序的一部分。

为什么在通知应用存在标签之前发送这些命令,即使根本没有应用处于 Activity 状态也是如此?

典型的 NFC 设备会自动发现包含 NDEF 消息的 NFC 标签的存在。通常此类 NDEF 消息随后会触发设备上的操作(例如启动应用程序)。由于您的标签似乎是符合 ISO 14443-4 (ISO-DEP) 的标签/智能卡,NFC Forum Type 4 标签的 NDEF 发现程序已启动。此过程通常包含以下步骤:

  1. 选择 NFC Forum Type 4 标签应用(2.0 版)

    00 A4 04 00 07 D2 76 00 00 85 01 01 00
  2. 如果应用选择成功,则继续读取能力容器文件和NDEF数据文件。

  3. 如果应用程序选择失败,请继续选择 NFC Forum Type 4 标签应用程序(版本 1.0)

    00 A4 04 00 07 D2 76 00 00 85 01 00 00
  4. 如果应用选择成功,则继续读取能力容器文件和NDEF数据文件。

  5. 如果应用程序选择失败,则标签不是 NFC Forum Type 4 标签。

  6. 通常此时会重置与标签的连接,以便在重新激活标签后立即开始应用与标签执行的任何通信。

第 1 步之前的附加命令表示 NXP 的 NFC 堆栈额外尝试查明 Type 4 标签是否为 NXP 产品(NXP 的 MIFARE DESFire 或 DESFIRE EV1)。它与点对点模式协议(protocol)相关。

关于 Broadcom NFC 堆栈的评论:Android 4.4 上似乎仍然存在一个已知问题:即使在将标签传递给应用程序并且该应用程序开始任意 IsoDep 通信后,NFC 堆栈仍然存在发送与应用程序通信交错的 READ BINARY 命令。由于命令序列无效,这经常会导致协议(protocol)错误。 NXP 的 NFC 堆栈不会发生这种情况。

我可以阻止标签的初始处理吗?

是的,但仅限于 Android 4.4。在该平台上,您可以使用 NfcAdapter 的 enableReaderMode在没有 NDEF 发现的情况下使设备进入读取器模式的方法。

关于android - Android 自动发送字节 - NFC 到模拟卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21121149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com