[Garnet][Android 17] Goodix fingerprint HAL crashes because gfgarnet TA cannot allocate QSEECom DMA-BUF memory
Device: POCO X6 5G / Redmi Note 13 Pro 5G (garnet)
ROM: PixelOS
Android: 17
Build fingerprint: Redmi/garnet_global/garnet:16/BP2A.250605.031.A3/OS3.0.5.0.WNRMIXM:user/release-keys
Description:
Fingerprint authentication is completely broken on my Garnet device after upgrading to Android 17.
When I open the fingerprint settings and attempt to use/check the enrolled fingerprint, the fingerprint HAL crashes. The Goodix device itself is detected successfully at /dev/goodix_fp, so the sensor/driver is being recognized.
The failure occurs when the Goodix HAL attempts to load its secure Trusted Application (gfgarnet) through QSEECom. The QSEECom DMA-BUF allocation fails with errno = 12 (ENOMEM):
DMABUFHEAPS: Unable to allocate from DMA-BUF heap:
qcom,qseecom-ta: Out of memory
QSEEComAPI: Error: DMA-Buf allocation failed from heap 2,
len 14532608, errno = 12
QSEEComAPI: Error::ION_memalloc failed
QSEEComAPI: Error::Loading image failed with ret = -12
[GF_HAL][CaEntry]: [startTap] Load ta: gfgarnet failed,
ret=-12, errno=12, err_code=1002.
[GF_HAL][CaEntry]: [startTap] exit.
err=GF_ERROR_OPEN_TA_FAILED, errno=1002
These failures are directly present in the attached log.
After this, the fingerprint HAL cannot initialize and the Xiaomi fingerprint service crashes. Android subsequently reports:
FingerprintProvider/default: HAL died
FingerprintStartUserClient: Remote exception
android.os.DeadObjectException
The log also records the fingerprint service receiving SIGSEGV.
The fingerprint UI is still being invoked, and the log records multiple Fingerprint view touched! events, so the issue is not simply that the fingerprint UI is missing.
Expected behavior:
Fingerprint authentication should initialize normally and allow authentication using the enrolled fingerprint.
Actual behavior:
Goodix initializes far enough to open /dev/goodix_fp, but loading gfgarnet fails because the qcom,qseecom-ta DMA-BUF allocation returns ENOMEM. The Goodix HAL then fails with GF_ERROR_OPEN_TA_FAILED, the fingerprint HAL crashes, and fingerprint authentication becomes unavailable.
Additional information:
Fingerprint worked normally on my previous PixelOS Android 16 installation on the same device. Face authentication was disabled while reproducing this issue.