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等过滤器来过滤数据包查看你所关心的协议

打开蓝牙debug hci log的更多相关文章

  1. android -- 蓝牙 bluetooth (二) 打开蓝牙

    4.2的蓝牙打开流程这一部分还是有些变化的,从界面上看蓝牙开关就是设置settings里那个switch开关,widget开关当然也可以,起点不同而已,后续的流程是一样的.先来看systemServe ...

  2. ZT android -- 蓝牙 bluetooth (二) 打开蓝牙

    android -- 蓝牙 bluetooth (二) 打开蓝牙 分类: Android的原生应用分析 2013-05-23 23:57 4773人阅读 评论(20) 收藏 举报 androidblu ...

  3. Dcloud开发-- 打开蓝牙

    这样打开APP就会直接提示是否要打开蓝牙: <script type="text/javascript"> mui.init(); mui.plusReady(func ...

  4. 高通平台打开 dynamic debug方法【学习笔记】

    一.首先在内核的配置文件添加如下的配置: CONFIG_DEBUG_FS=y CONFIG_DYNAMIC_DEBUG=y 二.找到自己平台对应的 device/qcom/xxxx/init.targ ...

  5. OAF_OAF Debug And Log调试和记录工具的详解(案例)

    2014-06-16 Created By BaoXinjian

  6. Android Debug 之 Log 最佳实践

    本文微信公众号「AndroidTraveler」首发. 背景 在开发过程中,调试是必不可少的一项工作. 当我们要确定项目的逻辑时,当我们要了解界面的生命周期时,当我们发现新写的逻辑与期望效果不一致时, ...

  7. 解决华为手机无法输出Debug级别log的问题

    近期购入了新款的华为手机荣耀8,手感.性能.颜值都非常好.作为android开发工程师,自然会用到真机进行日常的调试.然而,这部手机并没有这么“听话“!反复尝试开启开发者选项中的设置项,依旧无法输出L ...

  8. unity web player的debug和log信息

    win8模式下 unity web player的报错信息在如下目录下:C:\Users\xxx\AppData\Local\Temp\UnityWebPlayer\log 注:目录里的文件可能被隐藏 ...

  9. IDEA 社区版 点击‘Edit Configurations’打开“Run/Debug Configurations”,里面没有tomcat server选项

    没错 社区版就是没有 “先手动添加Plugins 然后再setting” 方法无效 搜索不到 http://blog.csdn.net/u010666884/article/details/52119 ...

随机推荐

  1. dedecms 调取当前栏目的链接和 栏目名称

    <a href="{dede:field name='typeurl' function=”GetTypeName(@me)”/}" target="_blank& ...

  2. 记C++课程设计--学生信息管理系统

                                                                                  C++课程设计--学生信息管理系统     ...

  3. foreach_break 面试记录

    版权所有@foreach_break] [博客地址 http://www.cnblogs.com/foreach-break] 可以转载,但必须注明出处并保持博客超链接 背景 自从2013年离开北京后 ...

  4. 2017.2.12 开涛shiro教程-第七章-与Web集成

    2017.2.9 开涛shiro教程-第七章-与Web集成(一) 原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. ...

  5. GlusterFS分布式文件系统高速管理

    TaoCloud XDFS基于GlusterFS开源分布式文件系统,进行了系统优化.project化.定制化和产品化工作,五年以上的实践积累了大量实践经验,包含客户案例.最佳实践.定制开发.咨询服务和 ...

  6. Scala 中Array,List,Tuple的差别

    尽管学了一段时间的Scala了,可是总认为基础不是太扎实,还有非常多的基础知识比較模糊.于是近期又打算又一次学习基础. Scala中的三种集合类型包含:Array,List,Tuple.那么究竟这三种 ...

  7. apue学习笔记(第十七章 高级进程间通信)

    本章介绍一种高级IPC---UNIX域套接字机制,并说明它的应用方法 UNIX域套接字 UNIX域套接字用于在同一台计算机上运行的进程(无关进程)之间的(全双工)通信.相比于因特网套接字,UNIX域套 ...

  8. LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)

    翻译 反转一个单链表. 原文 Reverse a singly linked list. 分析 我在草纸上以1,2,3,4为例.将这个链表的转换过程先用描绘了出来(当然了,自己画的肯定不如博客上面精致 ...

  9. 【Python】ModuleNotFoundError: No module named 'matplotlib.pyplot'

    安装好matplotlib后,很激动的建立了一个文件夹matplotlib,并且在其下面建立了,mpl_squraes.py文件,代码编辑完成以后,点击运行,报错如下: 仔细分析了之后,发现是文件夹名 ...

  10. 安装gi的时候回退root.sh的运行

    </pre><pre name="code" class="html">/u01/app/11.2.0/grid/crs/install ...