
Controlador de libfprint para Linux para el lector de huellas digitales USB Focal-systems FT9201 (2808:93a9) — ejecuta el motor de coincidencia propio de FocalTech para Windows de forma nativa en Linux, sin Wine. Incluye un método para portar otros lectores exclusivos de Windows Hello.
Soporte de huellas dactilares en Linux para el lector USB Focal-systems FT9201
(2808:93a9, vendido como un dongle independiente de Windows Hello), como un
controlador de libfprint.
El sensor es un diminuto lector óptico de 96×96. El comparador incorporado de libfprint
funciona mal con una imagen tan pequeña, por lo que este controlador reutiliza el motor de comparación propio de FocalTech
— el ftWbioEngineAdapter.dll de su controlador Windows firmado —
ejecutándolo de forma nativa en Linux con un pequeño cargador PE en proceso. Sin Wine,
sin Windows, sin nube.
Este repositorio también es un método reutilizable, no solo un controlador. La técnica — ejecutar el motor de comparación de Windows de un proveedor de forma nativa en Linux, sin Wine — se generaliza a otros lectores "solo Windows Hello", incluyendo aquellos que incorporan un canal seguro SDCP (los sensores criptográficos de clase Synaptics/Goodix/ELAN/EgisTec), a través del módulo opcional
src/crypto_shims.c. El FT9201 es el ejemplo práctico; el cargador en proceso, el puente WinBio y la capa de omisión criptográfica se trasladan al siguiente dispositivo. Consulte PORTING.md para conocer el método paso a paso y qué reutilizar tal cual.
Funciona de principio a fin en hardware real: inscripción y verificación a través de fprintd /
herramientas de línea de comandos, y en KDE/GNOME una vez instalado. Reconoce su huella
usando el algoritmo real del proveedor.
Desarrollado y probado con
este lector exacto (ASIN B0DK7LQZGH) —
la variante FT9348W de 2808:93a9.
Advertencias:
2808:93a9.ft_engine.c es un cargador de ~450 líneas que mapea ftWbioEngineAdapter.dll en
memoria, proporciona las ~90 funciones kernel32 que importa, configura un TEB ficticio de Windows
y llama a la interfaz WinBio del motor para inscripción/verificación.MemoryDenyWriteExecute predeterminado de fprintd — no tiene que
desactivar ninguna opción de seguridad.Consulte docs/how-it-works.md para el informe técnico completo.
Herramientas de compilación + dependencias de compilación de libfprint. En 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: los equivalentes — libglib2.0-dev libgusb-dev libnss3-dev libpixman-1-dev libgudev-1.0-dev libsystemd-dev, más cabextract.)
git clone https://github.com/OMGrant/ft9201-libfprint
cd ft9201-libfprint
scripts/fetch-blobs.sh # obtiene la DLL del proveedor + firmware de la MCU (ver nota abajo)
scripts/build.sh # clona libfprint fijado, injerta el controlador, compila
Pruébelo sin instalar nada:
FT9201_ENGINE_DLL=$PWD/blobs/ftWbioEngineAdapter.dll \
LD_LIBRARY_PATH=libfprint/build/libfprint \
libfprint/build/examples/enroll
Instálelo para KDE/GNOME/inicio de sesión (de forma paralela; la libfprint de su distribución no se toca, no se desactiva ningún endurecimiento):
sudo scripts/install.sh
fprintd-enroll
Deshacer todo: sudo scripts/install.sh --uninstall.
Este repositorio no contiene binarios propietarios. Dos archivos son de FocalTech y se
obtienen de fuentes públicas existentes en tiempo de compilación mediante scripts/fetch-blobs.sh:
| Archivo | Qué es | De dónde viene |
|---|---|---|
ftWbioEngineAdapter.dll | el motor de comparación | Controlador Windows firmado de FocalTech en el Catálogo de Actualizaciones de Microsoft |
Firmware MCU FT9348W (src/ft9201_fw.h) | Firmware 8051 que ejecuta el sensor | extraído (símbolo FOCALFP_9348_FW_APP) del binario público ft9201-static |
Si alguna URL de descarga se ha movido, solo necesita esos dos archivos:
ftWbioEngineAdapter.dll — busque en el Catálogo de Actualizaciones de Microsoft
"FocalTech Electronics Biometric" (controlador 1.0.3.58, coincide con el ID de hardware
USB\VID_2808&PID_93A9). Descargue el .cab, extraiga con cabextract y
coloque ftWbioEngineAdapter.dll en blobs/.FOCALFP_9348_FW_APP (p. ej., de ft9201-static) y ejecute
python3 scripts/extract-firmware.py <ese-libfprint-2.so> src/ft9201_fw.h.Luego vuelva a ejecutar scripts/build.sh.
El método reutilizable y la ruta del sensor criptográfico se basan adicionalmente en el trabajo de:
No es el único enfoque — las alternativas difieren principalmente en cómo reutilizan el comparador de FocalTech (todas lo hacen; el sensor diminuto descarta la comparación genérica).