大家对于蓝牙应该都不陌生,现在的手机基本上都有蓝牙功能,而且蓝牙耳机、蓝牙手环等智能设备在市场上也很常见了。
这么多的蓝牙设备都是使用了蓝牙协议的,而蓝牙广播数据包又是蓝牙协议中最经常用到的。
不管是基于低功耗蓝牙的 Beacon 设备,还是从机模式下的蓝牙设备(比如手环、耳机)等待被扫描时候,都需要在 RF 通道上发出广播数据包。
所以想要对于蓝牙协议和蓝牙开发有进一步的理解, 蓝牙广播抓包就是必须要掌握的一个技能。
这里分享下我最近使用到的抓取蓝牙广播包的一些方法,希望对你有所帮助。
1、手机蓝牙调试助手查看蓝牙广播包
在手机的应用商店搜 “蓝牙调试助手” 能搜出来很多相关的APP, 这里介绍两个目前个人使用起来还不错的APP(主要是用起来没有广告)。
这两个APP, 基本功能都差不多,只不过在交互上面有些区别。
这里通过蓝牙调试助手可以扫描到米家的温湿度传感器,连接上之后可以获取到一些设备的信息,比如版本、电量。
对于一些不能连接的广播设备,比如 iBeacon 设备, 使用调试助手也是能查看到广播报文的。
但是对于一些使用非标准蓝牙广播协议,比如 2.4G 遥控器的设备,因为只是广播一段时间,而且每次广播的协议包数据会变化,手机扫描广播信道的时候可以抓不到这些数据包。
这时候就需要借助 USB Dongle 外部设备来抓包了(要是不在意价格直接上 Ellisys 或者 Frontline 也是可以的),下面简单介绍下怎么使用 CC2540 模块 和 nRF52840 模块 来抓取附近广播包以及实际使用中的一些小技巧。
2、CC2540 USB Dongle
硬件购买的话在淘宝上搜一下 CC2540 USB Dongle , 然后挑个顺眼的买就好了,价格一般在30块钱左右。<