安卓 NFC 卡模拟

StackOverFlow:Android HCE: are there rules for AID?

主机卡模拟Demo

第一步

新建类CardEmulatorService 继承 HostApduService,实现方法
public byte[] processCommandApdu(byte[] commandApdu, Bundle extras)

@Override
public byte[] processCommandApdu(byte[] commandApdu, Bundle extras) {byte[] ret = null;Log.d("cyb", "processCommandApdu commandApdu=" + Hex.toHexString(commandApdu));Toast.makeText(getApplicationContext(), Hex.toHexString(commandApdu), Toast.LENGTH_SHORT).show();String MF_NAME = "1PAY.SYS.DDF01";byte[] selectMF = Hex.hexToBytes("00A404000E" + Hex.toHexString(PbocCmd.MF_Name) + "00");Log.d("cyb", "processCommandApdu selectMF=" + Hex.toHexString(selectMF));if(Arrays.equals(commandApdu, selectMF)){ // 选择MFret = Hex.hexToBytes("6F15840E315041592E5359532E4444463031A5038801019000");}else if(Arrays.equals(commandApdu, Hex.hexToBytes("00A40000023F0100"))){ // 选择应用ret = Hex.hexToBytes("6F088400A5049F0801029000");}else if(Arrays.equals(commandApdu, Hex.hexToBytes("00A4000002000400"))){ // 选择文件ret = Hex.hexToBytes("9000");}else if(Arrays.equals(commandApdu, Hex.hexToBytes("00B0000000"))){ // 读文件ret = Hex.hexToBytes("4F545142475535394352555245304D369000");}Log.d("cyb", "processCommandApdu ret=" + Hex.toHexString(ret));return ret;
}

第二步

在res/xml 文件夹新建aid_list.xml

<?xml version="1.0" encoding="utf-8"?>
<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"android:description="@string/service_name"android:requireDeviceUnlock="false"><aid-group android:description="@string/card_title" android:category="other"><!--应用名称 1PAY.SYS.DDF01 对应的二进制--><aid-filter android:name="315041592E5359532E4444463031"/></aid-group></host-apdu-service>

第三步

在AndroidManifest.xml中配置Service

<uses-permission android:name="android.permission.NFC" /><uses-featureandroid:name="android.hardware.nfc"android:required="true" />
<uses-featureandroid:name="android.hardware.nfc.hce"android:required="true" /><!-- Service for handling communication with NFC terminal. --><serviceandroid:name=".CardEmulatorService"android:exported="true"android:permission="android.permission.BIND_NFC_SERVICE"><!-- Intent filter indicating that we support card emulation. --><intent-filter><action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE" /><category android:name="android.intent.category.DEFAULT" /></intent-filter><!-- Required XML configuration file, listing the AIDs that we are emulating cardsfor. This defines what protocols our card emulation service supports. --><meta-dataandroid:name="android.nfc.cardemulation.host_apdu_service"android:resource="@xml/aid_list" /></service>

读卡器代码

println("++++++++++++++ start ++++++++++++++++");
println("开始读文件...");
isoDep.connect();
Log.d("cyb", "Hex.toHexString(PbocCmd.MF_Name)=" + Hex.toHexString(PbocCmd.MF_Name));
//                byte[] select_mf = PbocCmd.selectByName(isoDep, PbocCmd.MF_Name);
byte[] select_mf = PbocCmd.selectByName(isoDep, PbocCmd.MF_Name);
println("选择MF返回值=" + Hex.toHexString(select_mf));
if (IsoDepUtils.isNoError(select_mf)) {// 选择应用byte[] appId = {0x3F, 0x01};byte[] response = PbocCmd.selectById(isoDep, appId);if (IsoDepUtils.isNoError(response)) {println("选择文件=" + Hex.toHexString(appId));println("选择文件返回值=" + Hex.toHexString(response));println("卡文件名称=" + new SelectResult(response).getName());byte[] fileId = {0x00, 0x04};// 选择文件byte[] response_f = PbocCmd.selectById(isoDep, fileId);if (IsoDepUtils.isNoError(response_f)) {println("选择文件=" + Hex.toHexString(fileId));println("选择文件返回值=" + Hex.toHexString(response_f));println("卡文件名称=" + new SelectResult(response_f).getName());byte[] read = PbocCmd.readBinary(isoDep);if(IsoDepUtils.isNoError(read)){println(Hex.toHexString(read));println(new String(read, "utf-8"));}}}
}
println("++++++++++++++ end ++++++++++++++++\n\n\n\n\n");
isoDep.close();

安卓 NFC 主机卡模拟相关推荐

  1. 微信小程序 NFC HCE卡模拟

    PS:文章已迁移至 www.youbiguo.com 需要实现带模拟一张智能卡(门禁卡或者其他业务卡),使用带NFC设备根据指定协议进行读取模拟卡数据(效果图如下): 1. 模拟卡设计 这里使用设备自 ...

  2. nfc 简单卡模拟demo

    NFC卡模拟是一个功能强大且的NFC卡模拟器,可模拟各类门禁卡.电梯卡.部分公司(工厂)工卡或饭卡.部分学校饭卡.部分图书馆借书卡等各类IC卡,用手机替代卡片去刷门禁.刷电梯.刷考勤和刷饭堂等等,支持 ...

  3. 微信小程序接入NFC,使用HCE模拟主机卡完成NFC刷卡发送消息

    NFC相信大家都很熟悉,现实中经常使用的门禁卡,公交卡,地铁卡,饭卡等都是采用NFC功能,那么你知道吗,NFC也可以用微信小程序来实现.使用微信小程序可以读取/写入让手机成为一个刷卡器,也可以使用微信 ...

  4. HCE知识盘点:大事记、NFC卡模拟、与SE兼容

    [导读] NFC是"近场通讯"的简称,采用短距离RF(射频)通讯技术. 关键词: NFC智能手机 NFC技术发展 NFC是"近场通讯"的简称,采用短距离RF(射 ...

  5. 在安卓系统上使用NFC技术的模拟M1卡的探索之路

    先说下背景,公司的厂内物流系统,通过自助制卡,获取一张IC卡,该卡关联运输任务信息.然后司机携带这张IC卡去园区内进行装卸货.装卸货系统通过IC卡读取器,读取卡号,然后调用物流系统的接口,获取运输任务 ...

  6. id nfc模拟_NFC卡模拟app-NFC卡模拟安卓版下载v6.0.0 - 7230手游网

    NFC卡模拟app是款功能强大的模拟卡片软件,软件非常的实用,模拟各种卡,操作起来非常的方便,只需一个手机就能使用多种卡,喜欢的话快来下载吧. 软件介绍 NFC卡模拟是一款功能十分强大的免费模拟卡片的 ...

  7. android的nfc卡模拟开发

    这是andorid官方文档对于卡模拟方式的描述: https://developer.android.google.cn/guide/topics/connectivity/nfc/hce 有两种方式 ...

  8. html调用手机NFC,NFC门禁模拟-教你用NFC手机模拟门禁卡

    注意,本文针对未加密门禁模拟,加密门禁请看这里: 使用本程序可以让手机的NFC模拟各种门禁卡片,从而可以用手机代替门禁卡,文末提供演示.我默认用户朋友都是IT高手,所以小白请学习相关知识后再入坑. 使 ...

  9. 加密卡华为怎么模拟_华为手机怎么复制加密NFC门卡?

    原标题:华为手机怎么复制加密NFC门卡? "极客谈科技",全新视角.全新思路,伴您遨游神奇的科技世界. 虽然NFC已经成为了中高端手机的标配之一,但是很多人对于什么是NFC,NFC ...

最新文章

  1. vue 动态生成路由菜单(从后端请求到菜单数据,生成左侧菜单栏)
  2. 塔利亚菲科 ajax,[欧冠小组赛第4轮]阿贾克斯 3-1 中日德兰
  3. 在OperaMasks中使用ELite和JRuby动态语言的秘笈
  4. python密码学编程pdf-Python密码学编程PDF电子书免费下载
  5. 1132 Cut Integer (20 分)【难度: 简单 / 知识点: 模拟】
  6. ios 系统状态栏样式修改_iOS设置状态栏样式,statusBarStyle
  7. centos配置ntp时间同步_Linux CentOS配置ntpd时间同步
  8. mysql AUTO_INC 是否锁_AUTO-INC锁的一些思考
  9. 那些你不知道的 LVS 秘密!
  10. jdbc之连接Oracle的基本步骤
  11. lnmp环境配置laravel项目白屏问题
  12. OpenShift 4 - 查看关键证书到期日期
  13. TensorFlow tf.keras.layers.RNN
  14. mysql dsec_MySQL基础(一)查询
  15. .与localhost与 .\sqlexpress的区别
  16. UVM中的factory机制
  17. Roshan.exe 运行直接崩溃
  18. vue3 - 23.h函数 / 函数式编程
  19. 扇贝python编程课 百度云,扇贝编程python课程分享
  20. webstorm 2018 激活破解方法亲测可用

热门文章

  1. 必读!选对机械行业ERP系统能使企业效率成倍提升
  2. PAT乙级——1027(有格式错误,暂未解决,求指点)
  3. Corel Painter 11的余温还没有过呢,Corel Painter 12就发布了,Corel 公司真是太有速度了。小猪我也是刚刚听朋友说Corel Painter 12发布一个月了。Core
  4. LoRa无线抄表物联网解决方案
  5. 百度广告联盟api probuf协议对接
  6. ROBOTSTUDIO中基础术语、在线功能
  7. chrome标签页静音_如何在Chrome和Firefox中自动使新标签页静音
  8. 学术会议系统 php,计算机设计
  9. 社区分享|货拉拉通过JumpServer纳管大规模云上资产
  10. 深度学习(Deep Ritz,Galerkin,PINN)求解偏微分方程(PDE)解读