美文网首页手机APPNexus 6p
手机有NFC?看完这篇扔掉门禁卡

手机有NFC?看完这篇扔掉门禁卡

作者: Leoshi | 来源:发表于2017-04-05 10:17 被阅读5123次

    现在很多手机都带了NFC功能了,但使用场景有限。比如:

    • 只有少数城市的公共交通系统支持少数型号的手机刷卡,大部分时候还是要自己办一张公交卡的。
    • 支付宝有读卡进行充值的功能,也只有对应城市的公交系统接入才可以。
    • Apple Pay 和银联的云闪付,但在扫码支付大行其道的当下,使用限制很多。

    这篇文章就带领大家用NFC手机代替门禁卡。需要满足的条件如下:

    • Android 操作系统
    • 已 root
    • 支持 NFC
    • 门禁系统只校验卡ID

    写到这里就有一点标题党的感觉了(括弧笑),不过这几个条件还算比较容易满足的,而且操作起来也不难。笔者现在宿舍的门禁已经用手机刷了,不会再有忘记拿卡的尴尬,只需要手机亮屏就可以,甚至不需要解锁屏幕。

    好,现在开始一步一步搞定它吧!

    原理

    每一张卡都有自己独一无二的ID号,就像身份证号一样不会重复,我们所要做的就是获取这个ID号并将其写入手机NFC配置文件里相应的地方,达到“复制”门禁卡的目的。若门禁系统仅仅检查卡ID,那手机就可完全代替门禁卡了,而大约80%的门禁系统都是这么干的,所以成功率很高。若是检查其他字段,尤其是加密信息就无能为力了,这也是这里只代替门禁卡而没有完全代替饭卡的原因。

    当然,广泛使用的mifare方案已经被破解了,可以完全复制,但是也没太容易。

    获取 root 权限

    已有 root 权限的读者可以跳过这一步了。没有获取 root 权限的读者可以使用 KingRoot来获取 root 权限,官网有详细介绍,支持绝大多数 Android 设备,如果你的手机不在支持列表里,可以到机锋论坛等论坛寻找方法,很多大神给出了自己的解决方案。

    读取卡ID

    需要一个NFC Tools 的工具,大家不要百度了,找一个靠谱的下载链接真麻烦,可以到这里下载。
    安装完成后,在NFC开启的情况下,在应用主页读取你的门禁卡会显示相关信息,我们需要的是Serial Number字段,记下这一串十六进制数字,如下图。

    获取序列号

    更改配置文件

    有了 root 权限和序列号之后就可以更改配置文件了,这里需要一个可以浏览并修改根目录的文件浏览器,推荐 RE 文件浏览器 / ES 文件浏览器 / Solid Explorer 等,大家可以自行搜索下载。

    接下来需要找到配置文件所在的目录,一般来说应该在 /system/etc 下,大多数手机使用的是恩智浦的解决方案,一般配置文件名为libnfc-nxp.conf,如果找不到,大家可以搜索自己手机型号的配置文件位置。

    使用文本编辑器打开配置文件,需要修改的地方有两处:

    • 根据卡类型修改工作频率
      找到以下字段并根据卡类型修改,一般是13和19,对应的0x01和0x02,可先保持默认,有兼容的可能性,不成功可再修改。


      修改频率
    • 修改ID
      找到以下字段,应该在文件的最后。注意 33, 04 开头的一行,默认的一般为 33, 04, 01, 02, 03, 04,,其中33表示ID,04表示长度,后4位为ID值,修改为卡的ID值,注意格式,保存即可。
    修改ID

    到此就完毕啦,现在可以拿手机去门禁刷卡试试了,若门禁系统给力的话以后就可以直接刷手机出入了。笔者手机型号为 Nexus 6p,在刷手机时手机必须亮屏,未在其他型号测试,欢迎反馈。

    这篇文章也同步发布在我的博客,欢迎关注。

    相关文章

      网友评论

      • 23a934f43ac0:可以模拟多个ID么
        aJIEw: @a574339600d2 写了一半发现,重新改完id后必须重启才能让新的id生效,然后就没写了。目前没找到好的解决方法。
        a574339600d2:@夏透明 现在怎么样了
        aJIEw:可以写个小app手动切换id,我正在干这件事。

      本文标题:手机有NFC?看完这篇扔掉门禁卡

      本文链接:https://www.haomeiwen.com/subject/lkrtattx.html