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 USB HAL, une application privilégiée du système est requise.
Le HAL USB est compatible avec l'API USB Port Reset, 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 version) :
<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 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 mise en œuvre de l'UI du 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 exploite 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 USB Port Reset 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 le HAL USB v1.2 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.