获取Android蓝牙HCI日志

在我刚在开发者选项下开启开启蓝牙HCI信息搜集日志时, 使用adb并无法拿到btsnoop_hci.log. 随后查阅了许多资料, 折腾了许久, 包括什么要获取root权限等等. 最终在把USB连接方式仅充电转为传输文件后, 就能拿到hci日志文件了. 而且稀里糊涂的, 蓝牙也开始抓包了. 最后, 抓到的蓝牙包在我手机里越来越大, 我暂时是不想折腾如何删除手机上的HCI日志文件了.

开发者模式

在手机的安卓版本号那边点击5下就可以开启, 网上资料挺多的, 都差不多, 可以看这篇文章.

开启HCI日志

开发者选项内, 有一条开启蓝牙HCI信息搜集日志, 关闭再打开蓝牙, 这样手机就会抓蓝牙HCI包了.

同时, 为了能拿到包, 还需要开启USB调试 .

获取蓝牙包

本人手机型号 华为mate20 pro. 操作系统 Ubuntu 18.04 以及Archlinux均测试.

开启USB调试后, 使用USB数据线连接手机, 手机应该被正常识别到, 切换USB连接模式至传输文件.

系统上应该能看到手机连接:

lsusb
# Bus 001 Device 059: ID 12d1:107e Huawei Technologies Co., Ltd. 

然后安装adb - Android Debug Bridge

# Ubuntu
apt install android-tools-adb

# Archlinux
pacman -S android-tools

查看一下 adb 是否可以识别设备:

adb devices
# List of devices attached
# 3EP0218C19000591	device

如果成功, 运行adb shell 应该是可以进入手机shell的. 如果不能识别设备, 可能需要开启adb:

adb start-service

查看一下蓝牙配置文件, 看看蓝牙日志存在哪里:

# 我是华为手机. 不同版本可能文件不同, 但配置文件的路径应该是相同的.
# 查看蓝牙文件
adb shell ls /etc/bluetooth/

# 查看配置文件
adb shell cat /etc/bluetooth/bt_stack.conf
# BtSnoopLogOutput=true
# BtSnoopFileName=/data/log/bt/btsnoop_hci.log
# BtSnoopSaveLog=true
# 注意, 我安卓手机的蓝牙日志配置文件是 bt_stack_log.conf

最后, 找一个目录存放日志 $DOWNLOAD_PATH

adb pull /data/log/bt/ $DOWNLOAD_PATH
ls -R .
# ./bt:
# btsnoop_hci_20210413_171017.log

这个日志可以被Wireshark打开并解析.

关于adb与手机root权限

adb shell 进入手机shell并不是root权限的, 这样做是很安全的, 防止你的手机变砖, 专业的事情还是交给专业的人解决.

adb获取root权限有个命令 adb root, 但是会报错. 好像如果手机本身没有root的话, adb root是没用的.

adb shell 中有个run-as, 这个是获取某个发包应用的权限, 从而允许获取到发包应用的文件. 比如腾讯应用的文件, 但是呢, 如果发包用户没有开启debug也是没用的.

我是华为手机, 在我网上找说华为要申请root解锁, 我找了半天没找到. 网上还有各种乱七八糟的root软件, 真是不敢下. 我在shell下看了一下, 华为手机里还把su给去掉了.

最后, 在把USB连接方式改成传输文件后, 我也能拿到文件, 所以就不纠结root权限了. 但是删不掉文件依旧很烦啊.

参考资料

https://stackoverflow.com/questions/28445552/bluetooth-hci-snoop-log-not-generated
https://www.mybluetoothreviews.com/what-is-bluetooth-hci-snoop-log/

蓝牙日志文件

Github的btstack 与 Sony HSP/HFP 连接日志
Github的btstack 与 网易音箱 HSP/HFP 连接日志
Android的bluez 与 网易音响 HSP/HFP 连接日志

遗留问题

  • 如何清除遗留在手机上的HCI日志?

看过后, 如果大家还有什么问题, 还可以问我, 我尽量帮忙解决

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
抓取Android BTSnoop蓝牙HCI协议分析工具是一种用于捕获并分析Android设备上的蓝牙数据包的工具。蓝牙HCI协议是蓝牙设备之间进行通信所使用的一种协议,通过抓取并分析这些数据包,可以帮助开发人员或研究人员了解蓝牙设备之间的通信过程,诊断问题,甚至进行逆向工程。 要实现这一目的,可以按照以下步骤进行: 1. 安装抓包工具:首先,在Android设备上安装一个支持抓取蓝牙数据包的抓包工具。常用的工具有Wireshark和Bluetooth HCI Logger。 2. 启用抓包功能:在Android设备上,需要启用开发者选项,并开启蓝牙HCI日志记录功能。具体操作方式可能有所不同,可以通过打开设备的设置菜单,找到开发者选项,并开启蓝牙HCI日志记录选项。 3. 连接设备:将要抓取数据包的Android设备与目标蓝牙设备进行配对和连接。 4. 抓取数据包:通过打开抓包工具,选择蓝牙设备的接口,开始捕获蓝牙数据包。数据包将会被存储到本地设备的存储中。 5. 分析数据包:将抓取到的数据包导入到分析工具中进行分析。分析工具可以对数据包进行解析,并显示出数据包的内容、属性和相关信息。 通过以上步骤,我们可以获取Android设备上的蓝牙数据包,并利用分析工具对其进行解析。这将有助于了解蓝牙通信过程中的协议细节、错误和异常情况,从而进行问题排查和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值