API di ripristino della porta USB

Per supportare l'API HAL (Hardware Abstraction Layer) USB, i produttori di dispositivi devono implementare la versione HAL USB corrispondente. Per utilizzare l'API HAL USB, è necessaria un'app con privilegi di sistema.

L'HAL USB supporta l'API USB Port Reset, che richiede USB HAL v2.0 ed è disponibile per i dispositivi con Android 13 e versioni successive. Utilizza questa API per reimpostare la connessione USB con l'host connesso.

Trova l'HAL USB e le relative API

I produttori di dispositivi devono implementare l'HAL USB per supportare le API.

  1. Per trovare l'implementazione predefinita di USB HAL, utilizzare i seguenti percorsi:

    Versione AIDL (più recente): <aosp>/hardware/interfaces/usb/gadget/1.2/default/

  2. Per trovare il file di intestazione dell'interfaccia hardware, utilizzare il seguente percorso:

    Versione AIDL (più recente): <aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal

  3. Per trovare le API, utilizzare il seguente percorso per individuare le API nel file di intestazione AIDL. Questo percorso è anche il punto di ingresso di Android Framework per l'API:

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

Implementare l'HAL USB

Per utilizzare l'API HAL USB, implementare:

  1. Versione HAL USB corretta. Non è richiesta alcuna implementazione dell'interfaccia utente del sistema.

  2. USB AIDL HAL per l'API di reimpostazione della porta USB reimpostando la connessione USB tra il dispositivo di destinazione e l'host.

Comprendere l'architettura dell'API HAL USB

L'API HAL USB è integrata nel pacchetto android.hardware.usb e sfrutta l'HAL USB per interagire con il dispositivo. I dettagli sull'architettura dell'API sono forniti nella figura seguente.

API di ripristino della porta USB

La figura seguente illustra il flusso di codice dell'API USB Port Reset in un framework, inclusa l'implementazione dell'HAL USB.

Esempio di flusso del codice API di ripristino della porta USB

Figura 1.1 Esempio di flusso del codice API di ripristino della porta USB.

Convalida la tua implementazione

Ogni versione HAL USB e la relativa API corrispondente sono associate a un test case nella Vendor Test Suite (VTS).

API di ripristino della porta USB

Per trovare il test case VTS per l'API di ripristino della porta USB, vai a:

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

Il test case VTS per USB HAL v1.2 è un test case lato host che puoi utilizzare per eseguire queste azioni.

  • Per richiamare l'API di ripristino della porta USB, utilizzare il comando adb shell ( #svc usb resetUsbPort ).

  • Confermare che il dispositivo sotto test (DUT) possa disconnettersi e riconnettersi.