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