HCE - 有没有办法操纵 ATR?

HCE - Is there a way to manipulate the ATR?

我正在 Android 上制作 Host Card Emulation 应用程序,我的 PC/SC reader 一切正常。我能够发送 APDU 命令并获得响应。现在我想知道是否可以使用 Android 的 NFC 库(或不能)操纵 Android 模拟的卡的 ATR?我查看了文档,但没有关于 ATR 的内容,Android 是否会为每个设备自动生成它?

是的,Android 会自动生成 select (ATS) 的答案。没有 Android API 来改变它的内容。防冲突标识符(UID)也是如此。

ATS 与 ATR

请注意,非接触式智能卡 (ISO/IEC 14443-4A) 在激活序列期间不会公开 ATR(重置应答)。相反,他们提供 ATS(响应 selection 程序)。 PC/SC 非接触式智能卡的读卡器通常将该 ATS 的一部分映射到(模拟的)ATR 中以实现兼容性。

Root 设备

即使 Android 不提供 API,您也可以通过修改 NFC 控制器配置文件来修改 ATS 等值。参见 and Host-based Card Emulation with Fixed Card ID