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

图一 打开蓝牙HCI日志

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

adb shell cat /etc/bluetooth/bt_stack.conf

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

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

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

# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=false

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

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的方法了。 这种方法首先需要运行下面的指令:

adb bugreport c:\tmp\

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

btsnooz.py bugreport-JDN2-W09HN-HUAWEIJDN2-W09HN-2021-06-08-15-07-38.txt > btsnoop.log

其中btsnooz.py脚本可以通过google官网下载, 也可以通过我上传的资源下载。 这个script文件用于从bug report中获取蓝牙日志。这样生成的btsnoop.log文件就可以用wireshark分析了。

补充说明:原先写这篇文章时忘了写当时使用的Python版本及操作系统。最近因项目需要,发现重新按照上面的方法在Win7, Win10下用Python 3.X , 2.8 生成的日志,Wireshark解析都出错。后来在Cent OS 6.5 Python 2.6 环境下生成日志才没有问题。

安卓蓝牙日志的获取方法相关推荐

  1. 一种网络用户行为日志自动获取方法

    摘要 本发明公开了一种网络用户行为日志自动获取方法,其特征在于:在客户端与Web服务器之间加上一代理服务器,代理服务器第一次接受Web服务器返回的响应正文为HTML格式的用户响应即HTTP响应,在该H ...

  2. 手机抓取蓝牙日志btsnoop的方法汇总(Android一直补充中)

    一. Android手机 一般如果手机厂商没有做限制的情况下,打开开发者选项,打开HCI日志手机功能,然后重启蓝牙就可以抓取了,蓝牙HCI日志功能如下图,每个手机显示可能略有差异 ​ 那么一般btsn ...

  3. 苹果蓝牙日志如何获取

    用手机siri 浏览器登录https://developer.apple.com/bug-reporting/profiles-and-logs/?name=bluetooth 找到Bluetooth ...

  4. 昨天日志 今天日志的获取方法

    获取当天的日志: ######/home/nagios/query_log.sh 脚本执行的是获取昨天的日志 因此 把获取昨天的时间命令取消`date -d yesterday +%Y%m%d` 此时 ...

  5. android 获取蓝牙设备id_安卓蓝牙系统中如何获取蓝牙音乐的音频跟踪会话ID

    原标题:安卓蓝牙系统中如何获取蓝牙音乐的音频跟踪会话ID 蓝牙音乐AudioTrack Session ID的获取 当今这个音视频无处不在的时代,音频跟踪会话ID(AudioTrack Session ...

  6. uni-app蓝牙设备连接以及设备的传输,CRC16,ios蓝牙和安卓蓝牙获取数据不一致处理方案

    前言: 因为需要开发与蓝牙设备控制相关,但是这不是常用的蓝牙打印,并且是由原生安卓已经做好的,但是需要移植到多平台(小程序 等)都可以使用所以就要移植成 uni-app ,所以这个是按照uni-app ...

  7. grep mysql_详解grep获取MySQL错误日志信息的方法

    为方便维护MySQL,写了个脚本用以提供收集错误信息的接口.这些错误信息来自与MySQL错误日志,而 通过grep mysql可以获取error-log的路径. 以下是全部相关代码: #!/usr/b ...

  8. Android Studio 基础 之 获取蓝牙Bluetooth 的状态,设置的蓝牙Bluetooth 的开关状态,并监听蓝牙Bluetooth 的状态变化方法整理

    Android Studio 基础 之 获取蓝牙Bluetooth 的状态,设置的蓝牙Bluetooth 的开关状态,并监听蓝牙Bluetooth 的状态变化方法整理 目录 Android Studi ...

  9. linux系统给安卓root权限,安卓手机该如何获取Root权限?方法很简单,但不建议Root...

    原标题:安卓手机该如何获取Root权限?方法很简单,但不建议Root 想要获取安卓智能手机的Root权限,现在已经是相当简单,只需要网上搜索Root精灵.Root大师.百度一键Root.360一键Ro ...

最新文章

  1. React学习笔记二——react-router
  2. Renascence架构原理——遗传规划算法
  3. vmware 蓝屏_网络安全小百科--利用微软CVE 2019-0708漏洞让对方系统蓝屏死机
  4. java判断读到末尾_Java 中的运算符和流程控制
  5. 自卑都是自己不踏实做事的表现
  6. 2012-2013最新泰晤士报和QS世界大学排名前100名单对比
  7. GEE:基于GEE的单个湖泊的实时水体提取(以武汉东湖为例)
  8. 2022年全国职业院校技能大赛(高职组)
  9. IDEA鼠标悬停显示注释
  10. DoIP专栏 - DoIP协议组成
  11. vmware 启动虚机黑屏
  12. (05)2020-12-07(选择器)
  13. 为什么神经元有数千个突触,一个新皮质中的序列记忆理论(HTM算法基础)
  14. 【雅思阅读】王希伟阅读P4(matching1)
  15. vue 项目ztree 异步加载树
  16. Oracle 11g RAC CRS-4535/ORA-15077
  17. 西门子推出Teamcenter X,官方免费体验,基于云的PLM究竟香不香?
  18. 3dmax 视图切换
  19. 智能建筑计算机网络系统设计的主要内容及遵循的原则,小区智能化系统设计设计原则及功能需求...
  20. 没有Nvidia(英伟达)显卡对深度学习计算的影响

热门文章

  1. 这个季节的忧伤,点到为止
  2. 再有人问你数据库缓存一致性的问题,直接把这篇文章发给他
  3. WINDOWS 自带解压缩命令
  4. 函数调用栈帧过程带图详解
  5. 腾讯35级员工高调离职,真实工资被曝光,牛逼的人果然都很会赚钱!
  6. 机器视觉面试宝典--深度学习补缺补漏篇
  7. 教你利用热门关键词截流变现,闷声发大财
  8. Excel导出报错 You can define up to 4000 styles in a .xls workbook
  9. SXSSFWorkbook导入/导出Excel文档简单操作
  10. No.033<软考>《(高项)备考大全》【第17章】战略管理