| # Fingerprint Study Tool |
| |
| The fingerprint study tool allows you to capture raw fingerprint samples from |
| study participants in order to analyze the performance of a fingerprint system. |
| |
| <!-- mdformat off(b/139308852) --> |
| *** note |
| See [Typography conventions] to understand what `(outside)`, `(inside)`, |
| `(in/out)`, and `(device)` mean. |
| *** |
| <!-- mdformat on --> |
| |
| [Typography conventions]: https://www.chromium.org/chromium-os/developer-library/guides/development/developer-guide/#typography-conventions |
| |
| ## Install/Run Fingerprint Study |
| |
| 1. You can install the fingerprint_study package on a Chromebook in dev mode |
| using `cros deploy` (**Option 1**), install manually with Python virtual |
| environments (**Options 2**), or build+flash a custom ChromeOS image with |
| the fingerprint_study package preinstalled (**Options 3**). |
| |
| On the host, run the following commands: |
| |
| - **Option 1** |
| |
| ```bash |
| (inside) $ BOARD=hatch |
| (inside) $ DUT=dut1 |
| (inside) $ emerge-$BOARD fingerprint_study |
| (inside) $ cros deploy $DUT fingerprint_study |
| ``` |
| |
| - **Option 2** |
| |
| Follow the [FPSTUDY_VENV_INSTALL.md](FPSTUDY_VENV_INSTALL.md) tutorial. |
| |
| - **Option 3** |
| |
| ```bash |
| (inside) $ BOARD=hatch |
| (inside) $ USE=fpstudy ./build_packages --board=$BOARD |
| (inside) $ ./build_image --board=$BOARD --noenable_rootfs_verification \ |
| base |
| (inside) $ cros flash usb:// $BOARD/latest |
| ``` |
| |
| Insert the USB flash drive into the chromebook |
| [boot from USB][boot-from-usb] and then |
| [install the image][install-from-usb]. |
| |
| 2. Configure `FINGER_COUNT`, `ENROLLMENT_COUNT`, and `VERIFICATION_COUNT` in |
| [/etc/init/fingerprint_study.conf](init/fingerprint_study.conf) with the |
| proper fingerprint study parameters. |
| |
| 3. Reboot the device. |
| |
| 4. Navigate to http://127.0.0.1:9000 in a web browser. |
| |
| 5. Output fingerprint captures are stored by default in `/var/lib/fingers`. See |
| [/etc/init/fingerprint_study.conf](init/fingerprint_study.conf). |
| |
| [boot-from-usb]: |
| https://www.chromium.org/chromium-os/developer-library/guides/development/developer-guide/#boot-from-your-usb-disk |
| [install-from-usb]: |
| https://www.chromium.org/chromium-os/developer-library/guides/development/developer-guide/#installing-your-chromiumos-image-to-your-hard-disk |
| |
| ## Test on Host Using Mock ectool |
| |
| We will use a python virtual environment to ensure proper dependency versions |
| and a mock `ectool` in [mock-bin](mock-bin). Note, the mock ectool will |
| effectively emulate an immediate finger press when the study tool requests a |
| finger press. This does not make use of the FPC python library. |
| |
| 1. Run the following command: |
| |
| ```bash |
| (in/out) $ ./host-run.sh |
| ``` |
| |
| 2. Finally, navigate to http://127.0.0.1:9000 in a web browser. |
| |
| ## Setup GPG Encryption |
| |
| The tool supports encryption of the collected samples. See |
| [FPSTUDY_ENCRYPTION.md](FPSTUDY_ENCRYPTION.md). |
| |
| ## VSCode Python Completion |
| |
| 1. Run `python-venv-setup.sh` to create the Python virtual environment. |
| 2. Open the platform2/biod directory in VS Code. You must explicitly open this |
| directory for the [`biod/pyproject.toml`](../pyproject.toml) to |
| automatically configure VS Code for Python. |