Skip to content

feat(hw): detect fingerprint readers beyond the USB bus - #411

Open
duketopceo wants to merge 1 commit into
omacom:quattrofrom
duketopceo:feature/fingerprint-broaden-detect
Open

duketopceo wants to merge 1 commit into
omacom:quattrofrom
duketopceo:feature/fingerprint-broaden-detect

Conversation

@duketopceo

Copy link
Copy Markdown

Summary

omarchy-hw-fingerprint only scanned /sys/bus/usb, but nothing about a fingerprint sensor requires USB. This adds two passes after the USB scan so detection keeps working whatever bus a reader lands on:

  • Non-USB sysfs: any device on another bus whose name/product/modalias says fingerprint/biometric/touchid is trusted — no vendor list, since there's nothing to guess from. This is what would catch a Touch ID driver on Apple Silicon if one ever exists (today the sensor is Secure-Enclave-bound with no device-tree node, so nothing to drive — but when a driver appears, omarchy setup security fingerprint and the first-run invitation hook will just work).
  • fprintd probe: when net.reactivated.Fprint.service is installed, GetDevices is the authoritative usable-reader answer and catches sensors the sysfs scans miss. Skipped when fprintd isn't installed, preserving the works-before-setup contract.

Verified on a 4.0.3-1 package install (MacBookPro18,1): exits 1 cleanly — no false positives from the SPMI PMIC, aop-sensors-* IIO devices, or SPI input devices.

Test plan

  • test/shell.d/hw-fingerprint-test.sh extended: platform/SPI fingerprint-named devices detected, PMIC/IIO non-matches rejected, fprintd device-present and device-absent both honored (16/16 pass)
  • Existing USB-detection cases all still pass
  • Real-hardware run on M1 Pro exits 1 without hanging

Generated with Devin

omarchy-hw-fingerprint only scanned /sys/bus/usb, but nothing about a
fingerprint sensor requires USB — a Touch ID driver on Apple Silicon, if one
ever lands, would sit on the SoC's own fabric. Two more passes after the USB
scan, both trusted only when a device names itself:

- other buses: any non-USB sysfs device whose name, product, or modalias
  says fingerprint/biometric/touchid
- fprintd: when its D-Bus service file exists, GetDevices is the
  authoritative usable-reader answer

Both are skipped cleanly when nothing matches, so the command still works
before fprintd is installed and stays silent on machines with no reader.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@wesleygrimes wesleygrimes added the defer Parked. Needs a decision, or may die with the fork. Do not close or port yet. label Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

defer Parked. Needs a decision, or may die with the fork. Do not close or port yet.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants