各类设备抓取HCI日志方式
Android阵营
小米
拨号盘输入一次 ##5959## 弹窗,点击同意开始抓蓝牙日志
重启蓝牙(系统设置里),复现问题
拨打电话界面的拨号盘,继续输入一次 ##5959##,点击同意保存日志
华为
注意因手头无设备,该教程只在老鸿蒙系统上验证过,未在纯血鸿蒙上测试验证,纯血鸿蒙请自行验证
蓝牙HCI日志获取:设置-》系统和更新-》开发人员选项-》开启蓝牙HCI信息收集日志,复现问题,下载日志:
使用ADB拉取日志文件
1
adb file recv /data/log/bt/ ./bt
三星手表
注意市场上流通的非工程机不支持USB连接,需要使用无线ADB连接
设置->关于手表->软件信息->”软件版本“连续点五次,启用“开发者选项”
设置->开发者选项->打开“蓝牙窥探记录”开关
复现问题现象(复现前推荐重启下手表)
进入拨号盘界面输入*#9900#
选择“RUN DUMPSTATE/LOGCAT”等待完成后再下滑找到 COPY TO SDCARD(测试也可以直接选择最后一个”RUN DUMPSTATE & COPY TO SDCARD”)
adb命令到对应目录下 sdcard/log拷贝出来
HCI log 路径:\FS\data\misc\bluetooth\logs
三星
设置->关于手机-软件信息-“编译编号”连续点七次,启用开发者模式
其他步骤和三星手表一致
HCI log 路径:\FS\data\log\bt
苹果
配置文件下载链接:配置文件与日志 - 反馈助手 - 苹果开发者
需要开发者账户下载配置文件,没有帐号的这步可以直接告辞了。
文件传入到IOS后打开(不喜欢用微信传文件的推荐用LANdrop),随后在设置-通用-VPN和设备管理-描述和配置文件选择刚才的文件安装。
复现问题后同时按音量+-和电源键,注意部分型号会震动三下,实际测试部分手机没有震动也生成了日志。
之后在设置->隐私与安全性->分析与改进->分析数据可以看到HCI。
Windows(BTVS)
Microsoft蓝牙测试平台 - 蓝牙虚拟嗅探器 (BTVS) - Windows drivers | Microsoft Learn
安装蓝牙测试平台包 - BTP - Windows drivers | Microsoft Learn
默认安装位置:C:\BTP\v1.14.0\x86\btvs.exe
如果使用Wireshark可以直接在命令提示符或 PowerShell运行
1 | C:\BTP\v1.14.0\x86\btvs.exe -Mode Wireshark |
如有其他需求参考以下指令说明和BTVS官方说明
1 | btvs.exe [-Address 127.0.0.1] [-Mode Frontline|Ellisys|Wireshark] [-Port 24352] [-Remote off|on] [-Service 1|2|3] |
用户界面
蓝牙虚拟嗅探器窗口中有两个按钮:
完整数据包日志记录
使通常会被丢弃的数据在 HCI 日志中得以收集。 例如,大型 ACL 数据包、敏感数据(包括加密密钥和 HID 报告)。
设置或扩展调试模式
在有限的时间内,启用 SSP 调试模式。 发送并接受 SMP 调试密钥。 再次单击会延长时间。