问题标签 [hce]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
68578 浏览

android - 使用 Android 4.4 模拟 Mifare 卡

我研究过 Mifare 和其他卡仿真我在编程方面非常了解(不是 Android,而是 C/C++)。我有 proxmark,并且我为 proxmark 制作了多个仿真代码,所以我知道卡片是如何通信的。

我目前不明白,android是否启用全卡仿真。我已经研究了大约 3 天,得出的结论是没有一个固定的模式。有人说可能,有人说不可能。我查看了 android API 并且基于主机的卡模拟似乎能够做到这一点,但据我所知,这是 4.4 Kitkat 中的新事物,有没有人有这方面的经验?

为简单起见,目前我正在研究 Mifare Ultralight 的基本最简单的仿真。这张卡是一场安全噩梦,没有加密,只有大约 10 个功能。所以我有兴趣用这张卡开始研究,因为它是最容易复制的。

那么有人对android上的卡模拟有任何了解吗?也许不使用股票操作系统。任何值得知道的事情都会非常感激。

谢谢。

0 投票
3 回答
5198 浏览

android - 设置主机卡仿真

我目前正在尝试将带有 NFC Shield 的 Arduino UNO 连接到运行 Android 4.4 的 Nexus 4。

我有服务设置,它现在只是在记录。问题是,NFC 意图没有绑定到我的应用程序。调试器报告以下错误:

所以这是我的两个问题:

  • 在 Arduino 方面,NFC 屏蔽需要向我的手机发送什么样的“消息”,以便我的手机了解我正在寻找“其他”类别中的某个应用程序?

  • 在 android 方面,捕捉该意图的辅助过滤器标签值是多少?我可以制作一个自定义的,还是我需要遵守某种 ISO 规范才能使其正常工作?

更新

好的,这是我构建 APDU 的 Arduino 草图的相关部分:

这是我的 android 应用程序中的 APDU 服务 XML 文件:

这是我将手机悬停在 NFC 防护罩上时得到的日志:

为什么 Android 没有将 APDU 路由到我的 HCE 服务?

0 投票
2 回答
12972 浏览

android - Arduino:uint8_t 数组到字符串

我有一个基于 android 的 NFC 应用程序,它发送一个哈希作为 apdu 答案。这是我在我的 Android 应用程序中用于发送哈希的代码:

现在,当我在 Arduino 方面收到它时,我得到了以下 RAW 数据:

我如何从中取回哈希?

这就是我现在所拥有的,但它显然不起作用:

这是上面代码的串行输出:

哈!!!!

0 投票
1 回答
1548 浏览

nfc - Nexus 7 2012 上的主机卡仿真

我正在尝试在 KitKat 中测试新的主机卡仿真功能,但我目前拥有的唯一带有 NFC 的 KitKat 设备是 2012 Nexus 7。它确实支持通过 Google Wallet 进行卡仿真,我可以发送和接收数据到它使用的两个万事达卡 AID。

但是,当我尝试实现我自己的HostApduService来处理与我自己的自定义 AID 的通信时,Android 不会将任何 APDU 路由到我的服务。然后我试图打电话CardEmulation.isDefaultServiceForAid来看看我的服务是否应该处理我的自定义 AID。当我CardEmulation在代码中包含该类时,应用程序崩溃。

查看logcat,有一个条目说“此设备不支持卡模拟”。2012 Nexus 7 不支持此功能是否有原因?它具有所有必要的硬件,并且在使用 Google Wallet 时可以模拟卡片。

0 投票
1 回答
950 浏览

android - NFC 读卡器如何工作?

你好我是安卓开发者。我已经构建了 android NFC 读写器和光束。所以使用 writer 我可以在 NFC 标签上写入简单的数据,并且在 reader 的帮助下我可以从标签中读取数据。使用光束,我可以在两个支持 NFC 的设备之间传输数据。所以到目前为止一切正常。现在我想从事 NFC 支付。我在安卓平台上工作。所以我的问题是用于支付的 NFC 阅读器是如何工作的。他们是在 Beam 上工作,还是我们的设备充当 NFC 阅读器的 nfc 标签,它只是从设备读取数据。意味着在设备方面我如何确认该阅读器用于支付或其他用途。我阅读了有关 android 的 HCE 的信息,它对理解概念很有帮助。但我对读者概念和工作场景有点困惑。有没有人可以帮助我理解这个东西,需要帮助。谢谢你。

0 投票
1 回答
1192 浏览

java - 使用 Nexus S 和 ACS ACR122 进行卡仿真

正如我在标题中所写,我正在尝试使用我的 Nexus S、Cyanogenmod 10.1.3 和 ACS Acr122 USB 读卡器来使用卡仿真。我发现这篇文章http://nelenkov.blogspot.it/2012/10/emulating-pki-smart-card-with-cm91.html和带有源代码的 github https://github.com/nelenkov/virtual- pki 卡。我按照说明进行操作,发生了一件奇怪的事情。当智能手机在阅读器上时,连接会反复启动和停止,因此演示不起作用,客户端会引发此异常:

你对如何解决这个问题有任何想法吗?谢谢

0 投票
2 回答
5287 浏览

android - 在 Android 中读取多个 NFC 标签。屏幕解锁时不会读取 IsoDep-tag

我一直在尝试创建一个可以读取两种不同类型的 NFC 标签的应用程序。一个应该是 HCE-IsoDep,在 Nexus 5 上模拟,一个是 Ndef-tag。但是我遇到了一个小问题:

