Summary: | 138a:0090 Validity Sensor not recognized | ||
---|---|---|---|
Product: | libfprint | Reporter: | Marc-Antoine Perennou <Marc-Antoine> |
Component: | libfprint | Assignee: | libfprint-bugs |
Status: | RESOLVED MOVED | QA Contact: | |
Severity: | enhancement | ||
Priority: | high | CC: | 1e6c1446-1f45-11e7-bc1c-5f6920a7be5d, acfoltzer, agurenko, akalongman, albflo, alexanderad, alvenca, andr3asgr, anssi, ariel.zelivans, arved, AxelMKlein, bernie, bijan, brandon.dimcheff+freedesktop, brunoabinader, c, christian, codronm+circlecode, det, dtolnay, edmund.laugasson, fake.ae, felipe.abella, fred, freedesktopbugs, freedesktop-bugzilla, freedesktop-bugzilla, freedesktop, freedesktop, geiger.mario, genio10, grb19, gregoire, haaner87, hindsn, i, iliyabo, itay.ariely, jacob.b.bailey, j, jelmer, jlj.babydragon, jmc, kaon, madstitz, mail, mail, mail, mapreri, marcelo.fidel.fernandez, Marcel.Waldvogel, markus.duft, me, michel.kern20, mike, mirec.z, mozello, naktinis, nelg, nemecek, nikolas.hermann, nils-anders, njlmerchant, pahan, paveld, pavel, piskoule, pokorny_jan, rb6, richip, semtlenori, serge, steven.nfd+fdb, sven.liefgen, tagliola, tarkasteve, tibbs, tom, uzytkownik2, v.astafiev, voyageur, yaroslav.isakov, yzhou61, zdenek.zikan |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
See Also: | https://bugs.freedesktop.org/show_bug.cgi?id=99462 | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | Sniffing usmon logs when doing some operations in a VirtualBOX WIN10 machine |
Description
Marc-Antoine Perennou
2016-03-14 17:29:41 UTC
Created attachment 123459 [details]
Sniffing usmon logs when doing some operations in a VirtualBOX WIN10 machine
This sensor seems to be quite different form the others shipped in the past.
I've been able to use it from a Windows 10 virtual machine running in virtualbox, after installing the Synaptics drivers (I've used the ones provided in the lenovo website for ThinkPad T460s/T460p).
After sniffing the traffinc with usbmon or wireshark, I can't see any re-usable pattern. However I'm attaching here the logs I've taken.
Basically the operations I've done are:
1. Enabling fingerprint recognition in Window 10
2. Performing the recognition of the same finger (8 steps)
3. Locking the machine
4. Unlocking it with the fingerprint
5. Add an extra finger to use, but causing recognition errors
6. Remove fingerprint recognition from the machine
7. Enabling it again scanning again a finger (not logged)
8. Lock and Unlock again with new recognized finger
Not sure if someone could get any good info from this.
I guess we should find a way to get Synaptics involved by providing specs.
(In reply to Marco Trevisan (Treviño) from comment #1) > After sniffing the traffinc with usbmon or wireshark, I can't see any > re-usable pattern. Of course, excluding the 0x17 0x03 header followed by two bytes containing the payload size. But all the rest seems not to follow a precise rule (as it doesn't either repeat in similar operations, so I guess there's some obfuscation involved). (In reply to Marco Trevisan (Treviño) from comment #2) > (In reply to Marco Trevisan (Treviño) from comment #1) > > After sniffing the traffinc with usbmon or wireshark, I can't see any > > re-usable pattern. > > Of course, excluding the 0x17 0x03 header followed by two bytes containing > the payload size. But all the rest seems not to follow a precise rule (as it > doesn't either repeat in similar operations, so I guess there's some > obfuscation involved). Probably traffic is encrypted. In this case it's impossible to implement libfprint driver without disassembling Windows driver or getting documentation from Validity. I have Lenovo Thinkpad X1 Yoga with "138a:0090" fingerprint reader and it also not works. Sorry guys, but I don't have this device. And even if I had it, I'm not sure what can be done if traffic is encrypted. I tried to contact Synaptics (they acquired Validity not a while ago), but so far I have gotten no response. This sensor is used at new 4th generation ThinkPad Carbon X1. I think this device is part of all new Thinkpads, also the T-series. I really hope that we will get some support from Lenovo/Synaptic as it doesn't seem to be easily reverse engineerable. Maybe someone knows someone. I also have the same issue, with thinkpad X1 Yoga. I'm wondering if this item is available in a standalone reader. If so I would be willing to buy one (or more) and send it/them to whoever might be interested in working on this. If just having the actual part would be useful, I could see if I can get one from Lenovo's part department or some other supplier. BTW, I believe it's Lenovo/IBM part 00JT817 which I can actually order for $30. But figuring out which cable goes with it is rather more difficult. (In reply to Jason Tibbitts from comment #10) > BTW, I believe it's Lenovo/IBM part 00JT817 which I can actually order for > $30. But figuring out which cable goes with it is rather more difficult. Usually it's USB 2.0 HSIC (high speed inter-chip) device, it has different signal levels, so it's impossible to connect it to generic USB port. So Lenovo part is useless without special adapter which I don't have. I'm searching for said special adaptor, but I've not worked with this before so it's tough to be sure I'd have the right thing. If you know of an adaptor which would work, please let me know. Maybe the USB3505 board? https://www.element14.com/community/docs/DOC-70253/l/usb3503-hsic-to-usb-20-mobile-hub-evaluation-board $106 isn't free, but I'm still willing to buy one and ship it if it would actually help. This doesn't take care of physical cabling, of course, and I don't know if you can just manually wire it. Or even if anyone actually wants to work on it. Sadly, I can't just send along a whole laptop. I would if I could get a laptop with this device for under $500, which I doubt is possible. (In reply to Jason Tibbitts from comment #13) > Maybe the USB3505 board? > > https://www.element14.com/community/docs/DOC-70253/l/usb3503-hsic-to-usb-20- > mobile-hub-evaluation-board > > $106 isn't free, but I'm still willing to buy one and ship it if it would > actually help. This doesn't take care of physical cabling, of course, and I > don't know if you can just manually wire it. Or even if anyone actually > wants to work on it. > > Sadly, I can't just send along a whole laptop. I would if I could get a > laptop with this device for under $500, which I doubt is possible. I would buy it if there were any specs for this Validity device. Apparently traffic is encrypted so it's not possible to reverse engineer it without disassembling Windows driver. No idea, whether this will help, but at least asking doesn't hurt: https://forums.lenovo.com/t5/ThinkPad-X-Series-Laptops/Validity-Fingerprint-Reader-Linux/td-p/3352145 Some people say that they got it working: https://github.com/maffmeier/fprint_vfs5011 > Some people say that they got it working: https://github.com/maffmeier/fprint_vfs5011
Not the right product number—sorry.
I have a P50 with this reader - if I can provide any helpful information (dumps, etc.) please let me know what and how :) I'd love to have this device supported. So... I've been in touch with people that has contacts with Synaptics internals and basically they said that they can't disclose the protocol for this generation of devices. While they try to improve the thing for future devices, they're, at least, working to make a binary driver available. No ETA known, though. I also have this sensor, and would like it to work on Linux. Any update from the manufacturer? Still no update from synaptics :-( I have Lenovo Ideapad Flex 4, has finger print reader 0138a:0094. Please let me know if we do have nay update from vendor. Also, please let us know if anyone has an appropriate contact email at Synaptics/Validity Sensors that could accept this sort of feedback. (In reply to naktinis from comment #23) > Also, please let us know if anyone has an appropriate contact email at > Synaptics/Validity Sensors that could accept this sort of feedback. Unfortunately I've not direct contact with synapitcs, I only asked to the synaptics xorg driver who asked again to his internal contacts. No news about this bug? Discussion is going here - https://forums.lenovo.com/t5/Linux-Discussion/Validity-Fingerprint-Reader-Linux/td-p/3352145 (In reply to Avtandil Kikabidze from comment #25) > No news about this bug? If Synaptics is willing to provide specs and hardware, I can develop the driver. Seems like somebody started working on a driver here: https://github.com/nmikhailov/Validity90 Willing to donate some money. Is something set up to receive money? (In reply to ken from comment #29) > Willing to donate some money. Is something set up to receive money? You could try to contact Nikita who's doing driver development for subj device: https://github.com/nmikhailov As for me, I'm in good standing and doing libfprint development for fun, not for money. Though I'd accept standalone fingerprint scanners that aren't supported by libfprint. No laptops please. Just as #22 I have a lenovo yoga 510 with 138a:0094, should I open a new bug or Synaptics will resolve the issue for both devices(0090 and 0094)? Re #30: Is there a standalone fingerprint reader that uses a Validity Sensor 138a:0090? Or is there a wishlist of devices you'd prefer Vasily Khoruzhick? (In reply to Ilia Bozhinov from comment #31) > Just as #22 I have a lenovo yoga 510 with 138a:0094, should I open a new bug > or Synaptics will resolve the issue for both devices(0090 and 0094)? Hi all! Lenovo 710s plus - 138a:0094 doesn't work too. Is there any progress? Joining the issue with Lenovo T470p. The sensor is 138a:0097. Nikita Mikhailov got some got some great results in his protoype [1] (I've been able to scan an image of my fingerprint in my ThinkPad T460s, while it fails in my T460p). So please, test the prototype. Also, it would be appreciated to get dumps (taken with a virtual machine running Windows 10), especially from those who never ran Windows or, never initialized the fingerprint reader in there. In that case it would be great to have logs since of the whole VM live (installation included), so that we can catch if anything special happens. Join the conversation in gitter [2], for further informations. [1] https://github.com/nmikhailov/Validity90 [2] https://gitter.im/Validity90/Lobby Lenovo P50 has the same sensor: Bus 001 Device 003: ID 138a:0090 Validity Sensors, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 16 bDeviceProtocol 255 bMaxPacketSize0 8 idVendor 0x138a Validity Sensors, Inc. idProduct 0x0090 bcdDevice 1.64 iManufacturer 0 iProduct 0 iSerial 1 c73888265432 bNumConfigurations 1 ... Joining the issue with Lenovo T470. The sensor is 138a:0097. Joining the issue with Lenovo T460p. Hi guys, I kinda got a python script that works on my machine to get pictures of fingerprints. I'll likely need testers soon to see how it works on different computers: https://github.com/hmaarrfk/Validity91 Hopefully this sheds some light on the sensor. Likely more interesting for this bug is https://github.com/nmikhailov/Validity90, which I discovered when looking into your link :) With the prototype in there I was able to get the sensor in my Lenovo P50 to respond. Looks like there is also some work going on there to create a libfprint driver, which sounds really promising! Thanks! Owh, missed that this was shared a while ago :) Speaking of libfprint driver, for this specific sensor (1380a:0090) there's already one up and running since some weeks, which I wrote based on Nikita's prototype plus some tunings. Code is at (packages for Arch and Ubuntu available check README): - https://github.com/3v1n0/libfprint Sensor specific code needs still some tuning, and it's still using libfprint's image comparison. However, changing the driver to use internal fingerprint checks is possible and planned, but there's still some reverse-engineering going to achieve that (in the mean time I've already a driver in the works using basic device). Ah, and yes... That driver will work on newer sensors such as 138a:0091 too. Hi Marco. First, thanks a lot for working on this! I get the following error when I try to use fprint-enroll. $> fprintd-enroll Using device /net/reactivated/Fprint/Device/0 failed to claim device: Message recipient disconnected from message bus without replying $> sudo -H fprintd-enroll Using device /net/reactivated/Fprint/Device/0 failed to claim device: Open failed with error -5 fprint_demo works until I start to try to scan my finger, when it crashes. Any idea what I might be doing wrong? The logs of fprintd are not really helpful... Thanks, Kai Has anyone tried with the Validity 138a:0097 product? I have one of these in a Lenovo Carbon X1 gen 5. There is a hacked libfprint fork which will authenticate from 138a:0097 sensors, but you must enroll the fingerprints in Windows. That sensor is match-on-device only; it cannot return a fingerprint image at all. And the fingerprint enrollment process has not yet been successfully reverse-engineered. https://github.com/hrenod/libfprint I should add that the instructions in that fork haven't been changed much from the original 0090 repo, so don't read it and assume that everything there is true for the 0097 device. It's slightly confusing but it's really just a hack to get something working. I haven't tried it myself. -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/libfprint/libfprint/issues/54. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.