Android 13 で導入された超広帯域無線(UWB)モジュールには、FiRa の仕様に基づく UWB スタックが HAL インターフェースの上に含まれています。
UWB モジュールには、デバイス メーカーにとって次のようなメリットがあります。
- UWB 対応デバイスで使用できる完全な Android ネイティブ UWB スタック
 - Android エコシステム全体での UWB の品質と相互運用性の向上
 - 新しい FiRa のユースケースと仕様の更新に対する、より迅速かつ柔軟なサポート
 
詳細
UWB モジュールの詳細は次のとおりです。
- Android 13 の AOSP に、FiRa が定義した UCI 仕様を HAL インターフェースとして使用する完全な UWB スタックが含まれます。
 - システムアプリにカスタム プロファイルのプロビジョニングを許可します。
 - システムアプリが圏内のセッションでカスタム プロファイルを使用できるようにするシステム API サーフェスが含まれます。
 - デバイス メーカーがスタックの動作をカスタマイズするために使用できる、RRO を公開するためのインフラストラクチャが含まれます。
 
UWB スタックのアーキテクチャ
UWB スタックは、UWB メインライン モジュールと、UWB チップベンダーが提供する HAL 実装で構成されています。
 
図 1. UWB スタックのアーキテクチャ
モジュールの境界
モジュール コードは次の場所にあります。
UWB Mainline Apex:
com.android.uwbUWB 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 インタラクションのための Bluetooth スタック。
 - すべての安全なサービスのインタラクションのためのセキュア エレメント。
 - UWB ランタイム権限の適用のためのコア フレームワーク。