API de restablecimiento de puerto USB

Para admitir la API de capa de abstracción de hardware (HAL) USB, los fabricantes de dispositivos deben implementar la versión HAL USB correspondiente. Para usar la API USB HAL, se requiere una aplicación con privilegios del sistema.

USB HAL admite la API de restablecimiento de puerto USB, que requiere USB HAL v2.0 y está disponible para dispositivos con Android 13 y superior. Utilice esta API para restablecer la conexión USB con el host conectado.

Encuentre el USB HAL y sus API

Los fabricantes de dispositivos deben implementar USB HAL para admitir las API.

  1. Para encontrar la implementación predeterminada de USB HAL, use las siguientes rutas:

    Versión AIDL (más reciente): <aosp>/hardware/interfaces/usb/gadget/1.2/default/

  2. Para encontrar el archivo de encabezado de la interfaz de hardware, use la siguiente ruta:

    Versión AIDL (más reciente): <aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal

  3. Para encontrar las API, use la siguiente ruta para ubicar las API en el archivo de encabezado AIDL. Esta ruta también es el punto de entrada de Android Framework para la API:

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

Implementar el USB HAL

Para trabajar con la API USB HAL, implemente:

  1. Corrija la versión USB HAL. No se requiere ninguna implementación de interfaz de usuario del sistema.

  2. USB AIDL HAL para la API de restablecimiento del puerto USB al restablecer la conexión USB entre el dispositivo de destino y el host.

Comprender la arquitectura API USB HAL

La API USB HAL está integrada en el paquete android.hardware.usb y aprovecha la HAL USB para interactuar con el dispositivo. En la siguiente figura se proporcionan detalles sobre la arquitectura de la API.

API de restablecimiento de puerto USB

La siguiente figura ilustra el flujo de código de la API de restablecimiento de puerto USB en un marco, incluida la implementación de USB HAL.

Ejemplo de flujo de código API para restablecer el puerto USB

Figura 1.1 Ejemplo de flujo de código API de restablecimiento de puerto USB.

Valide su implementación

Cada versión de USB HAL y su API correspondiente se asocia con un caso de prueba en Vendor Test Suite (VTS).

API de restablecimiento de puerto USB

Para encontrar el caso de prueba de VTS para la API de restablecimiento de puerto USB, vaya a:

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

El caso de prueba VTS para USB HAL v1.2 es un caso de prueba del lado del host que puede usar para realizar estas acciones.

  • Para invocar la API de restablecimiento del puerto USB, use el comando adb shell ( #svc usb resetUsbPort ).

  • Confirme que el dispositivo bajo prueba (DUT) puede desconectarse y volver a conectarse.