UWB

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

UWB 模块可为设备制造商带来以下好处:

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

详细信息

UWB 模块的详细信息如下:

  • Android 13 中的 AOSP 中包含完整的 UWB 堆栈,该堆栈使用 FiRa 定义的 UCI 规范作为 HAL 接口。
  • 支持系统应用配置自定义配置文件。
  • 包含一个系统 API Surface,支持系统应用在其范围确定会话中使用自定义配置文件。
  • 包含用于公开 RRO 的基础架构,设备制造商可以使用 RRO 自定义堆栈的行为。

UWB 堆栈架构

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

UWB 堆栈架构图

图 1. UWB 堆栈架构

模块边界

模块代码位于以下位置:

  • UWB Mainline Apexcom.android.uwb

    • UWB API Surface (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 Mainline 模块依赖于以下各项:

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