三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

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

【车载 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
← 返回列表