Android手机获取btsnoop

Android手机获取btsnoop

从我目前了解的情况来看,Android 手机获取 btsnoop 根据手机厂家不同,获取的难易程度也不一样。

常规操作是打开手机的“开发者选项”,如何打开手机对应型号的“开发者选项”请自行百度;然后再打开“启动蓝牙HCI信息收集日志”

image

重新开启蓝牙,如果幸运的话,可以直接在手机文件系统里搜到 btsnoop_hci.log 文件。

image

如果没有该文件,请继续看下面的操作。


下述操作手机需要有 root 权限,蓝绿厂手机就不用考虑了,推荐小米。

先在电脑上安装 platform-tools 工具链 ,里面有Android Debug Bridge(adb)工具,下载工具链,解压到某个文件夹,并且将该工具的目录路径添加到 PATH 环境变量。

手机通过 USB 连接电脑,并且开启“USB调试模式”,PC 端打开 cmd,输入 adb devices 就能够看到手机设备了。

C:\Users\M2019\Desktop>adb devices
List of devices attached
f8761e1 device

下一步需要在手机端安装 adbd-insecure.apk 文件,先下载该文件,在文件路径下输入 adb install adbd-insecure.apk 安装,手机端同意即可。

C:\Users\M2019\Desktop>ls
'BLE Mesh model.md'   adbd-Insecure-v2.00.apk  'ble mesh.md'   btsnoop_hci.log   desktop.ini   esp32.md   zephyr.md

C:\Users\M2019\Desktop>adb install adbd-Insecure-v2.00.apk
Performing Push Install
adbd-Insecure-v2.00.apk: 1 file pushed, 0 skipped. 42.4 MB/s (752250 bytes in 0.017s)
        pkg: /data/local/tmp/adbd-Insecure-v2.00.apk

之后手机打开该软件,将 “Enable insecure adbd” 和 “Enable at boot” 勾选。PC 端再输入 adb root ,没有报错即可进行下一步。

image
C:\Users\M2019\Desktop>adb root
adbd is already running as root

依次输入

adb root
adb remount
adb pull /etc/bluetooth/bt_stack.conf C:\Users\<your name>\Desktop

将 bt_stack.conf 文件从手机上导出到电脑桌面,然后在电脑桌面修改该文件,将选项 BtSnoopLogOutput 使能,即修改成下述形式。

# Enable BtSnoop logging function
# valid value : true, false
BtSnoopLogOutput=true

BtSnoopFileName 选项值就是 btsnoop_hci.log 最终存储的位置。

# BtSnoop log output file
BtSnoopFileName=/sdcard/btsnoop_hci.log

再输入

adb push C:\Users\<your name>\Desktop\bt_stack.conf /etc/bluetooth

覆盖掉原始配置文件。

如果上述步骤都没有错误,手机重新打开蓝牙,就能够找到文件 /sdcard/btsnoop_hci.log 了,输入

adb pull /sdcard/btsnoop_hci.log C:\Users\<your name>\Desktop

将 btsnoop 导出到桌面,之后就可以分析协议内容了。


如果有问题欢迎交流,这毕竟也只是我试验出来的一种方法。

参考:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容