4138| 1
|
【NFC】Android使用NFC模拟IC卡 |
NFC是在RFID的基础上发展而来的,两者本质上并没有太大的区别,但细节方面还是有点不同: 1.NFC增加了点对点通信功能,通信的双方是相互对等的,而RFID是主从关系。 2.工作有效距离:NFC一般不超过10cm,而RFID最远的可以有几十米。 3.工作频段:NFC仅限于13.56MHz,而RFID有低频(125KHz到135KHz),高频(13.56MHz),超高频(860MHz到960MHz)。 联想到之前做过的一个嵌入式项目使用的富士通的SL3S4011双界面存储芯片一般都是通过序列号ID来识别不同的卡片初步猜测该门禁系统的原理是通过读写器读取IC卡ID后根据设定的权限策略来判定是否有权限通过。所以主要的问题有两个,一是两者使用同一个频段,二是NFC模拟IC卡的ID。 对于第一个问题我将手机靠近了IC卡后听到一声“叮咚”证明他们确实是在同一个频段。 第二个问题是在Stack Overflow的这篇文章找到了答案,下面的内容是对这篇文章的翻译及运用 前提条件:已经root了的Android手机且带NFC功能 1.使用“TagInfo”读取IC卡内部ID序列号:(如下图红色框内所示我的卡ID为C4 1A CA 88) 2.使用RE管理器打开/etc/libnfc-brcm-20791b05.conf: 如上图所示,原生的第一个红框内为45,第二个框内的数据是没有的。 我把它改成了上面这样,那这些数据是什么意思呢? 先看第二个红框内,0x33表示后面的数据我们是用来作为UID的,紧跟着的04代表后面有4个字节的ID,C4 1A CA 88当然就是上一步读到的IC卡ID号了;那为什么要把45改成4B呢?因为45代表的是总的数据长度,我们在后面一共添加了6个字节所以+6变成4B。 3.保存修改并重启。 大功告成啦,这个时候你去用手机靠近读卡器就能随意的出入门禁了。 补充:要是有很多IC卡需要模拟每次这样改岂不是很麻烦,后来我发现了这个APP可以方便地切换(http://nfcemulator.bmob.cn/) 作者:ValarHao |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed