Per supportare l'API USB Hardware Abstraction Layer (HAL), i produttori di dispositivi devono implementare la versione USB HAL 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 l'HAL USB 2.0 ed è disponibile per i dispositivi con Android 13 e versioni successive. Utilizza questa API per reimpostare la connessione USB con l'host collegato.
Trovare l'HAL USB e le relative API
I produttori di dispositivi devono implementare l'HAL USB per supportare le API.
Per trovare l'implementazione predefinita dell'HAL USB, utilizza i seguenti percorsi:
Versione AIDL (più recente):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
Per trovare il file dell'intestazione dell'interfaccia hardware, utilizza il seguente percorso:
Versione AIDL (ultima):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
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 lavorare con l'API USB HAL, implementa:
Versione corretta dell'HAL USB. Non è richiesta l'implementazione dell'interfaccia utente di sistema.
HAL AIDL USB per l'API USB Port Reset reimpostando la connessione USB tra il dispositivo di destinazione e l'host.
Informazioni sull'architettura dell'API HAL USB
L'API USB HAL è integrata nel pacchetto android.hardware.usb
e utilizza l'API USB HAL per interagire con il dispositivo. I dettagli sull'architettura dell'API sono riportati nella figura seguente.
API USB Port Reset
La figura seguente illustra il flusso di codice dell'API USB Port Reset in un framework, inclusa l'implementazione dell'HAL USB.
Figura 1.1 Esempio di flusso di codice dell'API di reinserimento della porta USB.
Convalidare l'implementazione
Ogni versione USB HAL e la relativa API sono associate a uno scenario di test nella suite di test del fornitore (VTS).
API USB Port Reset
Per trovare lo scenario di test VTS per l'API USB Port Reset, 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 USB Port Reset, utilizza il comando
adb shell
(#svc usb resetUsbPort
).Verifica che il dispositivo in prova (DUT) possa scollegarsi e ricollegarsi.