USB Port Reset API

USB Hardware Abstraction Layer(HAL)API をサポートするためには、デバイス メーカーで対応する USB HAL バージョンを実装する必要があります。USB HAL API を使用するには、システム特権アプリが必要です。

USB HAL は、USB HAL v2.0 を必要とする USB Port Reset API をサポートしており、Android 13 以降を搭載したデバイスで利用できます。この API を使用して、接続したホストを使用する USB 接続をリセットします。

USB HAL とその API の確認

デバイス メーカーは、API をサポートするために、USB HAL を実装する必要があります。

  1. USB HAL のデフォルト実装を確認するには、以下のパスを使用します。

    バージョン AIDL(最新): <aosp>/hardware/interfaces/usb/gadget/1.2/default/

  2. ハードウェア インターフェースのヘッダー ファイルを確認するには、以下のパスを使用します。

    バージョン AIDL(最新): <aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal

  3. API を確認するには、以下のパスを使用して AIDL ヘッダー ファイルで API を見つけます。このパスは、この API の Android フレームワーク エントリ ポイントでもあります。

    android.hardware.usb: <aosp>/core/java/android/hardware/usb

USB HAL の実装

USB HAL API を使用するには、以下を実装します。

  1. 正しい USB HAL バージョン。システム UI を実装する必要はありません。

  2. USB Port Reset API の USB AIDL HAL。ターゲット デバイスとホストとの間の USB 接続をリセットします。

USB HAL API のアーキテクチャについて

USB HAL API は android.hardware.usb パッケージに組み込まれており、USB HAL を利用してデバイスとやり取りします。この API のアーキテクチャについての詳細を以下の図に示します。

USB Port Reset API

下の図は、フレームワーク内の USB Port Reset API のコードフローを示しています。これには、USB HAL の実装も含まれています。

USB Port Reset API コードフローのサンプル

図 1.1 USB Port Reset API コードフローのサンプル

実装の検証

各 USB HAL バージョンと対応する API は、ベンダー テストスイート(VTS)のテストケースに関連付けられています。

USB Port Reset API

USB Port Reset API の VTS テストケースを見つけるには、次にアクセスします。

<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/

USB HAL v1.2 向けの VTS テストケースは、これらのアクションを実行するために使用できるホスト側のテストケースです。

  • USB Port Reset API を起動するには、adb shell コマンド(#svc usb resetUsbPort)を使用します。

  • テスト対象デバイス(DUT)で接続解除と再接続ができることを確認します。