Avant de compiler, mettre à jour ENABLE_DEBUG_LOGGING dans msvc\config.h.
Pour compiler, exécuter en ligne de commande :
CALL "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" msbuild -p:PlatformToolset=v143,Platform=x64,Configuration=Release msvc\libusb.sln
Tout le système de build est dans le dossier android/jni. Avant de compiler, mettre à jour :
APP_ABI et APP_PLATFORM dans android/jni/Application.mk.include $(BUILD_SHARED_LIBRARY) / include $(BUILD_STATIC_LIBRARY) dans android/jni/libusb.mk et android/jni/examples.mkENABLE_DEBUG_LOGGING dans android/config.hPour lancer la compilation depuis Windows, exécuter en ligne de commande :
cd ...\android\jni
..\Android\Sdk\ndk\25.1.8937393\ndk-build.cmd
Pour utiliser libusb, il faut que Windows utilise WinUsb et non le driver générique (USB Generic Parent Driver / Usbccgp.sys) ou un autre driver propriétaire.
Attention, forcer l'utilisation de WinUsb nécessite d'autoriser l'installation de driver non signé. Pour cela, suivre la procédure pour démarrer en mode Désactiver le contrôle obligatoire des signatures de pilotes. C'est comme pour démarrer en mode sans échec mais en sélectionnant l'option 7 à la place de 4. Démarrer Windows 11 en mode sans échec Archive du 20/10/2021 le 13/10/2022
Il faut aussi créer le fichier .inf qui permettra d'installer le driver WinUsb. Installation de WinUSB (Winusb.sys) pour les développeurs Archive du 21/09/2022 le 13/10/2022
Prendre le premier exemple dans la documentation et l'enregistrer avec l'extension .inf.
Il faut changer :
GUID dans la section Dev_AddReg en bas du fichier. Ne pas toucher à la partie en haut du fichier. Pour générer aléatoirement un GUID, il est possible d'utiliser l'outil guidgen.exe (fournit avec Visual Studio Installer).VID et PID dans la section Standard.NTamd64. Pour obtenir les valeurs, aller dans le Gestionnaire de périphérique, faire un clique-droit sur le composant USB, Propriétés. Aller dans l'onglet Détails et sélectionner la 2ème ligne Chemin d'accès à l'instance du périphérique. La valeur USB\VID_0408&PID_5441\200901010001 contient le VID et le PID.DeviceName dans le champ Strings pour donner le nom d'apparition dans le Gestionnaire de périphériques.
Vérifier le fichier .inf avec l'outils InfVerif.exe (fournit avec Visual Studio Installer, option Windows driver kit).
Commencer par ouvrir le gestionnaire de périphérique et vérifier quel est le driver en cours d'utilisation.
Attention, le driver est déclaré 2 fois. Une première fois par FTDI FT601 USB 3.0 Bridge Device et une seconde fois en Périphérique USB composite.
Ici, c'est bien le Périphérique USB composite qui faut mettre à jour. Bien vérifier le VID/PID afin de modifier le driver au bon périphérique.
Faire clique droit et Mettre à jour le pilote et suivre la procédure. Bien utiliser l'option Choisir parmi une liste de pilotes disponibles sur mon ordinateur. Si vous choisissez l'autre option (Rechercher les pilotes à cet emplacement), Windows risque de vous répondre que le driver est à jour et refusera d'installer WinUSB.
Ensuite vérifier que le driver est bien passé dans la rubrique Périphérique Universal Serial Bus.