Linux下操控小米手环1代

该方法相比手机更繁琐,有点多此一举的感觉,但是个人感觉用linux来控制还是比手机更有意思,所以就想记录一下。

1.将手环通过小米运动绑定到手机上,然后开启来电提醒(手环会震动)。

2.手机启用开发者模式并打开蓝牙

3.用另一个手机打这个手机,手环震动后挂断,然后到文件目录找到蓝牙日志文件并拷到电脑上:

4.使用wireshark打开日志:

5.因为HCI的相关命令是用来控制连接的,而ATT才是用来执行操作的,所以我们只看ATT数据包,对协议进行排序,然后ATT的数据包就会按时间顺序进行排序:

找到Sent Write Command.....这一类的数据包,这些数据包就是往设ige备发送命令的数据包,点开一个,可以看到如图中红框标出的点,handle 表示句柄,是,最下面的0x00代表的是没有震动的值,因为我们是要“调戏”,自然希望它能震动,所以我们换个数据包,找到下面这个:

可以看到 强烈震动的值是0x02,对应的是0200(因为02是在高位,所以低危自动补0,对应值是0200)

6.打开蓝牙接口

    hciconfig hci0 up

注:这里有的人会出现打不开的情况,需要将:

这里的勾去掉才能找到蓝牙适配器。

7.扫描设备,因为是低功耗设备所以使用命令:

 hcitool  lescan

8.扫描设备,并连接:

有时候会连接不上,重试两下就可以了

注:

有的人这里会遇到Connection Refused (111)的错误:

这个的话需要执行如下修改:

 

首先:vim/etc/bluetooth/main.conf

在最下面添加 :

EnableLE = true      

AttributeServer = true   

DisablePlugins=pnat

然后

service bluetooth restart

hciconfig hci1down

hciconfig hci1 up

然后再次连接:

 

9.使用命令char-write-cmd来发送命令:

 

char-write-cmd 句柄  值

这里填上前面得到的数据,完整命令为:

char-write-cmd 0x0051 0200

回车后,手环就会震动了:

 

如果发现有错误欢迎批评指正。有疑问欢迎留言。大笑

posted @ 2019-04-04 13:08  rebootORZ  阅读(165)  评论(1)    收藏  举报