Implementazione dell'API di ripristino della porta USB

L'API USB Port Reset è un'API di sistema disponibile nell'Android Open Source Project (AOSP) per dispositivi con Android 11 o versioni successive. Usalo per ripristinare la connessione del gadget USB con l'host connesso. Per supportare l'API USB Port Reset, i produttori di dispositivi devono implementare USB Gadget HAL V1.1. Per utilizzare l'API USB Port Reset, è necessaria un'app con privilegi di sistema.

Trovare USB Gadget HAL v1.1 e API di ripristino della porta USB

I produttori di dispositivi devono implementare USB Gadget HAL v1.1 per supportare l'API USB Port Reset.

  1. Per trovare l'implementazione predefinita di USB Gadget HAL v.1.1, utilizzare il seguente percorso: <aosp>/hardware/interfaces/usb/gadget/1.1/default/
  2. Per trovare il file di intestazione interfaccia hardware, utilizzare il seguente percorso: <aosp>/hardware/interfaces/usb/gadget/1.1/IUsbGadget.hal
  3. Per trovare l'API USB Port Reset, utilizzare questo percorso per individuare l'API nel file di intestazione AIDL. Questo percorso è anche il punto di ingresso di Android Framework per l'API USB Port Reset:
    <aosp>/core/java/android/hardware/usb

Implementazione del gadget HAL v1.1

Per supportare l'API USB Port Reset, è necessario implementare USB Gadget HAL v1.1. Non è richiesta alcuna implementazione dell'interfaccia utente del sistema. Per implementare USB v1.1 Gadget HAL per porta USB reset API, reimpostare la connessione USB tra il dispositivo di destinazione e l'host.

Flusso del codice 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 di USB Gadget HAL.

API di ripristino USB

Port flusso di codice reset API Figura 1. Esempio USB

Convalida

Segui questo percorso per trovare il test case VTS implementato per l'API USB Port Reset:

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

Il test case VTS per USB Port Reset API è un test case lato host che consente di eseguire le seguenti azioni:

  • Invocare la porta USB reset API usando adb shell comando ( #svc usb resetUsbGadget ).
  • Verificare se il dispositivo in prova (DUT) può disconnettersi e riconnettersi.