安卓蓝牙日志的获取方法

有过蓝牙调试经历的同学们可能都知道,在安卓系统中,在手机的设置-->开发人员页面下有一个开启蓝牙HCI信息收集日志选项开关,如下图中标红处, 打开该开关,就可以收集本机发送和接收的蓝牙HCI包。蓝牙包的数据会保存在btsnoop_hci.log文件中。

那么这个文件生成后被放在哪里了呢? 这个不同的手机放的位置可不一样。那么怎么知道我的手机上该文件放在哪呢? 我们可以通过下面的方法来查看。

bash 复制代码
adb shell cat /etc/bluetooth/bt_stack.conf

首先通过上面的adb命令看一下bt_stack.conf的内容, 你需要找到类似下面的这几行代码。

bash 复制代码
# BtSnoop log output file
BtSnoopFileName =/data/log/bt/btsnoop_hci.log <--日志文件位置

通常你还会看到下面几行代码,这一般反映你的HCI日志是否打开了。如果打开了,BtSnoopLogOutput的值应该会是true. 但这个也不一定,有的机器并不更新这个值。我的机器即使我通过设置打开了HCI日志开关,BtSnoopLogOutput的值还是false.

bash 复制代码
# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=false

如果按照上面的步骤你打开了HCI开关, 并且知道了btsnoop_hci.log的位置。如果你运气好,正好日志文件存放的文件系统又可读,你就可以通过下面的命令获取到日志文件。

bash 复制代码
adb pull /data/log/bt/btsnoop_hci.log

接着你就可以用wireshark等工具分析日志了。

可惜我就没有那么幸运了。我的华为荣耀平板,按上面的步骤操做后根本就找不到btsnoop_hci.log,即使我在bt_stack.conf文件中看到BtSnoopFileName =/data/log/bt/btsnoop_hci.log它应该被存在这个目录下, 但这个目录对用户不可见,我又root不了该平板。

还好还有另外一种获得蓝牙日志文件的方法。越来越多的手机厂家开始采用通过bug report获取日志的方法替代直接获取btsnoop_hci.log的方法了。 这种方法首先需要运行下面的指令:

bash 复制代码
adb bugreport c:\tmp\

得到一个压缩文件bugreport-JDN2-W09HN-HUAWEIJDN2-W09HN-2021-06-08-15-07-38.zip,展开这个文件到一个目录后会看到一个同名的TXT文件。

相关推荐
丫头,冲鸭!!!5 天前
安卓开发实现图像处理相关功能
图像处理·人工智能·计算机视觉·安卓
再遇当年6 天前
小米运动健康与华为运动健康在苹手机ios系统中无法识别蓝牙状态 (如何在ios系统中开启 蓝牙 相册 定位 通知 相机等功能权限,保你有用)
ios·蓝牙·智能手表·权限·苹果手机·小米手表·小米运动健康
SuperHeroWu76 天前
【HarmonyOS】鸿蒙应用低功耗蓝牙BLE的使用心得 (三)
华为·蓝牙·harmonyos·鸿蒙·低功耗蓝牙·ble
记帖10 天前
STM32WB55RG开发(3)----生成 BLE 程序连接手机APP
蓝牙·stm32cubemx·ipcc·ble·无线·stm32wb55rg·hsem
记帖11 天前
STM32WB55RG开发(1)----开发板测试
蓝牙·stm32cubemx·ble·无线·stm32wb55rg·开发板测试
jiang_bluetooth15 天前
Simple fast pair design
蓝牙·gfps·fast pair·蓝牙快连·蓝牙架构设计
hello world smile16 天前
Flutter常用命令整理
android·flutter·移动开发·android studio·安卓
Lenzetech17 天前
科技资讯|谷歌Play应用商店有望支持 XR 头显,AR / VR设备有望得到发展
科技·物联网·ar·xr·蓝牙·find my
潘帕斯的雄鹰18 天前
【1个月速成Java】基于Android平台开发个人记账app学习日记——第4天,注册登录逻辑代码
java·学习·安卓·自定义安卓app图标
Lenzetech19 天前
蓝牙资讯|苹果AirPods Pro 2推出听力测试、助听器和听力保护等功能
科技·物联网·蓝牙·find my