Android 13 で導入されたウルトラ ワイドバンド (UWB) モジュールには、FIRA 定義の CSML 仕様に基づく HAL インターフェースの上に UWB スタックが含まれています。
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 メインライン Apex :
com.android.uwb
UWB API サーフェス (Java)
- コードの場所:
packages/modules/Uwb/framework
- プロセス:
<bootclasspath>
- コードの場所:
Uwb サービス (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 ランタイムのアクセス許可を適用するためのコア フレームワーク。