From 82ceae988e62b9a3950e2b87ae890828045bbb4b Mon Sep 17 00:00:00 2001 From: Jorijn van der Graaf Date: Wed, 2 Sep 2026 23:19:24 +0200 Subject: [PATCH] README: what real use taught about the verify loop, and the revert --- README.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a06e0a5..655a82d 100644 --- a/README.md +++ b/README.md @@ -109,12 +109,22 @@ the shipped config sets `max_authentication_rescan_times` to 0, because at the stock budget a wrong finger never yields a terminal frame and a PAM client waits forever for the `verify-no-match` it needs. +**Known about the loop, from real use.** A verify frame is four QTEE round +trips (~200 ms idle); a `REPORT_EVENT` that runs the matcher is ~300 ms, and +the rising edge pays it twice because events 5 and 7 both reach the matcher. +The first frame of a press is the finger landing and usually rejects; matches +land at frame 3, 5, 8 — so a quick tap is often a miss. Two attempts to fix +that (drop event 5; recapture after 50 ms) went in together and produced zero +matches; both are reverted and recorded. gpio75 is a ~1 ms pulse, not a +level — an IRQ-driven idle needs GPIO edge events. Changes to this loop are +made one variable at a time, on a measured baseline. + **Not done:** packaging (`provides="fprintd=…"` so this replaces the fprintd daemon package while `fprintd-pam` stays), the shipped storage policy, polkit (a caller-uid rule stands in), trustlet-side template removal (deletes drop the -name only), cleanup when a claiming client vanishes from the bus, and the -kernel config change — `CONFIG_QCOMTEE`, which selects the SHM bridge — that -gates any public image. +name only), and the kernel config change — `CONFIG_QCOMTEE`, which selects the +SHM bridge — that gates any public image. A claim held by a client that leaves +the bus is dropped. ## Runtime dependencies, not carried here