USB ID
27c6:5201
Reported in
ASUS ZenBook S UX391UA, ASUS ZenBook S UX391FA
Source
devices/27c6:5201/README.md

Goodix GF5288 / HTK32 bridge (USB 27c6:5201)

Status: Working via a community libfprint driver (goodix5201), not upstream yet. Enroll, verify and identify through fprintd, tested on one ASUS ZenBook S UX391UA.

Goodix match-on-host press sensor (108 x 88 pixels, 12 bit) behind Goodix's HT32 USB bridge (USB strings HTMicroelectronics / Goodix Fingerprint Device / HTK32), running the non-TLS firmware GF5288_HT_APP_20041. Found in the ASUS ZenBook S UX391 series.

What was broken

Upstream libfprint has no driver for it, so fprintd-enroll reports no devices. The reader enumerates as a CDC ACM modem, so cdc_acm binds to it.

Unlike the TLS ("SEC") Goodix readers, it needs no firmware reflash and no PSK: the firmware is non-TLS and frame data is only obfuscated with Goodix's GEA stream cipher, using a fixed key found in the Windows driver.

Like the CB2000, each frame covers only about 5.4 x 4.4 mm of the finger. NBIS finds just 2-3 genuine minutiae per frame, so bozorth3 cannot match.

What the fix does

J0UH/goodix-5201-linux is an in-tree FpImageDevice driver (goodix5201) on top of libfprint MR !530 (SIGFM matching with OpenCV). It:

The repository also has a protocol specification, reverse-engineering notes (possibly useful for the related 27c6:5301), a umockdev replay test and an Arch package.

Install

This replaces libfprint (it is a patched libfprint, not a TOD module).

Tested on