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.
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/
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
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:
Corrija la versión USB HAL. No se requiere ninguna implementación de interfaz de usuario del sistema.
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.
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.