
Pilote Linux libfprint pour le lecteur d'empreintes digitales USB Focal-systems FT9201 (2808:93a9) — exécute le moteur de correspondance Windows de FocalTech nativement sous Linux, sans Wine. Inclut une méthode pour porter d'autres lecteurs réservés à Windows Hello.
Prise en charge des empreintes digitales sous Linux pour le lecteur USB Focal-systems FT9201
(2808:93a9, vendu comme un dongle Windows Hello autonome), en tant que pilote
libfprint.
Le capteur est un minuscule lecteur optique 96×96. Le comparateur intégré de libfprint fait
un mauvais travail sur une image aussi petite, donc ce pilote réutilise plutôt le propre moteur de correspondance de FocalTech
— le ftWbioEngineAdapter.dll de leur pilote Windows signé —
en l'exécutant nativement sous Linux avec un petit chargeur PE en processus. Pas de Wine,
pas de Windows, pas de cloud.
Ce dépôt est aussi une méthode réutilisable, pas seulement un pilote. La technique — exécuter le moteur de correspondance Windows d'un fabricant nativement sous Linux, sans Wine — se généralise à d'autres lecteurs « Windows Hello uniquement », y compris ceux qui embarquent un canal sécurisé SDCP (les capteurs crypto de classe Synaptics/Goodix/ELAN/EgisTec), via le module optionnel
src/crypto_shims.c. Le FT9201 est l'exemple pratique ; le chargeur en processus, le pont WinBio et la couche de contournement crypto sont réutilisables pour le prochain périphérique. Voir PORTING.md pour la méthode pas à pas et ce qui peut être réutilisé tel quel.
Fonctionne de bout en bout sur du matériel réel : inscription et vérification via fprintd /
outils en ligne de commande, et dans KDE/GNOME une fois installé. Il fait correspondre votre doigt
en utilisant le véritable algorithme du fabricant.
Développé et testé avec
ce lecteur exact (ASIN B0DK7LQZGH) —
la variante FT9348W du 2808:93a9.
Limitations :
2808:93a9.ft_engine.c est un chargeur d'environ 450 lignes qui mappe ftWbioEngineAdapter.dll en
mémoire, fournit les ~90 fonctions kernel32 qu'il importe, configure un faux
TEB Windows, et appelle l'interface WinBio du moteur pour l'inscription/vérification.MemoryDenyWriteExecute par défaut de fprintd — vous n'avez pas à
désactiver de paramètres de sécurité.Voir docs/how-it-works.md pour le compte rendu technique complet.
Outils de compilation + dépendances de construction de libfprint. Sur Fedora/Nobara :
sudo dnf install git meson ninja-build gcc cabextract python3 \
glib2-devel gusb-devel nss-devel pixman-devel gobject-introspection-devel \
libgudev-devel systemd-devel
(Debian/Ubuntu : les équivalents — libglib2.0-dev libgusb-dev libnss3-dev libpixman-1-dev libgudev-1.0-dev libsystemd-dev, plus cabextract.)
git clone https://github.com/OMGrant/ft9201-libfprint
cd ft9201-libfprint
scripts/fetch-blobs.sh # récupérer la DLL du fabricant + le firmware MCU (voir note ci-dessous)
scripts/build.sh # cloner libfprint épinglé, greffer le pilote, construire
Essayez sans rien installer :
FT9201_ENGINE_DLL=$PWD/blobs/ftWbioEngineAdapter.dll \
LD_LIBRARY_PATH=libfprint/build/libfprint \
libfprint/build/examples/enroll
Installez-le pour KDE/GNOME/connexion (côte à côte ; la bibliothèque libfprint de votre distribution est laissée intacte, aucun durcissement désactivé) :
sudo scripts/install.sh
fprintd-enroll
Tout annuler : sudo scripts/install.sh --uninstall.
Ce dépôt ne contient aucun binaire propriétaire. Deux fichiers appartiennent à FocalTech et sont
récupérés depuis des sources publiques existantes lors de la construction par scripts/fetch-blobs.sh :
| Fichier | Ce que c'est | D'où ça vient |
|---|
Si l'une des URL de téléchargement a changé, vous n'avez besoin que de ces deux fichiers :
ftWbioEngineAdapter.dll — recherchez sur le Catalogue Microsoft Update
« FocalTech Electronics Biometric » (pilote 1.0.3.58, correspondant à l'ID matériel
USB\VID_2808&PID_93A9). Téléchargez le .cab, extrayez-le avec cabextract et
placez ftWbioEngineAdapter.dll dans blobs/.FOCALFP_9348_FW_APP (par exemple depuis ft9201-static) et lancez
python3 scripts/extract-firmware.py <ce-libfprint-2.so> src/ft9201_fw.h.Ensuite, relancez scripts/build.sh.
La méthode réutilisable et le chemin pour les capteurs crypto s'appuient également sur les travaux de :
Ce n'est pas la seule approche — les alternatives diffèrent principalement par comment elles réutilisent le comparateur de FocalTech (elles le font toutes ; le minuscule capteur exclut la correspondance générique).
9338 → 93a9).
.deb, patcher deux
octets, pas de rétro-ingénierie. Mais elle nécessite libfprint compatible TOD
(famille Debian/Ubuntu ; pas sur Fedora/Arch standard), elle remplace toute votre
libfprint système par une ancienne construction entièrement fermée, et vous devez lutter
contre le gestionnaire de paquets pour la garder épinglée. Ce projet livre plutôt un pilote
ouvert, s'installe côte à côte (la libfprint de votre distribution est intacte),
fonctionne sur libfprint standard sans TOD, et ne charge que la DLL du comparateur
propriétaire isolée — c'est ce que la rétro-ingénierie a apporté.Le pilote Linux TOD propriétaire que ces paquets .deb/RPM redistribuent semble avoir été
une version FocalTech/GPD pour le GPD Win 4 qui a ensuite été retirée de la distribution
officielle — c'est pourquoi elle ne survit aujourd'hui que sous forme de réhébergements
communautaires. (Notez aussi que certains GPD Win 4 sont livrés avec un capteur entièrement
différent, un Chipsailing CS9711, et non cette pièce FocalTech.)
1c7a:0577), un autre
lecteur « Windows Hello uniquement » de type presse (capteur actif 52×72). Fabricant
et protocole USB différents, mais la même forme correspondance sur l'hôte : son pack Windows
contient une DLL d'adaptateur de moteur fabricant (EgisTouchFPEngine0577.dll, sans enclave VBS),
donc la méthode décrite dans PORTING.md s'y applique aussi.Le pilote et le chargeur (src/, scripts/) sont sous LGPL-2.1-ou-ultérieure, en
accord avec libfprint. La DLL et le firmware FocalTech sont leur propre propriété et ne sont
pas distribués ici — vous les récupérez vous-même. Ce projet est un outil d'interopérabilité
pour du matériel que vous possédez ; il n'inclut ni ne relicencie aucun code FocalTech.
ftWbioEngineAdapter.dll | le moteur de correspondance | Le pilote Windows signé de FocalTech sur le Catalogue Microsoft Update |
Firmware MCU FT9348W (src/ft9201_fw.h) | Firmware 8051 exécuté par le capteur | extrait (symbole FOCALFP_9348_FW_APP) du binaire public ft9201-static |