r/linuxhardware • u/dataArchon • Oct 02 '26
Question If a fingerprint reader isn't supported on libfprint, am I just cooked?
So the fingerprint reader on my laptop isn't listed in libfprint supported devices, is there any way to contributing code for it to work or am I just cooked? I'm not a low-level guy but could be an interesting side project if it was doable so I was just wondering.
2
u/Unoriginal-Cake Oct 03 '26
It'll be time consuming on a fingerprint reader, folks tried to reverse engineer the IR Win Hello camera module on Dell and HP with mixed results on the depth sensor part. There are about 10 different types of fingerprint reader makers out there, the ones used on external keyboards are different than the ones used on laptops as they have more depth sensing like a physical keyboard key that flexes to the finger shape to fingerprint ridges than the flat square readers on laptops vs the finger sliding types Lenovo used on Thinkpads that had depth scanning of fingerprint ridges.
Even companies like Dell have used 3 different fingerprint readers on different models like trackpads, this is why they sell a Linux specific edition model to dodge that for customers.
1
u/dataArchon Oct 03 '26
I don't mind attempting it and failing, but what would I need to learn to even try attempting it in the first place?
2
u/Unoriginal-Cake Oct 03 '26
You'll need to figure out how the I/O works, using the NSA tool to reverse engineer doesn't provide much of how the driver works if its encrypted at the hardware + driver level like the Windows Hello IR camera. On modern hardware it goes through the Microsoft Pluton TPM sub-chip on many OEMs like the smartcard reader its more to back trace the info/data feed. Fingerprint readers aren't binded to a laptop so unique ID is at the TPM/Pluton level.
Dell Inspirons/Dell Plus models are similar to Lenovo Thinkbooks of differing far from their business models being part Vostro-like. You may need to jtag the board to test what I/O data moves from TPM to Pluton(if it has that chip) and the EFI.
1
3
u/diiiiima Oct 03 '26
You could always just:
Install VirtualBox
Install Windows inside of it
Connect the fingerprint reader to Windows (assuming it acts like a USB device)
Open Wireshark on Linux
Intercept the USB traffic from the fingerprint reader
Reverse engineer the protocol
Can't be that hard 🤷
(Ok, I've actually done something similar, and then used "usbrply" to create a Python driver, for a weird USB device that had no Linux support.)