1. 项目背景与需求分析
最近我在嘉立创平台购买了一款基于RK3566芯片的"泰山派"开发板,并成功基于AOSP11源码编译出了可运行的镜像包。作为一名蓝牙协议栈研究者,我需要获取设备的蓝牙HCI层通信日志(即bt_snoop日志)来进行协议分析。但在默认配置下,系统并未开启蓝牙日志记录功能。
通过getprop | grep bluetooth命令检查,发现关键参数persist.bluetooth.btsnoopenable的值为false,这意味着系统禁用了蓝牙数据包捕获功能。我们的核心目标就是修改AOSP11源码配置,重新编译系统镜像,实现以下功能:
- 启用蓝牙数据包捕获功能
- 正确配置日志存储路径
- 确保生成的日志文件可以被正常读取
2. 技术方案设计与实现
2.1 系统编译流程解析
RK3566的开发板编译采用标准的AOSP编译流程,核心命令如下:
bash复制source build/envsetup.sh && lunch rk3566_tspi-userdebug
这个lunch命令会加载设备特定的配置信息,主要涉及以下几个关键文件:
device/rockchip/rk356x/rk3566_tspi/rk3566_tspi.mk- 设备主配置文件device/rockchip/common/BoardConfig.mk- 公共板级配置device/rockchip/common/device.mk- 设备特性配置hardware/realtek/rtkbt/rtkbt.mk- 蓝牙模块配置
2.2 蓝牙日志配置修改
要实现蓝牙日志捕获,需要修改以下配置项:
- 启用蓝牙支持(已在默认配置中):
makefile复制BOARD_HAVE_BLUETOOTH ?= true
- 关键修改 - 启用btsnoop日志:
在rtkbt.mk文件中添加以下配置:
makefile复制PRODUCT_PROPERTY_OVERRIDES += \
persist.bluetooth.btsnoopenable=true \
persist.bluetooth.bts
