API de restablecimiento de puerto USB

Para admitir la API de la capa de abstracción de hardware (HAL) USB, los fabricantes de dispositivos deben implementar la versión USB HAL correspondiente. Para utilizar 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 versiones posteriores. 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, utilice 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, utilice la siguiente ruta:

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

  3. Para encontrar las API, utilice la siguiente ruta para ubicar las API en el archivo de encabezado AIDL. Esta ruta es también 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. Versión correcta de 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 restableciendo 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 el USB HAL para interactuar con el dispositivo. En la siguiente figura se proporcionan detalles sobre la arquitectura de la API.

API de reinicio de puerto USB

La siguiente figura ilustra el flujo de código de la API de restablecimiento del 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 está asociada con un caso de prueba en Vendor Test Suite (VTS).

API de reinicio de puerto USB

Para encontrar el caso de prueba VTS para la API de restablecimiento del 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 utilizar para realizar estas acciones.

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

  • Confirme que el dispositivo bajo prueba (DUT) pueda desconectarse y volverse a conectar.