NFC开发 —————实现NFC手机做门禁卡的方法(二)

NFC开发 —————实现NFC手机做门禁卡的方法(二)_第1张图片
Android NFC开发(一)
NFC开发 —————ID卡、IC卡(M1卡、CPU卡)的区别(三)
NFC开发 —————实用工具以及开发文档(四)

一.条件

  1. 基础条件:门禁刷卡器能识别NFC手机(卡模拟状态下的CPU卡)。
    验证办法:打开手机的NFC,在门禁刷卡器上刷一下,门禁刷卡器有反应就行(响一声),那么就满足了基础条件。如果门禁刷卡器没反应,那就不需要考虑了,除非升级门禁刷卡器支持CPU卡(NFC标准)。

  2. 必要条件:门禁卡为ID卡或IC卡,且门禁系统采用UID号验证,否则如下办法无用。
    那怎么知道门禁系统是采用UID号验证的?自己测试推断,或咨询门禁系统技术支持、管理人员,或查看门禁系统相关信息。
    测试推断:
    ID卡肯定是采用UID号验证。IC卡可能采用UID号验证。
    ID卡与IC卡区分,ID卡比IC卡的厚度厚很多。
    ID卡一定不能被NFC手机(软件)读出。IC卡一般可以被NFC手机(软件)读出;能否被读出,除了兼容性外,还取决NFC手机芯片及软件的支持能力。

二.实现方法

  1. 手机不需要root


    (1)最简单办法:去营业厅换一张具有NFC功能的SIM/UIM卡插入手机的卡槽1(单卡无区分,双卡必须卡槽1,且设置为主卡),换好后交给门禁管理员,由他利用发卡器读出UID号码,直接添加门禁系统中并相应授权就可以了。
    (2)若发卡器不支持CPU卡,无法读出。同理:去营业厅换一张具有NFC功能的SIM/UIM卡插入手机的卡槽1(单卡无区分,双卡必须卡槽1,且设置为主卡),想办法读出NFC手机的UID号码,然后找管理员在门禁系统中手动添加此UID号,并相应授权就可以了。
    读出NFC手机的UID号码办法可这样:除本机(手机A)外,另准备一个有NFC功能的手机(手机B),并在手机B上安装nxp taginfo软件。开启手机A和手机B的NFC,打开手机B上的nxp taginfo软件,将手机A的NFC感应区靠近手机B的NFC感应区,会“嘟”的响一声,拿开手机A,手机B上会出现下图画面。这样NFC手机(A机)的UID号码就取得了。

NFC开发 —————实现NFC手机做门禁卡的方法(二)_第2张图片


(3) 若门禁卡刷卡器支持自主注册。同理:去营业厅换一张具有NFC功能的SIM/UIM卡插入手机的卡槽1(单卡无区分,双卡必须卡槽1,且设置为主卡),换好后直接在刷卡器键盘上操作类似指令:#*123456#5刷手机#**即可搞定。

  1. 手机需要root

前述办法都无法实现,那么我们可以采用把手机门禁UID号改写为已有门禁卡UID号来实现。这个方法即便有效也是针对恩智浦或博通NFC芯片的,
其他芯片是找不到这个文件的,具体办法如下:

(1)安装NFC TagInfo软件到手机,先打开NFC功能,再打开软件。点击tech,然后将门禁卡放到手机后面NFC感应处,然后出现下面界面,记录下ID后面的字符。

NFC开发 —————实现NFC手机做门禁卡的方法(二)_第3张图片

(2)手机早已经root且安装好了‘RE文件管理器’, 在RE文件管理器中打开 etc 文件夹,找到类似“libnfc-nxp.conf”文件,在文件中找到默认的NFC ID(01,02,03,04)。

NFC开发 —————实现NFC手机做门禁卡的方法(二)_第4张图片

(3)修改这个ID为刚才记录的门禁卡ID”13,67,A9,0A”,然后保存并重启手机。这样就设置好了,拿到门禁那里试试,大多数都可以用的。
备注(以上所有情况适用):
有些手机是全终端手机自带SE,为什么还要换成NFC-SIM/UIM卡呢?是因为全终端手机的SE的UID号是随机的,随机UID的手机不能作为门禁卡使用,道理很简单:在系统中注册了一个ID识别门禁卡,再刷手机时ID值就变了,与提前在系统中注册的ID对不上,因此打不开门禁。如果全终端手机的SE的UID号一直不变,那么可直接用此UID作为门禁UID号。
另外以上办法不适用小米5。小米5是奇葩,是唯一不支持运营商NFC-SWP模式的,即不支持NFC-SIM/UIM卡应用,故此以上所有办法是不行的。

你可能感兴趣的:(Android,NFC,android,nfc)