Validity fingerprint Sensors Linux tools

Install latest/stable of Validity fingerprint Sensors Linux tools

Ubuntu 16.04 or later?

Make sure snap support is enabled in your Desktop store.

Install using the command line

sudo snap install validity-sensors-tools

Don't have snapd? Get set up for snaps.

Channel Version Published

A Linux tool to flash and pair Validity fingerprint sensors 009x

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:

  • 138a:0090 Validity Sensors, Inc. VFS7500 Touch Fingerprint Sensor
  • 138a:0097 Validity Sensors, Inc.

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:

  • Device is factory-reset and its flash repartitioned
  • A TLS key is negotiated, generated via host hw ID and serial
  • Windows driver is downloaded from Lenovo to extract the device firmware
  • The device firmware is uploaded to the device
  • The device is calibrated

Here's some output example:

$ sudo validity-sensors-tools.initializer
Found device <DEVICE ID 138a:0090 on Bus 001 Address 048>
Downloading 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"
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...
Pairing the sensor with device 20FWCTO1WW
Opening device 0x90
Initializing flash...
Detected Flash IC: W25Q80B, 1048576 bytes
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
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
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 sudo validity-sensors-tools.led-test

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

Details for Validity fingerprint Sensors Linux tools

  • GPL-2.0+

Last updated
  • 16 June 2020 - latest/stable
  • 19 June 2020 - latest/edge



Share this snap

Generate an embeddable card to be shared on external websites.

Install Validity fingerprint Sensors Linux tools on your Linux distribution

Choose your Linux distribution to get detailed installation instructions. If yours is not shown, get more details on the installing snapd documentation.

Where people are using Validity fingerprint Sensors Linux tools

Is there a problem with Validity fingerprint Sensors Linux tools? Report this app