# libfprint-goodixtls: a reconstructed Goodix GXFP5187 fingerprint driver

> libfprint-goodixtls reconstructs communication with the Goodix GXFP5187 SPI fingerprint sensor in the Huawei MateBook X Pro as a libfprint TOD driver. It reads a PSK from sensor RAM, establishes the sensor's TLS-PSK channel, decodes captured images, and uses local descriptors for host-side matching. The author reports enrolment and verification through fprintd and GNOME Settings; detailed reverse-engineering notes are kept outside the repository.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-06
- Original resource: <https://github.com/Sigfrodr/libfprint-goodixtls>
- Primary source: <https://github.com/Sigfrodr/libfprint-goodixtls/blob/bdf2f7ece115005fc625e3a16950c80140f4946a/README.md>
- Catalog page: <https://awesomerea.org/resources/libfprint-goodixtls-case/>
- Record JSON: <https://awesomerea.org/resources/libfprint-goodixtls-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/libfprint-goodixtls-case/index.md)

## Requirements & limits

- **Prerequisites:** Goodix GXFP5187 sensor on the Huawei MateBook X Pro MACH-WX9, with a usable spidev node.
- **Scope:** The detailed protocol-frame and matching-engine notes are kept separately from the repository.
- **Testing evidence:** Matcher error rates in the README are author-reported results from the described capture sets.
- **License:** LGPL-2.1 License.

## Primary sources

1. <https://github.com/Sigfrodr/libfprint-goodixtls/blob/bdf2f7ece115005fc625e3a16950c80140f4946a/README.md>
2. <https://github.com/Sigfrodr/libfprint-goodixtls/blob/bdf2f7ece115005fc625e3a16950c80140f4946a/tools/eval/README.md>

## More in Protocols

- [RazerStream: reconstructing Stream Controller device control](https://awesomerea.org/resources/razerstream-case/index.md) · Case study
- [DABplay+: reconstructing USB DAB+ dongle control](https://awesomerea.org/resources/dabplayplus-case/index.md) · Case study
- [PocketPrinter5890: reconstructing the Lidl 5890 printer protocol](https://awesomerea.org/resources/pocketprinter5890-case/index.md) · Case study
- [Parking sensor kit: reconstructing its display protocol](https://awesomerea.org/resources/parking-sensor-protocol-case/index.md) · Case study
- [pyhaseiq: reconstructing the older Hase iQ stove's WebSocket protocol](https://awesomerea.org/resources/pyhaseiq-case/index.md) · Case study
- [LED Controller: a BanlanX BLE client with audio-feed protocol findings](https://awesomerea.org/resources/led-controller-banlanx-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
