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.mk
ENABLE_DEBUG_LOGGING
dans android/config.h
Pour 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
.