UWB

超宽带 (UWB) 模块在 Android 13 中引入,包含 HAL 接口之上的 UWB 堆栈,该堆栈基于 FiRa 规范。

UWB 模块为设备制造商提供以下优势

  • 适用于支持 UWB 设备的完整 Android 原生 UWB 堆栈
  • 提升 Android 生态系统中 UWB 的质量和互操作性
  • 更快、更灵活地支持新的 FiRa 用例和规范更新

详细信息

以下是 UWB 模块的详细信息

  • 在 Android 13 的 AOSP 中包含完整的 UWB 堆栈,该堆栈使用 FiRa 定义的 UCI 规范作为 HAL 接口。
  • 允许系统应用配置自定义配置文件。
  • 包含系统 API 表面,允许系统应用在其测距会话中使用自定义配置文件。
  • 包含用于公开 RRO 的基础架构,设备制造商可以使用这些 RRO 来自定义堆栈的行为。

UWB 堆栈架构

UWB 堆栈由 UWB 主线模块和 UWB 芯片供应商提供的 HAL 实现组成。

UWB stack architecture diagram

图 1. UWB 堆栈架构

模块边界

模块代码位于以下位置

  • UWB 主线 Apexcom.android.uwb

    • UWB API 表面 (Java)

      • 代码位置: packages/modules/Uwb/framework
      • 进程: <bootclasspath>
    • UwbService (Java)

      • 代码位置: packages/modules/Uwb/service
      • 进程: system_server
    • Uwb 原生堆栈 (C++/Rust)

      • 代码位置: external/uwb
      • 进程: system_server
  • HAL 接口和实现 (C++)

    • 接口代码位置: hardware/interfaces/uwb
    • 实现代码位置: vendor/<vendor-name>/uwb
    • 进程: <vendor defined>

包格式

UWB 模块 (com.google.android.uwb) 使用 APEX 格式。

依赖项

UWB 主线模块依赖于以下各项

  • 来自 UWB 芯片供应商的 HAL 实现。
  • 用于所有 OOB 交互的蓝牙堆栈。
  • 用于所有安全服务交互的安全元件。
  • 用于 UWB 运行时权限强制执行的核心框架。