Fingerprint: EgisTec ET713 (ET7XX) over non-secure SPI0 #11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Feasible — and, contrary to the usual "fingerprint is locked in TrustZone" assumption, this sensor's imaging path is non-secure AP-side SPI. The proprietary trustlets are the least necessary piece.
Hardware
battery-data/fingerprint dtsi:compatible = "etspi,et7xx",etspi-chipid = "ET713",etspi-modelinfo = "T865".qupv3_se0_spi=spi@880000(QUP0/SE0) — a normal AP-side geni SPI controller. Mainline already has it asspi0: spi@880000undergeniqup@8c0000. Not the SSC island, not TZ-reserved.tlmm 7, LDO/power =tlmm 6.spi-max-frequency = 50 MHz.CONFIG_SENSORS_ET7XX=y,CONFIG_SENSORS_FINGERPRINT=y.Why it's not TZ-locked here (corrects an earlier assumption)
The GPL driver (
drivers/fingerprint/et7xx-spi.c,et7xx-spi_data_transfer.c, in the Samsung tree — not confidential) does the imaging itself: ~182spi_synccalls,etspi_io_read_register/etspi_io_burst_read_registerreading image data directly.The secure-vs-not choice is a build flag:
et7xx-spi_data_transfer.cwraps every transfer in#ifdef ENABLE_SENSORS_FPRINT_SECURE→return 0(TZ owns the bus)#else→ realspi_sync. Production Android builds it secure; we build it non-secure and the AP reads raw images. This is the EgisTec capacitive path, unlike the Qualcomm ultrasonic QBT2000 (which genuinely uses TZ-owned SPI).The CONFIDENTIAL trustlets (
SecFinger,tigerfp,BioAuthDriver,ifbio) only do template matching/storage — which on a Linux phone is replaced by userspace. Not needed.Plan
spi0+ pinctrl in our DTS; add anetspi,et7xxchild atreg=<0>, with resettlmm 7, LDOtlmm 6, 50 MHz.et7xx-spi.cto mainline, built non-secure (ENABLE_SENSORS_FPRINT_SECUREoff) so the AP does the SPI. Reshape its ioctl/imaging surface toward something a userspace matcher can consume.Verdict
Kernel-side (sensor powers on, produces raw images): very doable, ~1 session. End-to-end auth: gated on libfprint ET713 support — needs checking before promising a working unlock. Not blocked on the CONFIDENTIAL source at all.