You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Android HCE模拟Mifare EV2卡非APDU指令适配问题咨询

基于APDU协议可实现的DESfire EV2原生指令覆盖度

DESfire原生指令本身不符合ISO 7816-4 APDU结构,安卓系统自带的HCE服务默认仅识别符合ISO 7816-4规范的帧,因此原生指令无法直接触发processApduCommand()回调。
目前行业通用的ISO 7816-4封装方案(Wrapping)可以覆盖90%以上的DESfire EV2原生指令功能:

  • 基础操作类:选卡、应用创建/删除、文件创建/删除、明文读写、权限配置等常规业务指令,都可以通过自定义APDU结构完整映射,无功能损失
  • 安全操作类:三重DES/AES认证、会话密钥派生、MAC校验、加密传输等安全相关指令,同样可以通过封装实现全部功能,仅需HCE侧按DESfire规范处理APDU的payload字段即可
  • 不可覆盖的功能仅占不到10%,主要是和底层射频传输绑定的特殊指令,比如原生卡唤醒、低功耗模式触发、非标准帧长的超时控制等,这类功能大多仅用于工业特殊场景,民用场景几乎不会涉及。
后续开发推进方案
  • 首先调整PN532侧的指令逻辑,将所有DESfire原生指令封装为符合ISO 7816-4规范的APDU帧。通用封装规则为:CLA固定为0x90,INS为原生指令操作码,P1、P2填0x00,Lc为原生指令payload长度,数据段填充原生指令完整payload,Le填0x00表示期望返回最大长度。封装完成后安卓HCE的processApduCommand()即可正常接收指令。
  • 其次在HCE服务中实现解封装逻辑,收到APDU后提取payload字段,按照DESfire EV2原生指令规范处理,处理完成后将返回结果封装为APDU响应帧回传给PN532,PN532侧做对应解封装即可得到原生指令响应。
  • 调试阶段优先跑通选卡、明文读文件的最简链路,再逐步验证认证、加密读写等复杂功能,最后测试业务所需的特定功能即可。
  • 如果你当前场景强制要求使用原生DESfire指令、不允许做封装,只能放弃系统自带HCE服务,改用支持底层射频帧捕获的自定义NFC栈方案,这类方案需要root设备或定制ROM,开发成本会大幅提升。

内容的提问来源于stack exchange,提问作者melihozcann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:48:01