USB Port Reset API

USB ハードウェア アブストラクション レイヤー (HAL) API をサポートするには、デバイス メーカーは対応する USB HAL バージョンを実装する必要があります。 USB HAL API を使用するには、システム権限のあるアプリが必要です。

USB HAL は、USB HAL v2.0 を必要とする USB ポート リセット 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 接続をリセットする USB ポート リセット API 用の USB AIDL HAL。

USB HAL API アーキテクチャを理解する

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

USBポートリセットAPI

次の図は、USB HAL の実装を含む、フレームワークにおける USB ポート リセット API のコード フローを示しています。

USB ポート再装着 API コード フローのサンプル

図 1.1 USB ポート再装着 API コード フローの例。

実装を検証する

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

USBポートリセットAPI

USB ポート リセット API の VTS テスト ケースを見つけるには、次の場所に移動します。

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

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

  • USB ポート リセット API を呼び出すには、 adb shellコマンド ( #svc usb resetUsbPort ) を使用します。

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