What is it?
HTID is a fingerprint authentication daemon for macOS on Hackintosh hardware. It ports the USB capture protocol of supported fingerprint sensors to native C, matches swipes with NIST's NBIS suite, and types your password into the macOS prompt when your finger matches. It is not a kernel extension and not a libfprint port.
Built for laptops that shipped with a fingerprint sensor but have no native macOS driver.
Releases
Current release: v1.1.0
The latest stable version, on the main branch. Supports the Validity VFS5011 and the Synaptics Metallica MIS. See the changelog.
Fpbootd: pre-login auth
Experimental work on fingerprint authentication before login. Early stage, not usable yet.
Features
Lock screen
Unlock with a fingerprint swipe.
Authentication prompts
System Settings padlock, Finder, Passwords.app and Keychain Access consent prompts.
Multi-finger enrollment
Enroll several fingers, best match wins.
Fully native
No kernel extension and no libfprint at runtime. A small background daemon.
Encrypted storage
Templates and the stored password live on a dedicated encrypted APFS volume.
Menu bar app
Optional app to enable, disable or restart the daemon, with notifications when it is ready to swipe. On macOS Tahoe only, it also has a Swipe to Lock toggle.
Swipe to Lock (Tahoe only)
One swipe on the sensor locks the screen. VFS5011 on macOS 26 Tahoe only. Turn it on from the menu bar app.
Supported macOS
| Version | Status |
|---|---|
| macOS 15 Sequoia and later | Recommended |
| macOS 14 Sonoma | Supported (minimum) |
| macOS 13 Ventura and older | No support. It may work, but you are on your own. |
OpenCore v1.0.6 or later is required for support. Release or Debug builds are both fine. Older versions may work but are not supported.
Supported sensors
| Sensor | VID:PID | Status |
|---|---|---|
| Validity VFS5011 | 138A:0018 | Supported, confirmed working |
| Synaptics Metallica MIS | 06cb:009a | Supported, confirmed working (ThinkPad X1C6) |
| Prometheus 97 | 138A:0097 | In development, planned testing |
| Prometheus 9d | 138A:009d | In development |
| UPEK TouchStrip | 147E:2016 | In development, testing soon |
| Validity VFS101 | 138A:0001 | Planned, waiting on access to the device |
This is a hobby project, so keep expectations in check. The client checks your sensor's VID:PID and tells you whether it is supported.
Credits
@Hackintosh-user, lead developer. @ilikehackintosh, documentation. Thanks to u/p0cketl1nt (Metallica MIS and Prometheus 97 testing) and u/dCold_Salamander7764 (UPEK TouchStrip testing).