Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
ELAN 04f3:0c4b fingerprint reader never matches under stock libfprint (ThinkPad E14/E15 Gen 3/4) — works with libfprint-tod instead
Reported by jcperdomoybarra · filed Aug 19, 2026 · open at source
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- AreaOutside the audited area· Decided by agents · verified
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
What happened
omarchy-setup-security-fingerprint installs stock libfprint + fprintd
and drives enrollment/verification through the open-source elan.c driver.
For the ELAN 04f3:0c4b fingerprint reader (ThinkPad E14/E15 Gen 3 and
Gen 4, at least), that driver treats the sensor as a swipe sensor and
matches with NBIS/Bozorth3 entirely in software:
fprintd-enroll # completes fine, all stages pass
fprintd-verify # NEVER matches — Bozorth3 score is exactly 0/24,
# every single attempt, regardless of finger, technique,
# orientation, or speed25+ verify attempts across multiple sessions, always a literal 0 score
(never even a partial match). The script itself doesn't fail loudly —
enrollment and the first verify both "succeed" from the script's point of
view (fprintd-verify just needs one non-zero exit at setup time, and a
lucky first touch can pass), so PAM gets wired up for a reader that then
never reliably authenticates in daily use.
Why this is a packaging/hardware-detection problem, not a bug in the script's logic
This sensor isn't actually a swipe sensor in the way the open driver
assumes — Lenovo's own Windows driver, and a proprietary Linuxlibfprint-tod plugin Lenovo ships for it, both drive it as a
press/area sensor instead:
Broken on this PID: 04f3:0c4b → elan.c (open) → swipe capture → NBIS/Bozorth3 → 0/24
Working on this PID: 04f3:0c4b → libfprint-tod → Lenovo's proprietary driver → "press"Switching drivers (not patching elan.c) is what actually fixes it —
confirmed with 10/10 fprintd-verify passes after the switch, and
working sudo, polkit, and lock-screen auth via the existing Omarchy PAM
setup (no PAM changes needed — pam_fprintd.so talks to fprintd over
D-Bus regardless of which driver is loaded underneath).
I wrote up the full fix — root cause, step-by-step instructions, a
security note on the proprietary binary involved (verified byte-for-byte
against Lenovo's own download before trusting it), and how to protect the
non-standard packages from being silently touched by omarchy update —
here, in case it's useful for anyone else with this hardware:
https://github.com/jcperdomoybarra/thinkpad-elan-04f3-0c4b-fingerprint-fix
I'm not proposing a specific code change toomarchy-setup-security-fingerprint in this issue — mostly flagging that
this PID is a known-bad case for the stock driver, in case the Omarchy
maintainers want to special-case a warning/detection for it the way #7006
covers 06cb:009a. Happy to help test or discuss if that's of interest.
Environment
- Omarchy 4.0.0
- Kernel 7.1.8-arch1-3
- ThinkPad E15 Gen 3 (AMD)
- Sensor:
04f3:0c4bELAN Microelectronics (ElanTech Fingerprint Sensor
under the open driver)
- Stock stack that fails to match: libfprint 1.94.100-1, fprintd 1.94.5-2
- Working alternate stack: libfprint-tod-git 1.95.1+tod1-1,
libfprint-2-tod1-elan 0.0.1-2, openssl-1.1 1.1.1.w-11 (all AUR)
View raw text
## What happened
`omarchy-setup-security-fingerprint` installs stock `libfprint` + `fprintd`
and drives enrollment/verification through the open-source `elan.c` driver.
For the ELAN `04f3:0c4b` fingerprint reader (ThinkPad E14/E15 Gen 3 and
Gen 4, at least), that driver treats the sensor as a swipe sensor and
matches with NBIS/Bozorth3 entirely in software:
```
fprintd-enroll # completes fine, all stages pass
fprintd-verify # NEVER matches — Bozorth3 score is exactly 0/24,
# every single attempt, regardless of finger, technique,
# orientation, or speed
```
25+ verify attempts across multiple sessions, always a literal `0` score
(never even a partial match). The script itself doesn't fail loudly —
enrollment and the first verify both "succeed" from the script's point of
view (`fprintd-verify` just needs one non-zero exit at setup time, and a
lucky first touch can pass), so PAM gets wired up for a reader that then
never reliably authenticates in daily use.
## Why this is a packaging/hardware-detection problem, not a bug in the script's logic
This sensor isn't actually a swipe sensor in the way the open driver
assumes — Lenovo's own Windows driver, and a proprietary Linux
`libfprint-tod` plugin Lenovo ships for it, both drive it as a
**press/area** sensor instead:
```
Broken on this PID: 04f3:0c4b → elan.c (open) → swipe capture → NBIS/Bozorth3 → 0/24
Working on this PID: 04f3:0c4b → libfprint-tod → Lenovo's proprietary driver → "press"
```
Switching drivers (not patching `elan.c`) is what actually fixes it —
confirmed with 10/10 `fprintd-verify` passes after the switch, and
working `sudo`, polkit, and lock-screen auth via the existing Omarchy PAM
setup (no PAM changes needed — `pam_fprintd.so` talks to `fprintd` over
D-Bus regardless of which driver is loaded underneath).
I wrote up the full fix — root cause, step-by-step instructions, a
security note on the proprietary binary involved (verified byte-for-byte
against Lenovo's own download before trusting it), and how to protect the
non-standard packages from being silently touched by `omarchy update` —
here, in case it's useful for anyone else with this hardware:
https://github.com/jcperdomoybarra/thinkpad-elan-04f3-0c4b-fingerprint-fix
I'm not proposing a specific code change to
`omarchy-setup-security-fingerprint` in this issue — mostly flagging that
this PID is a known-bad case for the stock driver, in case the Omarchy
maintainers want to special-case a warning/detection for it the way #7006
covers `06cb:009a`. Happy to help test or discuss if that's of interest.
## Environment
- Omarchy 4.0.0
- Kernel 7.1.8-arch1-3
- ThinkPad E15 Gen 3 (AMD)
- Sensor: `04f3:0c4b` ELAN Microelectronics (`ElanTech Fingerprint Sensor`
under the open driver)
- Stock stack that fails to match: `libfprint 1.94.100-1`, `fprintd 1.94.5-2`
- Working alternate stack: `libfprint-tod-git 1.95.1+tod1-1`,
`libfprint-2-tod1-elan 0.0.1-2`, `openssl-1.1 1.1.1.w-11` (all AUR)
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
- Out of scopeDecided by agents · verified · 2026-10-09 04:47 UTC