API USB Port Reset

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

L'HAL USB supporta l'API di ripristino della porta USB, che richiede l'HAL USB 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.

Trovare 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, utilizza 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, utilizza il seguente percorso:

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

  3. Per trovare le API, utilizza il seguente percorso per individuarle 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

Implementa l'HAL USB

Per utilizzare l'API USB HAL, implementa:

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

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

Comprendere l'architettura dell'API USB HAL

L'API USB HAL è 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 reimpostazione della porta USB

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

Flusso di codice API di esempio per il reinserimento della porta USB

Figura 1.1: flusso del codice API di reinserimento della porta USB di esempio.

Convalidare l'implementazione

Ogni versione di USB HAL e la relativa API sono associate a uno scenario di test in Vendor Test Suite (VTS).

API di reimpostazione della porta USB

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

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

Lo scenario di test VTS per USB HAL v1.2 è uno scenario di test lato host che puoi utilizzare per eseguire queste azioni.

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

  • Verifica che il dispositivo in test (DUT) possa disconnettersi e riconnettersi.