我设法阅读这两种类型的标签,但不是我想要的方式。Ndef 标签完全没有问题。当我尝试读取 HCE 标签时,我遇到了问题。我只能在手机打开时读取标签,我模拟标签被锁定(屏幕打开,但锁定打开)。每当我解锁屏幕时,它就不会再进行交互了,据我所知,它会尝试发送。

如果我尝试在没有 的情况下onNewIntent直接进入 a onTagDiscovered,它在 HCE 设备被锁定和解锁时都可以工作,但是我无法读取 Ndef 标记。在 logcat 中,我收到消息:NfcService LLCP Activation Message当我在解锁时读取 HCE-tag 时。

锁定后,我收到消息:(NativeNfcTag Connect to a tag with a different handle在此之前我收到audio_hw_primary select_devices: out_snd_device(2: speaker) in_snd_device(0: ):)

我的代码如下所示:

主要的:

显现:

filter_nfc.xml

有谁知道我做错了什么?我已经搜索了很多,但没有找到解决方案。再说一遍。我可以毫无问题地阅读 Ndef 标记。当 HCE 设备上的屏幕被锁定时,我只能读取模拟的 IsoDep 标记。

感谢您的帮助
问候

编辑:下面的代码正在工作

非常感谢 NFC 家伙的提示。

0 投票
1 回答
2176 浏览

android - Android:如何更改 NFC 协议优先级?

我有自己的 Android 应用程序 (App A),它可以读取和写入 NFC 标签和 ISO-14443 Type A 标签。它适用于许多 Android 设备。

我想给我的 Nexus5 赋予 ISO-14443 标签的角色,所以我在我的 Nexus5 上实现了我自己的 HCE(主机卡仿真)应用程序(App B)。当我在外部 NFC 阅读器(使用 ISO 14443)上触摸 Nexus5 时,它运行良好。

但是,当我在 Nexus7(运行 App A)上触摸 Nexus5(App B)时,p2p(Android 光束)数据交换序列开始。

即使我关闭了两台设备上的 Android Beam 功能,也没有任何变化。Nexus7 不显示“Touched to Beam”屏幕,但 p2p 检测声音播放。

LogCat 显示 Nexus7 尝试建立 LLCP 连接。

我希望 Nexus7 专注于检测 Nexus5 的 ISO-14443 HCE,而不是 Android 光束。

如何更改 NFC 检测优先级以优先使用 ISO-14443 而不是 Android 光束?

0 投票
1 回答
4415 浏览

nfc - NFC ACR122 TgInitAsTarget,发起者释放目标

我正在尝试让我的 ACR122 (usb) 设备模拟无源 NFC 标签,但无法正常进行通信。我希望有人能看到我在这里做错了什么,并帮助我指出正确的方向。

对另一个问题ACR122 - Card Emulation的响应指向http://code.google.com/p/nfcip-java/source/browse/trunk/nfcip-java/doc/ACR122_PN53x.txt的文档,但是当我们关注从字面上看,它的行为并不像预期的那样。

我们正在使用三星 Galaxy S3 Android 4.3 设备进行测试,并看到以下行为:

TgInitAsTarget 命令似乎正在工作,返回一个 0x25 的模式,我们理解它的意思是“活动模式,DEP,424kbps”。

但随后“GetData”命令立即失败,返回状态代码 0x29“配置为目标的 PN532 已被其发起者释放”。

我们尝试使用不同的模式(而不是 0x00 “All”模式)更改 TgInitAsTarget 命令,尝试以下所有仍为以下 GetData 命令返回 0x29 的命令:

  • 模式 0x01“被动”,导致响应模式 0x04“DEP”
  • 模式 0x02 “DEP”,导致响应模式 0x25(与“All”相同)
  • 模式 0x03“DEP Passive”导致响应模式为 0x04“DEP”

在所有情况下,似乎 Android 都没有保持连接,尽管我对 NFC DEP 协议的熟悉程度不足以知道我在这里做错了什么。我已经阅读了 PN532 芯片参考,这似乎表明我做的一切都是正确的。

我也尝试过 Windows Phone NFC 设备,它在 GetData 上遇到了相同的问题和相同的错误代码。

任何熟悉 NFC 的人的帮助将不胜感激。

戴夫

0 投票
3 回答
4346 浏览

android - KitKat:如何将 APDU 路由到 SIM

我想将从 NFC 阅读器获得的 APDU 路由到 SIM 卡。根据HCE 文档,我认为只需使用相应的路由条目创建一个 OffHostApduService (我做了)就可以了。

遗憾的是,SIM 卡似乎没有获得任何 APDU。当 SIM 通过 SIM 读卡器直接连接到我的工作站时起作用的 SELECT 命令返回 6a82(找不到文件)。

在 LogCat 中,我发现了两条有趣的信息:

每次我发出一个应该路由到 SIM 卡的选择命令时,我都会得到以下条目:

我认为这是路由设置不正确的线索,因为我认为 Android 操作系统不应该知道何时路由到 SIM 卡是活动的,并且选择或其他命令被发送到 SIM 卡。

每次我从阅读器的 NFC 区域中取出手机时,都会收到以下错误:

我试图追踪此错误的原因并找到external/libnfc-nci/src/nfa/ce/nfa_ce_act.chere似乎属于 Broadcom NFC 驱动程序的文件。

我认为错误在于应用程序无法为 APDU 设置正确的路由,因为驱动程序认为 SIM 未激活。在我发送命令的那一刻,SIM 被解锁(PIN 输入),但我怀疑这与它有什么关系,因为在读卡器中使用它之前我不必解锁 SIM。

我使用 Nexus 5 进行测试。有没有人有经验和/或工作示例可以将 APDU 路由到 SIM 而不是 CPU?