Repository navigation
Releases
Releases · phucvinh57/biopass
1.5.1
What's fixed
- Changing your password no longer breaks keyring unlock. If you saved your password in Biopass so your keyring opens after a face or fingerprint login, it now updates by itself when you change your password with
passwdor in GNOME Settings. On Arch and other manual setups, add one line to your PAM config first: see Keyring.md. (#243) - The "Lock to Secure Boot settings" switch now shows the real setting. Before, it always showed "on", even when your password was saved without it. Setting up your password now happens in a small dialog. If you saved your password in 1.5.0, save it again to see this setting. (#242)
Arch Linux (AUR)
biopass-binis now on 1.5.1 (it was still on 1.4.2).
Full Changelog: 1.5.0...1.5.1
1.5.0
Highlights
- Keyring unlock after biometric login. Save your login password once in the app; it is checked against
/etc/shadow, sealed with the TPM, and used to unlock GNOME Keyring / KWallet after a face or fingerprint login on the login screen. Opt-in via the PAMauthtokoption. See docs/Keyring.md. (#241, refs #87) - Camera profiles with stable paths. Cameras are saved as
/dev/v4l/by-id/by-pathlinks instead of/dev/videoN, and you can define an ordered list of{camera, IR camera}profiles — the first one present is used, so docking/undocking no longer breaks face unlock. Cameras are labelled by USB interface, maker and port. (#240, closes #177) - More cameras supported.
- Direct V4L2 fallback for devices libcamera does not list (custom DKMS drivers like gc2607, v4l2loopback). (#237, closes #142)
- NV12 / NV21 / YUV420 decoding, and the IR sensor can be used as the main camera. (#236, closes #109)
- SoftISP cameras (IPU6/MIPI) via packed RGB and the simple pipeline. (#185, #169)
- PAM prompts: scanner-active prompt and a covered-camera message. (#184, #82)
Security & reliability
- PAM: the helper runs under a fixed deadline below the PAM timeout and is killed through a pidfd if stuck; fails closed on argument or auth errors; exits
PAM_IGNOREwhen no method could run. (#202, #203, #207) - The helper reads config, models and enrolled faces, and writes logs and debug images, as the user, not root. (#196, #200)
- Config is parsed atomically and validated; out-of-range retry, delay, timeout and threshold values are clamped or rejected. (#204, #205)
- Fingerprint: bounded fprintd calls, VerifyStatus pinned to fprintd's unique name, no C++ exceptions across FFI. (#201, #211)
- Face/camera: bounds-checked image and MJPEG sizes, safer libcamera buffer handling, fail closed on invalid anti-spoof output. (#198, #206, #208)
- App: strict CSP, webview permission requests denied, HTTPS-only and hash-pinned model downloads, private data directory. (#209, #212, #213)
- ONNX Runtime telemetry disabled.
Improvements
- Camera prefers MJPEG, caps RGB size, picks the brightest of N IR frames. (#183, #168, #116)
- MiniFASv2 gets the context crop it was trained on; AI anti-spoofing is off by default. (#186, #182)
- The colour camera and anti-spoofing model are opened once per auth session. (#225)
- Face preview runs off the main thread and starts/stops once per state. (#210, #214)
- Bundled libcamera no longer links libcrypto/gnutls. (#181, #176)
Packaging
- Bundled libraries are found through RUNPATH instead of
ld.so.conf.d. (#226) - The PAM profile is refreshed on deb upgrade and removed from
common-authon uninstall. (#226, #228) - Dropped
curlfrom deb depends.
Internal
- Config types and Tauri bindings generated from Rust with specta. (#227)
- Large refactors of face auth, camera capture and app settings; new C++ (ctest), Rust and TS (bun test) unit tests. (#195, #215–#219, #223, #224, #229)
- Dependency updates. (#234)
Full Changelog: 1.4.2...1.5.0
1.5.0-rc2
1.5.0-rc2
1.5.0-rc1
New features
- Support SoftISP cameras (IPU6/MIPI) via packed RGB and the simple pipeline (#185)
- PAM: scanner-active prompt and covered-camera message (#184)
Security & reliability
- PAM helper: fixed deadline below the PAM timeout, killed through a pidfd; fail closed on argument/auth errors
- Helper reads config, models, enrolled faces and writes logs as the user, not root
- Config: never use half-parsed configs; clamp retry/delay/timeout and threshold values
- Fingerprint: bounded fprintd calls, pinned VerifyStatus sender, no C++ exceptions across FFI
- Face/camera: bounds-checked image and MJPEG sizes, safer libcamera request handling, fail closed on invalid anti-spoof output
- App: strict CSP, denied webview permissions, HTTPS-only and hash-pinned model downloads, private data directory
Improvements
- Camera prefers MJPEG, caps RGB size, brightest-of-N IR frames (#183)
- MiniFASv2 gets the context crop it was trained on (#186); AI anti-spoofing off by default (#182)
- Colour camera and anti-spoofing model opened once per auth session
- Bundled libcamera no longer links libcrypto/gnutls (#181)
Packaging
- Bundled libraries found through RUNPATH instead of ld.so.conf.d
- PAM profile refreshed on deb upgrade (#228) and removed from common-auth on uninstall
- Dropped curl from deb depends
Internal
- Config types and Tauri bindings generated from Rust (#227)
- Large refactors of face auth, app settings and hooks; new C++, Rust and TS unit tests (#229)
Full Changelog: 1.4.2...1.5.0-rc1
1.4.2
What's Changed
Features
- feat: add
--version/-vflag tobiopass-helperandbiopass, plus a version badge in the UI by @skjerns in #147
Bug fixes
- fix: download default models in the app on first run, per user (#165) by @phucvinh57 in #180
- fix: store the anti-spoofing architecture in the model registry and honour the configured anti-spoofing model type (#149) by @phucvinh57 in #179
- fix: keep preview session stdout clean for the preview protocol (#170) by @phucvinh57 in #178
- fix(deb): accept Ubuntu's
libturbojpegpackage name by @jose-dias-fernandes in #173
Other
- The repository moved to phucvinh57/biopass. Links and the default model download URL now point there.
- Release builds pin the default model download URL to the matching release (e.g.
releases/download/1.4.2) instead oflatest. - New app logo and refreshed icon set.
- Dependency updates.
New Contributors
- @skjerns made their first contribution in #147
- @jose-dias-fernandes made their first contribution in #173
Full Changelog: 1.4.1...1.4.2
1.4.1
What's Changed
- fix(polkit integration): infinite loop occur when debug log is on by @phucvinh57 in #143.
- Debug logs are under
~/.local/share/com.ticklab.biopass/logs. - Polkit users are supposed to update
polkit-agent-helper@.serviceto changeProtectHome='s value fromread-onlytono. Please read Polkit.md for more detail.
- Debug logs are under
Full Changelog: 1.4.0...1.4.1
1.4.0
Features
- Camera backend migrated from
openpnp-capturetolibcamerafor wider camera compatibility (#132) - Native camera capture in the app, with device selection and a live preview via event-driven frame streaming (#90)
- Anti-spoofing: added MiniFASv2 model alongside MobileNetV3 (#119)
- Config migrated to a v2 schema: the model registry and fingerprint enrollment metadata moved out of
config.yamlinto a newbiopass.dbSQLite database, referenced fromconfig.yamlviamodel_id(#135). - Model management UI: add, delete, and rename models, with builtin/system models tagged as distinct from custom-imported ones
- Linux desktop entry now correctly tagged under the
Systemcategory (#138)
Fixes
- IR cameras that only expose MJPG (no V4L2 GREY) are now supported (#132)
- Fixed inability to type a comma into the ignore-PAM-service input field (#110)
- Fixed
bun.lockcorruption and aCargo.lockpackage mismatch that broke builds (#123) - Dropped a stale cached fingerprint table left over from the config v2 migration (#137)
Contributors
Thanks to everyone who contributed to this release:
1.4.0-rc3
New features
- Implement model management feature
Improvements
- Tag the .desktop entry as System category
Full Changelog: 1.4.0-rc2...1.4.0-rc3
1.4.0-rc2
Bug fixes
- Cannot add comma to the ignore pam service input by @phucvinh57 in #110
Full Changelog: 1.4.0-rc1...1.4.0-rc2
1.4.0-rc1
New features
- Add compatibility to modern cameras such as MIPI, by migrating from
openpnp-capturetolibcameraby @phucvinh57 in #132 - Add MiniFASv2 antispoofing model by @thaitran24 in #119
Bug fixes
- Some Linux distros cannot display Tauri's webview camera by @Merilairon in #90
- Fix bun.lock corruption and package missmatch in cargo.lock by @JochemKuipers in #123
New Contributors
- @Merilairon made their first contribution in #90
- @JochemKuipers made their first contribution in #123
Full Changelog: 1.3.0...1.4.0-rc1