A simple tool that helps initializing Validity fingerprint readers under linux, loading their binary firmware and initializing them.
This tool currently only supports these sensors:
Which are present in various ThinkPad and HP laptops.
These devices communicate with the laptop via an encrypted protocol and they need to be paired with the host computer in order to work and compute the TLS keys. Such initialization is normally done by the Windows driver, however thanks to the amazing efforts of Viktor Dragomiretskyy (uunicorn), and previously of Nikita Mikhailov, we have reverse-engineerd the pairing process, and so it's possible to do it under Linux with only native tools as well.
The procedure is quite simple:
Here's some output example:
$ sudo validity-sensors-tools.initializer Found device <DEVICE ID 138a:0090 on Bus 001 Address 048> Downloading https://download.lenovo.com/pccbbs/mobiles/n1cgn08w.exe to extract 6_07f_Lenovo.xpfwext Extracting "Synaptics Metallica MOH Touch Fingerprint Reader Driver" - setup data version 5.5.7 - "app/WBF_Drivers/6_07f_Lenovo.xpfwext" Done. Found firmware at /tmp/tmpq54yeu6a/app/WBF_Drivers/6_07f_Lenovo.xpfwext The device will be now reset to factory and associated to the current laptop. Press Enter to continue (or Ctrl+C to cancel)... Opening device 0x90 Factory reset... Sleeping... Pairing the sensor with device 20FWCTO1WW Opening device 0x90 Initializing flash... Detected Flash IC: W25Q80B, 1048576 bytes Sleeping... Opening device 0x90 Clean slate Uploading firmware... Sensor: VSI 55E FM72-002 Loaded FWExt version 1.0 (Tue Nov 8 10:05:20 2016), 6 modules Sleeping... Opening device 0x90 Calibrating, re-using calib-data.bin, if any... Sensor: VSI 55E FM72-002 FWExt version 1.0 (Tue Nov 8 10:05:20 2016), 6 modules len=131480 Calibration data saved at /tmp/tmp7u2llp9z/calib-data.bin Init database... Creating a new user storage object Creating a host machine GUID record That's it, pairing with <DEVICE ID 138a:0090 on Bus 001 Address 048> finished May the leds be with you (in 5 seconds)...!
You can test whether the pairing has been successfully by launching the command
For 138a:0097 it's also possible to enroll fingers in the internal storage doing:
validity-sensors-tools.enroll --finger-id [0-9]
Once the chip is paired with the computer via this tool, it's possible to use it in libfprint using the driver at
Generate an embeddable card to be shared on external websites.
Choose your Linux distribution to get detailed installation instructions. If yours is not shown, get more details on the installing snapd documentation.
Is there a problem with Validity fingerprint Sensors Linux tools? Report this app
Thanks for bringing this to our attention. Information you provided will help us investigate further.
There was an error while sending your report. Please try again later.