超宽带 (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 实现组成。
图 1. UWB 堆栈架构
模块边界
模块代码位于以下位置
UWB 主线 Apex:
com.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 运行时权限强制执行的核心框架。