获取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日志?
看过后, 如果大家还有什么问题, 还可以问我, 我尽量帮忙解决
获取Android蓝牙HCI日志相关推荐
- RK3568平台开发系列讲解(蓝牙篇)Android 蓝牙框架概览
文章目录 <font color=#0990d9>一.蓝牙概览 1.1.Android 8 架构 1.2.Android 7.x 及更早版本的架构 一.蓝牙概览 Android 提供支持经 ...
- Android 蓝牙抓包和分析 (1) 启用蓝牙HCI信息收集日志
蓝牙通信其实和http通信有点类似,http通过接口交互抓取数据包也很方便,但是到了蓝牙就没那么方便了,本文就是介绍如何实现蓝牙数据包的抓取. 怎么抓包 另一种更为简便的抓包方式请阅读Android ...
- Android O HIDL的使用例子 -- 蓝牙HCI 服务进程
1.1.Treble 计划概览 Android O 引入" Treble" 计划,目标是通过重构 Android OS 的 framework,使 Android 设备制造商能更快 ...
- android查找邮件程序,Android 程序崩溃日志邮件获取
版权声明:本文为博主原创文章,未经博主允许不得转载. 在我们开发Android应用程序的时候,BUG的出现是难以避免的,时不时还会出现崩溃的情况,这个时候,我们急需知道造成问题的原因是什么,但是,在没 ...
- 华为手机获取hci日志
一. 打开手机开发者模式 首先打开手机设置界面: 然后拉到最后,点开关于手机设置: 然后在关于手机界面,做以下两步操作,第一步如图:不停地点击版本号这个位置,当出现如图2中的提示,则表示进入了开发者模 ...
- Android蓝牙系统框架和代码架构
二.蓝牙Bluetooth源码目录分析 1.Bluetooth的设置应用 路径:\packages\apps\Settings\src\com\android\settings\bluetooth 蓝 ...
- 手机HCI日志抓取教程
手机HCI日志抓取教程 以下为主流安卓手机品牌以及iOS手机HCI日志抓取教程(亲测有效) Android HUAWEI/Honor 进入应用程序->设置->关于手机,连续点击版本,提示打 ...
- Android蓝牙开发系列文章-蓝牙设备类型知多少?
在写<Android蓝牙开发系列文章-蓝牙音箱连接>时,计划细化出一篇讲解蓝牙设备类型的文章,现在它来了~ 阅读其他内容,可以点击<Android蓝牙开发系列文章-策划篇>,或 ...
- android 蓝牙hf编程,基于Android蓝牙Inband ring功能实现.doc
基于Android蓝牙Inband ring功能实现 基于Android蓝牙Inband ring功能实现 [摘要] 蓝牙作为一种短距无线数据与语音传输的开放性全球规范,目前在整个世界范围内都得到了很 ...
最新文章
- 百度关键词研究: 应避免的5个错误!
- 【Java】反射( reflection)机制 详解
- 慢 SQL 诊断优化套路包,套路用的对,速度升百倍
- Eclipse执行import命令导入maven项目时报错:Add a version or custom suffix using Name template in Advanced set...
- CNN结构:用于检测的CNN结构进化-分离式方法
- 怎么从某个div跳转到另一个_另一个伊甸伊丝卡怎么样 伊丝卡使用攻略_
- 使用Response.Filter过滤非法词汇
- java比较吊的程序代码_java中 compareTo()的程序代码及用法
- 第一次立会(2019.3.24)
- Python中的break和continue的使用方法
- java使用libreoffice_关于java使用libreoffice以及openoffice转换问题。
- 基于nonebot的QQ群聊机器人制作(一)
- php冒泡排序图解,PHP冒泡排序(Bubble Sort)代码实现图解
- Android Unable to find source java class:<File>because it does not belong to any of the source dirs:
- Win10双系统选择系统界面黑白或彩色问题
- 树莓派Raspberry Pi Pico开发板踩坑:重置后设备管理器各种不识别,未知设备/unknown device
- 深入理解java虚拟机(zz)
- Reactjs鼠标滚轮监听
- 10月12日 阅读数异常公告
- 炒菜机器人“精确”破题中餐标准化