【车载 AOSP 16 蓝牙(bluedroid)服务】【qcom 平台双蓝牙】【4.btsnoop创建和捕获流程分析】

📅 2026/7/7 5:04:02 👁️ 阅读次数 📝 编程学习
【车载 AOSP 16 蓝牙(bluedroid)服务】【qcom 平台双蓝牙】【4.btsnoop创建和捕获流程分析】

1. 背景

梳理 aosp16 btsnoop 原生逻辑, 重点分析清楚, btsnoop 文件是如何创建的,以及 协议栈如何向 btsnoop 中保存日志, 以及如何过滤敏感数据。

2. SnoopLogger 对象创建流程

在 Android 蓝牙协议栈(Gabeldorsche 架构)中,SnoopLogger 的实例化(即调用 new 或构造函数的地方)主要发生在 蓝牙堆栈启动(Stack Startup) 过程中。

1. 实例化链路梳理:

1. 顶层入口:Stack::handle_start_up

当蓝牙服务启动时,会调用 shim::Stack 的启动处理函数。在这里,程序会创建一个 Stack::impl 对象(通过 std::make_unique),而 SnoopLogger 正是这个实现类的一个成员变量。

  • system/main/shim/stack.cc
voidStack::handle_start_up(std