Updating readme.

This commit is contained in:
Viktor Dragomiretskyy 2020-07-07 14:33:34 +12:00
parent 746ef2888d
commit 086b9e9b6c

View file

@ -52,7 +52,14 @@ The only reason you need to do this is to find `6_07f_lenovo_mis.xpfwext` (for v
innoextract n1mgf03w.exe -e -I 6_07f_lenovo_mis.xpfwext # vfs0097 innoextract n1mgf03w.exe -e -I 6_07f_lenovo_mis.xpfwext # vfs0097
innoextract n1cgn08w.exe -e -I 6_07f_Lenovo.xpfwext # vfs0090 innoextract n1cgn08w.exe -e -I 6_07f_Lenovo.xpfwext # vfs0090
innoextract nz3gf07w.exe -e -I 6_07f_lenovo_mis_qm.xpfwext # 009a innoextract nz3gf07w.exe -e -I 6_07f_lenovo_mis_qm.xpfwext # vfs009a
Note: the above may not be strictly true anymore. It looks like Validity is trying to maintain universal driver which supports all hardware.
Same seems to be true for the .xpfwext files. I.e. the firmware file may not be very platform specific, however the firmware file
must match the version of the Windows driver which contains the command/configuration blobs. Because we extract these blobs
from the actual driver DLL and logs, `python-validity` relies on a specific version of the firmware file. At the moment I can confirm
that `python-validity` works on both vfs009a and vfs0097 with a firmware file `6_07f_lenovo_mis_qm.xpfwext`
(sha1 `edb295cc26a259ec54fef86646d1225f65bb6b80`).
### Factory reset ### Factory reset
If your device was previously paired with another OS or computer, you need to do a factory reset. If your device was previously paired with another OS or computer, you need to do a factory reset.
@ -96,19 +103,9 @@ Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux [GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information. Type "help", "copyright", "credits" or "license" for more information.
>>> from prototype import * >>> from prototype import *
>>> open97() # use open9a() for a 06cb:009a sensor >>> open9x()
>>> >>>
``` ```
Or load previosly saved TLS session (see comments in [holdthedoor.py](holdthedoor.py))
```
$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from prototype import *
>>> load97()
>>>
```
### Enroll a new user ### Enroll a new user
Note: 0xf5 == WINBIO_FINGER_UNSPECIFIED_POS_01 (see [ms docs](https://docs.microsoft.com/en-us/windows/desktop/SecBioMet/winbio-ansi-381-pos-fingerprint-constants)) Note: 0xf5 == WINBIO_FINGER_UNSPECIFIED_POS_01 (see [ms docs](https://docs.microsoft.com/en-us/windows/desktop/SecBioMet/winbio-ansi-381-pos-fingerprint-constants))
@ -156,21 +153,11 @@ All done
Recognised finger f5 (WINBIO_FINGER_UNSPECIFIED_POS_01) from user S-1-5-21-111111111-1111111111-1111111111-1000 Recognised finger f5 (WINBIO_FINGER_UNSPECIFIED_POS_01) from user S-1-5-21-111111111-1111111111-1111111111-1000
Template hash: 36bc1fe077e59a3090c816fcf2798c30a85d8a8fbe000ead5c6a946c3bacef7b Template hash: 36bc1fe077e59a3090c816fcf2798c30a85d8a8fbe000ead5c6a946c3bacef7b
``` ```
## DBus service ## DBus service
Sources contain a simple DBus service which can impersonate [fprint](https://www.freedesktop.org/wiki/Software/fprint/) daemon. Sources contain [dbus-service.py](dbus-service.py) file, which is a simple DBus service which can serve list/enroll/verify/delete prints.
Install fprint, edit /usr/share/dbus-1/system-services/net.reactivated.Fprint.service by commenting out activation info: Previosly it was trying to impersonate [fprint](https://www.freedesktop.org/wiki/Software/fprint/) daemon.
``` Right now it owns it's personal DBus name `io.github.uunicorn.Fprint` and implements a slightly different interface.
#Exec=/usr/lib/fprintd/fprintd
#User=root
#SystemdService=fprintd.service
```
start a fake service with something like this:
```
while sleep 1; do
python3 dbus-service.py
echo "====restart==="
done
```
## Debugging ## Debugging