一、目的
抓取logcat log和btsnoop log分析蓝牙应用层和协议栈。
二、步骤
2.1 关闭DM-verity检测
1.adb root
2.adb disable-verity
3.adb reboot
2.2 重新挂载system分区
4.adb remount (mount -o remount rw /system)
2.3 提高协议栈日志打印等级
adb pull /system/etc/bluetooth/bt_stack.conf ,把bt_stack.conf文件pull出来,用编辑器将文件中的log等级都改成6。然后再adb push bt_stack.conf system/etc/bluetooth。
如下图:
2.4 开启协议栈日志打印开关
adb shell setprop persist.bluetooth.btsnooplogmode full
或者手机进入开发者模式,打开开发者选项中Enable Bluetooth HCI snoop log,这两者的作用是相同的,就是抓取snoop log。
2.5 重启蓝牙抓取logcat
界面关闭打开蓝牙一次或者使用命令重启蓝牙
adb root
adb shell svc bluetooth enable
adb shell svc bluetooth disable
抓取logcat
adb shell
cd data/
logcat -v threadtime > logcat.txt &
2.6 复现问题
进行蓝牙问题的复现,这样当蓝牙发生问题时的过程都被记录在日志中,方便分析。
2.7 拉取日志文件到电脑
androi O 及以上版本btsnoop log 将保存在 /data/misc/bluetooth/logs/目录下。将logcat、snooplog都拉出来进行分析,.log文件后缀名改为.cfa,.cfa文件用蓝牙协议工具(comproble protocol analysis system)打开。
拉取命令如下:
adb pull /data/logcat.txt ./
adb pull /data/misc/bluetooth/logs ./