蓝牙调试工具集合汇总

简介: 蓝牙调试工具集合汇总

BLE

该部分主要分享一下常用的蓝牙调试工具,方便后续蓝牙抓包及分析。



1 hciconfig

工具介绍: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

2 hcitool

工具介绍:hcitool,HCI 设备管理工具

命令格式:hcitool [options] <command> [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应用可以详细查看每个包的数据。

4 hciattach

工具介绍: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 &

5 btmon

工具介绍: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文件,方便文本查看:)

6 bluetoothd

工具介绍:bluetoothd,调试工具

命令格式:bluetoothd [OPTION?]

详细命令如下:

只介绍几种常用命令

  • 帮助信息:bluetoothd -h

  • -d:使能DEBUG调试
  • -C:提供过时的命令
  • -n:运行程序时,前台打印LOG信息

示例:bluetoothd -C -n &

7 bluetoothctl

工具介绍:bluetoothctl,调试工具

命令格式:bluetoothctl [command]

详细命令如下:

只介绍几种常用命令

  • 帮助信息:bluetoothd help

  • bluetoothctl:进入命令行模式
  • list:查看控制器信息
  • show:查看详细控制器信息
  • paired-devices:显示配对的设备
  • power on:上电控制器
  • advertise on:开启广播
  • scan on/off:开启/关闭扫描
  • version:版本信息
  • exit/quit:退出

至此,上面是Bluetooth调试所需要的一些工具的简单介绍,大家可以进行尝试!

目录
相关文章
|
Linux
Linux(5)WIFI/BT调试笔记
Linux(5)WIFI/BT调试笔记
2551 0
|
编解码 网络协议 安全
一文看懂音视频流媒体协议及信令技术
音视频通信完整流程有如下几个环节:采集、编码、前后处理、传输、解码、缓冲、渲染等。 每一个细分环节,还有更细分的技术模块。比如,前后处理环节有美颜、滤镜、回声消除、噪声抑制等,采集有麦克风阵列等,编解码有H.263,H.264、H.265等,传输就涉及到了本文重点介绍的RTSP/RTMP/RTP/RTCP等流媒体协议以及相关的信令技术。
一文看懂音视频流媒体协议及信令技术
|
XML 开发工具 Android开发
Repo工作原理及常用命令总结——2023.07(下)
Repo工作原理及常用命令总结——2023.07(下)
3947 0
|
人工智能 自然语言处理 搜索推荐
《深度剖析:开源与闭源模型,AI舞台上的不同角色》
在人工智能领域,开源与闭源模型各有优劣。闭源模型由大公司精心打造,初始性能优越,但优化受限;开源模型则依靠社区力量,灵活性高、迭代迅速,长期潜力大。在学术研究中,开源模型透明性高,利于创新;商业应用上,闭源模型稳定性强,适合高要求场景。资源受限环境中,开源模型更易裁剪优化。企业和开发者应根据需求选择合适模型,两者共同推动AI发展。
3357 9
|
Ubuntu Linux 程序员
交叉编译valgrind在嵌入式设备上调试程序
交叉编译valgrind在嵌入式设备上调试程序
|
弹性计算 安全 API
HTTP 405 Method Not Allowed:解析与解决
本文详细解析了HTTP 405 &quot;Method Not Allowed&quot; 错误,包括其定义、常见原因、示例代码及解决方案。通过检查API文档、修改请求方法或更新服务器配置,可有效解决此错误,提升Web开发效率。
11162 2
|
消息中间件 Unix Linux
C语言 多进程编程(五)消息队列
本文介绍了Linux系统中多进程通信之消息队列的使用方法。首先通过`ftok()`函数生成消息队列的唯一ID,然后使用`msgget()`创建消息队列,并通过`msgctl()`进行操作,如删除队列。接着,通过`msgsnd()`函数发送消息到消息队列,使用`msgrcv()`函数从队列中接收消息。文章提供了详细的函数原型、参数说明及示例代码,帮助读者理解和应用消息队列进行进程间通信。
|
Ubuntu 安全 网络协议
|
C语言
bluez5.50蓝牙文件传输
bluez5.50蓝牙文件传输
2117 0
bluez5.50蓝牙文件传输

热门文章

最新文章