Pour prendre en charge l'API HAL (Hardware Abstraction Layer) USB, les fabricants d'appareils doivent implémenter la version HAL USB correspondante. Pour utiliser l'API HAL USB, une application disposant de droits système est requise.
Le HAL USB est compatible avec l'API de réinitialisation du port USB, qui nécessite le HAL USB v2.0 et est disponible pour les appareils équipés d'Android 13 ou version ultérieure. Utilisez cette API pour réinitialiser la connexion USB avec l'hôte connecté.
Trouver le HAL USB et ses API
Les fabricants d'appareils doivent implémenter le HAL USB pour prendre en charge les API.
Pour trouver l'implémentation par défaut du HAL USB, utilisez les chemins d'accès suivants:
Version AIDL (dernière):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
Pour trouver le fichier d'en-tête de l'interface matérielle, utilisez le chemin d'accès suivant:
Version AIDL (dernière):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
Pour trouver les API, utilisez le chemin d'accès suivant pour les localiser sous le fichier d'en-tête AIDL. Ce chemin d'accès est également le point d'entrée du framework Android pour l'API:
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
Implémenter le HAL USB
Pour utiliser l'API HAL USB, implémentez les éléments suivants:
Version correcte du HAL USB. Aucune implémentation d'UI système n'est requise.
HAL AIDL USB pour l'API de réinitialisation du port USB en réinitialisant la connexion USB entre l'appareil cible et l'hôte.
Comprendre l'architecture de l'API HAL USB
L'API HAL USB est intégrée au package android.hardware.usb
et utilise le HAL USB pour interagir avec l'appareil. Vous trouverez des informations détaillées sur l'architecture de l'API dans la figure ci-dessous.
API USB Port Reset
La figure suivante illustre le flux de code de l'API de réinitialisation du port USB dans un framework, y compris l'implémentation du HAL USB.
Figure 1.1 : Exemple de flux de code de l'API de réinsertion du port USB.
Valider votre implémentation
Chaque version du HAL USB et son API correspondante sont associées à un cas de test dans la suite de tests du fournisseur (VTS, Vendor Test Suite).
API USB Port Reset
Pour trouver le cas de test VTS de l'API USB Port Reset, accédez à:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
Le scénario de test VTS pour la version 1.2 du HAL USB est un scénario de test côté hôte que vous pouvez utiliser pour effectuer ces actions.
Pour appeler l'API de réinitialisation du port USB, utilisez la commande
adb shell
(#svc usb resetUsbPort
).Vérifiez que l'appareil sous test (DUT) peut se déconnecter et se reconnecter.