蓝牙通信其实和http通信有点类似,http通过接口交互抓取数据包也很方便,但是到了蓝牙就没那么方便了,本文就是介绍如何实现蓝牙数据包的抓取。

怎么抓包

另一种更为简便的抓包方式请阅读Android 蓝牙抓包(2) 使用xposed框架实现蓝牙BLE抓包

首先设置在手机 开发者选项中,打开启用蓝牙HCI信息收集日志,(找不到开发者选项的手机,请先网上查一下本型号手机打开USB调试的方法,然后在进行操作)。

Android 连接中的蓝牙获取rssi 安卓获取蓝牙信息_软件下载

上边的设置完之后,就可以进行抓包了,打开蓝牙设备和手机上和连接设备的APP,这个过程蓝牙设备和app间发送的数据包都会被记录下来。

#抓取的数据包在哪里

操作完成后就可以,抓包的过程中蓝牙数据包会被写入到btsnoop_hci.log文件中,下边要做的就是找到这个文件了。本人用的是ES文件浏览器搜索该文件,当然其他方法也可以找到。

Android 连接中的蓝牙获取rssi 安卓获取蓝牙信息_抓包_02

#查看分析数据包

##使用Wireshark

软件下载

Android 连接中的蓝牙获取rssi 安卓获取蓝牙信息_抓包_03

##使用Frontline
软件下载

Android 连接中的蓝牙获取rssi 安卓获取蓝牙信息_蓝牙抓包_04

总结

通过android手机进行蓝牙抓包,相对来说还是比价简单的,难点就在于对数据包的分析,需要对蓝牙协议比较熟悉,另外还有一种通过 usb-dongle 蓝牙设备进行抓包,本人没有设备无法进行实验,这种设备淘宝上就有卖的,感兴趣的可以试一下。另一种更为简便的抓包方式请阅读Android 蓝牙抓包(2) 使用xposed框架实现蓝牙BLE抓包

其他资料

对与snoop log想进一步了解的话可以访问下面的链接

http://www.fte.com/webhelp/FTS4BT/Content/Technical_Information/BT_Snoop_File_Format.htm

https://www.rfc-editor.org/rfc/pdfrfc/rfc1761.txt.pdf

分析btsnoop.log

安卓蓝牙如何查看和分析btsnoop.log

在HCI层看蓝牙的连接过程

如何分析HCI的Command Packet和Event Packet包

Android Bluetooth HCI log 详解
https://www.jianshu.com/p/73f7366161d1