智能家居之门禁

最近买了一把samsung p728的智能锁,所以想着怎么把这把锁给玩转了

这把锁提供多种开锁方式,密码,磁卡,指纹,蓝牙,还有基本不会用的物理钥匙。

现在nfc基本是手机的标配了,还有各种pay,小米更接地气的支持了交通卡,所以第一个切入点必然是磁卡拉

Step One - 收集信息

p728基本可以使用一般的磁卡,nfc卡贴作为进门卡贴,由此可以猜想,这个安全级别也就是读取了个卡的ID(真心为家里的放招财猫里几百块钱硬币担忧)
找了个比较nb的android app - TagInfo来读取一下磁卡的信息,这个app功能还是很全的,有兴趣的人可以深入把玩一下。

卡的ID为:44:CB:9F:F4 (当然是随便找了张卡读的,怎么可能告诉你们真实的ID,关系到我们家几百大洋呢)

Step Two - 写入手机

出于安全考虑,android手机NFC的ID是一个4个字节长度的随机id,每次连接都会变化,并且都以“80”开头,但是这个其实是可以固定的

  • 到手机的 /etc/ 目录找一个文件名为libnfc-brcm-20791b05.conf,默认情况下,文件中NFA_DM_START_UP_CFG 的配置项是这样的值:

    {49:CB:01:09:A5:01:01:CA:1E:00:00:00:00:06:00:00:00:00:0F:00:00:00:00:20:A1:07:00:14:01:00:00:10:98:3A:00:00:00:00:02:B5:03:01:02:FF:80:01:01:C9:04:03:0F:AB:00:5B:01:00:B2:04:A8:0B:00:00:CF:02:02:08:B1:06:00:20:00:00:00:12:33:04:A0:21:F5:91}

  • 通过修改这个值就可以固定ID。手机上直接装一个Root Explorer,打开文件,找到相应的配置项,最后写入33作为标志位,接着接上要指定的ID长度,在当前的情况下就是04,最后在后面接上要制定的ID:44:CB:9F:F4,接着改变最首的数字,加上我们总共增加的字符串长度,这里我们需要加上6,如果不会16进制加减,使用mac的计算器,切换成高级,点击16进制,直接加就行了, 所以最后配置项变成:

    {4F:CB:01:09:A5:01:01:CA:1E:00:00:00:00:06:00:00:00:00:0F:00:00:00:00:20:A1:07:00:14:01:00:00:10:98:3A:00:00:00:00:02:B5:03:01:02:FF:80:01:01:C9:04:03:0F:AB:00:5B:01:00:B2:04:A8:0B:00:00:CF:02:02:08:B1:06:00:20:00:00:00:12:33:04:A0:21:F5:91:33:04:44:CB:9F:F4}

  • 保存并退出,Root Explorer自动会生成back up文件,简单方便

Step Three - 测试

点亮屏幕把手机靠近磁卡感应区,叮的一声,成功!!!