Android4.2之前抓取hci log都是通过hcidump命令完成的,但是Android4.2 Bluetooth引入了Bluedroid,这是一个新的蓝牙协议栈。所以抓取hci log的方法也改变了。

在我的Bluetooth计划里,本来是没打算写这篇blog的,但是在留言里看见有人问,所以写出来分享给那些目前还不会的。

Android 4.2之后, Bluetooth控制hcidump 的写开关和默认保存的hci log的路径,以及各种级别的log 开关是在/etc/bluetooth/bt_stack.conf 文件里. 如果你需要hci log,那你首先需要从手机把这个文件adb pull出来,然后修改这个文件的内容,然后adb push回去。文件里你修改的BtSnoopFileName这个值就是你需要的hci log文件路径。

bt_stack.conf的文件内容如下

# Enable BtSnoop logging function
# valid value : true, false
BtSnoopLogOutput=true //默认是false,如果需要抓取hcidump 的话,改成 true

# BtSnoop log output file
BtSnoopFileName=/sdcard/btsnoop_hci.log //默认写hcidump 的路径,btsnoop_hci.log 就是hcidump的log。可以按照你自己的需要修改。

# Trace level configuration
#   BT_TRACE_LEVEL_NONE    0    ( No trace messages to be generated )
#   BT_TRACE_LEVEL_ERROR   1    ( Error condition trace messages )
#   BT_TRACE_LEVEL_WARNING 2    ( Warning condition trace messages )
#   BT_TRACE_LEVEL_API     3    ( API traces )
#   BT_TRACE_LEVEL_EVENT   4    ( Debug messages for events )
#   BT_TRACE_LEVEL_DEBUG   5    ( Full debug messages )
#   BT_TRACE_LEVEL_VERBOSE 6    ( Verbose messages ) - Currently supported for TRC_BTAPP only.

//下面默认值是2,哪个模块需要抓取更多的log,可以把值改成你想要的.

比如说,你想看各个模块的log,你就全改成5 Full debug messages
TRC_BTM=5
TRC_HCI=5
TRC_L2CAP=5
TRC_RFCOMM=5
TRC_OBEX=5
TRC_AVCT=5
TRC_AVDT=5
TRC_AVRC=5
TRC_AVDT_SCB=5
TRC_AVDT_CCB=5
TRC_A2D=5
TRC_SDP=5
TRC_GATT=5
TRC_SMP=5
TRC_BTAPP=5
TRC_BTIF=5

这里介绍一种在Android上捕获蓝牙数据包的方法

1. 前提

首先你要有一部Android手机 
然后你的Android系统版本要在4.4及以上

我没有做过Android开发,不清楚开发者们是如何抓蓝牙包的 
不过我知道可以使用hcidump来抓取蓝牙数据包 
这里并不介绍这种方法(后续可能会去了解一下)

2. 开启功能

在开发者选项中有一个功能
- [Enable Bluetooth HCI snoop log/启用蓝牙 HCI 信息收集日志]
开启它

3. 抓包

然后你可以进行各种蓝牙操作,结束后的抓包文件就在 
/sdcard/btsnoop_hci.log

将它拷贝出来放在电脑上,就可以用Wireshark直接看了

可以使用比如bthci_acl, btl2cap, bthfp等过滤器来过滤数据包查看你所关心的协议

最新文章

  1. C#:结构
  2. dd面试经历
  3. Image.FrameDimensionsList 属性-----具体使用案例
  4. Spark Streaming揭秘 Day34 解析UI监听模式
  5. Common Lisp 编译器IDE环境搭建
  6. 设计模式的征途—3.工厂方法(Factory Method)模式
  7. centos下从源码安装openssl
  8. python 人工智能资源推荐
  9. 文件上传详解 (HTML FILE)
  10. css两列布局之基于BFC规则实现
  11. flutter 学习零碎知识点01
  12. java集合(二)
  13. AX_NumberSeq
  14. mybatis异常invalid comparison: java.util.Date and java.lang.String
  15. python-day43--多表查询
  16. svn知识点
  17. ConfigurationManager
  18. HDU 4764:Stone(巴什博弈)
  19. SICP第三章题解
  20. 二维码生成插件qrious及网站扫码登录的一些理解

热门文章

  1. 基于WPF系统框架设计(4)-Ribbon整合Avalondock 2.0实现多文档界面设计(一)
  2. 执行 innerHTML 里的 <script>
  3. Mac环境下svn命令行的使用
  4. xss---攻击
  5. mac搭建安卓开发环境
  6. JSON API:用 JSON 构建 API 的标准指南中文版
  7. 红米note3刷安卓原生
  8. sql执行顺序图
  9. unity 切圆角矩形 --shader编程
  10. 1、C++的的升级