Android 13 で導入された超広帯域無線(UWB)モジュールには、FIRA が定義した CSML 仕様に基づく 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.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 インタラクションのための Bluetooth スタック。
- すべての安全なサービスのインタラクションのためのセキュア エレメント。
- UWB ランタイム権限の適用のためのコア フレームワーク。