史上最全的蓝牙调试工具【集合汇总】
扫描二维码
随时随地手机看文章
该部分主要分享一下常用的蓝牙调试工具,方便后续蓝牙抓包及分析。
-
3.1、hciconfig
-
3.2、hcitool
-
3.3、hcidump
-
3.4、hciattach
-
3.5、btmon
-
3.6、bluetoothd
-
3.7、bluetoothctl
1hciconfig
工具介绍:hciconfig,HCI设备配置工具
命令格式:hciconfig、hciconfig [-a] hciX [command ...]
详细命令如下:
只介绍几种常用命令
-
帮助信息:hciconfig -h
-
查看设备详细信息:hciconfig -a hci0或者hciconfig
-
打开/关闭/重置hci设备:hciconfig hci0 up/down/reset
-
认证打开/关闭:hciconfig hci0 auth/noauth,直接体现在进行蓝牙连接时,是否输入连接PIN密码,用于PIN配对
-
查看/改变蓝牙主从状态:hciconfig hci0 lm、hciconfig hci0 lm slave
-
查看/设置蓝牙名称:hciconfig hci0 name、hciconfig hci0 name Donge
-
开启/关闭广播:hciconfig hci0 leadv/ noleadv
-
查看支持的链路层状态:hciconfig hci0 lestates
hciconfig详细介绍参考:https://blog.51cto.com/dongyulong/442289
2hcitool
工具介绍:hcitool,HCI 设备管理工具
命令格式:hcitool [options][command parameters]
详细命令如下:
只介绍几种常用命令
-
帮助信息:hcitool --help
-
查看HCI设备信息:hcitool dev
-
发现周围蓝牙设备:hcitool -i hci0 inq
-
蓝牙扫描:hcitool -i hci0 inq
-
查看探查到的蓝牙信息:hcitool -i hci0 name 88:A9:B7:E6:F1:8F
-
发送CMD蓝牙命令:hcitool cmd --help
这个命令非常好用,它允许我们不用写代码就可以发送自己想发的任何HCI命令,我们先看下帮助信息
-
创建/删除蓝牙连接:hcitool -i hci0 cc/dc --ptype=dm1,dh3,dh5 01:02:03:04:05:06
-
扫描附近BLE蓝牙设备:hcitool -i hci0 lescan
-
连接/断开BLE设备:hcitool -i hci0 lecc/ledc 12:34:56:C2:9C:C7
参考连接:https://blog.csdn.net/u010764600/article/details/119684001
3
hcidump
工具介绍:hcidump,HCI sniffer,蓝牙包的分析工具,hcidump读取发送和接受蓝牙设备的原始hci数据,并按照人可以识别的命令、事件、数据格式打印到屏幕上,转储信息还可以保存到一个当地文件中,从而保证转储文件在后续进行解析。
命令格式:hcidump [OPTION...] [filter]
详细命令如下:
只介绍几种常用命令
-
帮助信息:hcidump -h
-
仿真设备选定:hcidump -i hci0
-
导出文件:hcidump -i hci0 -w bt_debug.cfa
-
选定格式:hcidump -i hci0 -X
-
显示时间:hcidump -i hci0 -t
-
常用命令:hcidump -i hci0 -Xt -w bt_debug.cfa &,以Asicc、Hex打印,并且添加时间戳,转存到bt_debug.cfa文件中
该命令,可以将HCI传输的数据包记录到文件内,通过Windows的ViewCfa应用可以详细查看每个包的数据。
4hciattach
工具介绍:hciattach,该工具通过UART HCI将串行设备连接到BlueZ协议栈,作为HCI传数接口。
命令格式:hciattach [-n] [-p] [-t timeout] tty type| id speed flow bdaddr
详细命令如下:
只介绍几种常用命令
-
帮助信息:hciattach
-
-n:不脱离控制终端
-
-p:当脱离控制终端时,打印PID信息
-
-t:设置超时时间
-
tty:指定绑定的串口设备,/dev可以省略掉
-
type|id:蓝牙设备的类型或id,例如vendor或者设备指定的标识
-
any:不指定HCI_UART接口
-
ericsson:爱立信基础模块
-
-s:speed串口波特率设置
-
flow:表示硬件流控制;noflow:表示不进行流控制
-
bdaddr:蓝牙设备地址,如果指定了该参数,则地址将用于初始化设备。否则,将使用默认地址。
使用案例:rtk_hciattach -n -s 115200 ttyS0 rtk_h5 &
5btmon
工具介绍:btmon,该工具用于监控蓝牙数据
命令格式:btmon,该工具用于监控蓝牙数据`
详细命令如下:
只介绍几种常用命令
-
帮助信息:btmon -h
-
-w:将数据写入文件xxx.log中,==该文件最好为未存在的文件,否则可能会有问题==
-
-T:显示时间和日期
-
-s:开始监控的socket
-
-r:-w写入的文件,仅支持btmon -r xxx.log读取
-
-i:监控的控制设备,一般为hci0
-
常用命令:btmon -i hci0 -w btmon_debug.log &、btmon -r btmon_debug.log
上面的命令,通过-w写入文件,-r读出文件,只能该工具读出
扩展:btmon -r btmon_debug.log > 1.txt将读出的转为txt文件,方便文本查看:)
6bluetoothd
工具介绍:bluetoothd,调试工具
命令格式:bluetoothd [OPTION?]
详细命令如下:
只介绍几种常用命令
-
帮助信息:bluetoothd -h
-
-d:使能DEBUG调试
-
-C:提供过时的命令
-
-n:运行程序时,前台打印LOG信息
示例:bluetoothd -C -n &
7bluetoothctl
工具介绍:bluetoothctl,调试工具
命令格式:bluetoothctl [command]
详细命令如下:
只介绍几种常用命令
-
帮助信息:bluetoothd help
-
bluetoothctl:进入命令行模式
-
list:查看控制器信息
-
show:查看详细控制器信息
-
paired-devices:显示配对的设备
-
power on:上电控制器
-
advertise on:开启广播
-
scan on/off:开启/关闭扫描
-
version:版本信息
-
exit/quit:退出
至此,上面是Bluetooth调试所需要的一些工具的简单介绍,大家可以进行尝试!
另外,如果有同学想了解Bluetooth协议的,可以在【菜单栏】下载Core_v4.1.pdf和Core_v5.0.pdf