Linux 蓝牙子系统周报
报告周期:2026-07-23(周四)— 2026-07-29(周三)
数据来源:lore.kernel.org linux-bluetooth
人类贡献邮件:221 / 总邮件:338 / 活跃贡献者:57 / 活跃域名:25
📊 总体判断
本周蓝牙邮件列表最核心的主题是内核蓝牙 ISO(LE Audio 等速通道)线程安全大规模重构。Pauli Virtanen(pav@iki.fi,26封)提交了两个大型补丁系列——一个 7 片解决 hci_sync 任务中对 hci_conn 的引用计数问题,一个 11 片修复 ISO 套接字的 HUP/关闭路径 UAF 和锁问题。这是本周量最大、影响面最广的工作,直指 LE Audio 栈的内核侧可靠性。
同时 SCO(语音通话)子系统迎来两轮修复:Aldo Panzardo + Baul Lee 修复了 sco_conn 在外出连接时的 double-free,以及 sco_conn 生命周期与 sco_recv_scodata() 的序列化问题。这说明 SCO 路径的生命周期管理长期存在问题,需持续关注。
驱动层面:btintel(15封)最活跃,Zijun Hu(22封)完成 diagnostics 事件解析修复和 HCI 辅助函数抽离;btmtk 的短读错误修复(Greg KH,3片系列)是跨驱动的质量修复。
BlueZ 用户态:Luiz Augusto von Dentz 主导的 Shorter Connection Interval(SCI)功能从内核进入 BlueZ 用户态,并配套 CS procedure data D-Bus 导出(Naga Bhavani Akella),表明蓝牙 5.4 低功耗链路特性正从内核向用户态打通。
🔐 安全修复分析
本周安全类邮件数量可观,但需区分"真正安全问题"和"代码健壮性修复":
高危/潜在高危(建议优先追踪):
| | |
|---|
| | HyeongJun An 修复 build info 字符串越界读取,影响 virtio 蓝牙设备 |
| | Oğuzhan Akkaya 修复 sbc_unpack_frame_internal 1 字节堆越界 |
| | Jiale Yao + Pauli Virtanen 系列修复 iso_conn_ready UAF,涉及 LE Audio ISO 连接建立 |
| | Ren Wei 修复 mgmt 中 pending command 在 EIR 更新时的 UAF |
| | Chengfeng Ye 修复广告/扫描响应数据 UAF |
中等(代码健壮性):
- • virtio_bt virtbt_probe 内存泄漏(zhangchen200426)
- • btusb/btmtk 短读错误修复(Greg KH,3片系列——usb_control_msg 返回小于预期时的处理)
- • sco_conn double-free 在 outgoing connect(Baul Lee)
注:Pauli Virtanen 的 ISO UAF 系列(11片)覆盖面大,是本周最值得关注的安全修复,涉及 iso_conn 的 refcounting、hcon 悬挂引用、kfree/kref_get_unless_zero 竞争等多个子问题。
✨ 新功能分析
1. Shorter Connection Interval (SCI) — 蓝牙 5.4 特性
Luiz Augusto von Dentz 主导,迭代到 v5:
- • 内核:MGMT 命令
Load Connection Subrate + Shorter Connection Interval setting - • BlueZ 用户态:adapter 层加载连接子速率参数
- • 意义:这是对蓝牙低功耗连接间隔的细粒度控制,直接影响音频/传感器类设备的功耗和延迟
- • 迭代到 v5 说明与 maintainer 仍有接口或兼容性问题
2. BlueZ BCS/CSD (Broadcom Connection Specification / Connectionless Service Discovery)
Naga Bhavani Akella 提交:
- • CS procedure data 聚合 + D-Bus API 导出
- • RAP 会话处理简化、reflector setup 集中化(v6)
- • 意义:这是 LE Audio / Broadcast Audio 的用户态能力,BlueZ 正系统性接入蓝牙 5.x 的新 audio profile
3. btintel PCI sysfs vendor_reset(Chandrashekar Devegowda,v6)
- • 为 PLDR(Platform Local Device Resource)添加 sysfs vendor_reset 接口
- • 意义:给平台侧(如固件/ BMC)提供通过 sysfs 触发 btintel 设备重置的能力,适用于带外管理场景
4. HCI_Write_Link_Supervision_Timeout
- • 新增 HCI 命令/事件结构定义,完善链路监督超时参数可配置性
👤 关键贡献者
| | | |
|---|
| | | |
| | | ISO 线程安全、hci_sync 生命周期修复(本周核心) |
| | | btintel diagnostics 修复、HCI 辅助函数重构 |
| | | |
| | | |
| | | |
| | | SCO 生命周期修复 |
| | | |
高通(oss.qualcomm.com)是最大来源,贡献集中在 btintel 驱动和 HCI 核心层。Pauli Virtanen 的 26 封邮件几乎全部围绕 ISO/hci_sync 安全,是本周独立贡献的最大头。
📁 子系统热点
| | |
|---|
| | SCI 新功能 + discovery state 竞态修复 |
| | Pauli 11片 UAF/锁修复 + Jiale Yao UAF |
| | diagnostics 修复 + HCI helper 重构 |
| | 双线程安全修复(double-free + 序列化) |
| | Pauli 7片 conn refcounting 系列 |
| | DECLARE_FLEX_ARRAY 重构 + 短读修复 |
🏷️ 主线补丁系列(本周值得合并关注的)
| | | |
|---|
| hci_conn: hold conn references in hci_sync tasks (7片) | | | 高 |
| ISO: fix HUP on socket release/shutdown + UAF/locking (11片) | | | 高 |
| btintel: diagnostics fix + HCI helper refactor (11片) | | | |
| | | |
| BlueZ SCI + CS procedure data | | | |
| | | |
🔮 下周关注点
- 1. Pauli Virtanen 的 ISO + hci_sync 系列是否能合入:本周最大工作量,直接影响 LE Audio 可靠性,需跟踪合并进度
- 2. SCI 功能合入与接口稳定:已到 v5,关注 maintainer 对 MGMT 接口的最终决策
- 3. SCO 修复是否被遗漏:double-free + 序列化两个修复方向都涉及 sco_conn 生命周期,合并后要验证通话稳定性
- 4. btintel diagnostics TLV 解析:Zijun Hu 的 11 片系列修改面大,关注对现有诊断工具的兼容性
- 5. BlueZ RAP/Broad Audio 路线:BCS procedure data + D-Bus 导出是 LE Audio 用户态的关键铺垫
⚠️ 风险与警示
- • ISO 栈是本周安全风险最集中区域:11 片 UAF/锁修复说明 iso_conn 的生命周期管理长期存在问题,LE Audio 相关功能上线前需重点关注
- • sco_conn 双线程安全问题:double-free 和序列化两个修复说明 SCO 路径的生命周期模型不够清晰
- • SCI 迭代到 v5 仍未合并:接口设计争议或兼容性问题,若延误可能影响蓝牙 5.4 低功耗特性的时间线
- • 多驱动共享 HCI 辅助函数重构:Zijun Hu 引入 hci_acl_handle() / hci_acl_dlen() helper 影响 hci_sync/hci_core/btusb/btintel 多处,需关注回归
核外协议栈 — BlueZ
数据来源:kernel.org bluez.git,统计周期 2026-07-23(周四)— 2026-07-29(周三)
BlueZ 侧本周有三条主线活动,正好与内核侧的蓝牙 5.4 特性同步推进:
1. CS Procedure Data 聚合 + D-Bus 导出(BlueZ v3,Naga Bhavani Akella)
- •
profiles/ranging: Emit CS ProcedureData signal over D-Bus - •
shared: Add bcs_procedure_data aggregation and procedure data API - • 配套
doc: Update ProcedureData signal doc for byte-blob format - • 意义:这是 LE Audio Connectionless Service Discovery(CSD)的用户态落地。内核侧的 CS feature 通过 D-Bus 暴露给应用层,是 LE Audio / Broadcast Audio 架构的关键一环
2. Shorter Connection Interval(SCI)用户态支持(Luiz A. von Dentz,内核 v5 同步)
- • 内核 MGMT
Load Connection Subrate 命令的 BlueZ 用户态调用 - • 意义:蓝牙 5.4 低功耗链路特性的完整打通:内核 MGMT 接口 + BlueZ 用户态参数设置
3. 其他内核侧蓝牙驱动的修复同步
- • virtio_bt build info OOB 读取修复(与内核侧同步)
- •
btintel diagnostics 修复(Zijun Hu,Qualcomm)
内核 ↔ BlueZ 联动小结:
本周内核的 ISO/hci_sync 线程安全修复 + SCI MGMT 接口 + BlueZ 的 CS procedure data 导出,形成从内核协议层到用户态的完整 LE Audio 能力链。内核侧偏重可靠性(UAF/锁),BlueZ 侧偏重功能接入(D-Bus API),两边并行推进。