安卓系统中默认打开蓝牙 HCI snoop 文件的方法

蓝牙开发的同学想必一定遇到这样的问题:
fastboot重刷完安卓系统后,snoop文件是默认不保存的。
安卓系统中默认打开蓝牙 HCI snoop 文件的方法_第1张图片
这对相当多蓝牙协议栈开发人员是一个麻烦,因为通过分析Host和Controller之间的消息交互能确定很多问题,那有没有什么方法打开这个snoop文件?那是必须有的,方法如下:

1、手动打开snoop文件开关

手动打开的步骤如下:

  1. 打开安卓系统中的开发人员选项:
    英文:System -> About phone -> Build number ,连续点击Build number 五次
    中文:系统 -> 关于手机 -> 版本号,连续点击版本号五次
  2. 在系统(System)下点击开发人员选项(Developer options)
  3. 打开HCI snoop文件开关按钮
  4. 重新开关设置中蓝牙按钮,让上述配置生效

2、默认打开snoop文件开关

默认打开的方法有如下两种:

  1. 通过指令:adb shell setprop persist.bluetooth.btsnoopenable true 打开蓝牙HCI snoop,重新开关蓝牙,使其配置生效
  2. 或者通过修改安卓源码:system\bt\hci\src\btsnoop.cc 中的函数
    is_btsnoop_enabled()让其始终返回 true,重编协议栈的so库替换系统中的库

经过如上步骤的操作,蓝牙的snoop文件就会保存起来,默认存储路径:data/misc/bluetooth/logs/,使用专业的蓝牙协议分析工具 Ellisys Bluetooth Analyzer和Frontline对应的软件打开HCI snoop文件就可以分析底层蓝牙信息交互的全过程了。

更多互联互通技术,欢迎关注微信公众号:Connectivity
安卓系统中默认打开蓝牙 HCI snoop 文件的方法_第2张图片

你可能感兴趣的:(Bluetooth)