Pourquoi les développeurs Android n’ont plus besoin de pilotes USB Windows
- Aux débuts de la plateforme Android, les développeurs pouvaient connecter leurs appareils via un câble USB sous Linux ou Mac OS X, mais les utilisateurs de Windows devaient chercher et installer un pilote.
- Aujourd’hui, ce n’est plus nécessaire.
USB pilotes / OS 101
- Lorsqu’un périphérique USB est branché sur un port, le système d’exploitation examine la hiérarchie des descripteurs USB et doit charger un pilote pour l’interface.
- La plupart des périphériques USB sont pris en charge automatiquement grâce aux pilotes intégrés de type « Device Class » inclus dans le système d’exploitation.
- Windows charge un pilote installé par l’utilisateur s’il ne trouve pas de pilote « Device Class » intégré ou s’il en existe un meilleur.
Pourquoi cela ne fonctionnait pas
- Si aucun pilote n’est trouvé, Linux charge usbfs et Mac OS charge IOKit afin de permettre aux programmes en espace utilisateur d’accéder au périphérique.
- Windows signalait une erreur et ne chargeait pas de pilote, ce qui empêchait l’accès à l’appareil Android.
Pourquoi cela fonctionnait avec le pilote Android
- Pour comprendre ce qui se passe lors de l’installation d’un pilote, l’article examine
android_winusb.inf, le « cerveau » du pilote USB Google.
- WinUSB est un pilote USB similaire à usbfs sous Linux et à IOKit sous Mac OS, qui permet aux programmes en espace utilisateur d’énumérer les interfaces et de lire/écrire sur les endpoints.
Pourquoi les appareils Android n’ont plus besoin de pilote Windows
- L’ancienne méthode avait un défaut évident : si le VID/PID de l’appareil Android ne figurait pas dans la liste,
winusb n’était pas chargé.
- Windows 8 a introduit une meilleure méthode qu’un fichier INF : demander directement au périphérique le pilote nécessaire pour l’interface.
- Si l’appareil est compatible avec les Microsoft OS Descriptors (MOD), Windows demande alors l’Extended Compat ID OS Feature Descriptor.
- Cela permet de charger
winusb.sys, puis à l’exécutable en espace utilisateur adb d’ouvrir l’appareil, de réclamer l’interface et de permettre au développeur de commencer à travailler.
Quels appareils prennent en charge les Microsoft OS Descriptors
- D’après les appareils Pixel possédés par l’auteur, la prise en charge de MOD semble être apparue entre le Pixel 2 (2017) et le Pixel 3a (2019).
Extended Properties OS Feature Descriptor
- Des appareils plus récents, comme le Pixel 8, disposent aussi d’un Extended Properties OS Feature Descriptor, qui peut inclure un GUID, une page d’aide, une URL, voire une icône.
L’avis de GN⁺
- Le point essentiel de cet article est que les appareils Android peuvent désormais être utilisés pour le développement sous Windows sans installation séparée de pilote.
- L’introduction des Microsoft OS Descriptors et de l’Extended Compat ID OS Feature Descriptor a nettement amélioré l’expérience utilisateur.
- Ce changement apporte plus de confort aux développeurs Android et contribue à rendre l’environnement de développement plus accessible.
1 commentaires
Commentaires Hacker News
L’intérêt d’ADB (Android Debug Bridge)
Début de la prise en charge du MOD (Modern Operating Devices) sur les appareils Pixel
Pilote Windows Precision Touchpad
Évolution des pilotes ADB
.infpour chaque nouvel appareil, mais depuis Windows 8, l’appareil peut indiquer le pilote nécessaire via les Microsoft OS Descriptors.Problèmes des pilotes USB sous Windows
Critique de l’ajout de descripteurs USB propriétaires à Microsoft
Expérience de résolution de problèmes avec ADB
Expérience d’utilisation du protocole HID