Xperia XA2: fingerprint process at 100% CPU, draining battery
The battery has been draining surprisingly quickly on this Xperia XA2
running Sailfish 3.2.0.12
. Even with the phone mostly locked and resting, battery went from fully charged to 70% in 4 hours. Finally, I logged in over ssh and ran top
. A process with "fingerprint" in its name is running at full throttle. That would do it.
3109 system 20 0 11972 2396 1788 R 98.0 0.1 1:13.67 android.hardwar
The name of that process in its full glory:
$ ps lp 3109 F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 4 1000 3109 2807 20 0 11972 2396 - Rl ? 1:21 /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service.sony
The model number of the phone is H3123
. The ZIPs that I used for flashing were SW_binaries_for_Xperia_Android_8.1.6.4_r1_v16_nile.zip
and Sailfish_OS-Jolla-3.2.0.12-h3113-0.0.7.10.zip
.
When I was setting up the phone after flashing, I did not configure finger unlocking. Suspecting that perhaps the unconfigured thing gets itself stuck in a loop, I tried to set it up now through settings (Device lock -> Add fingerprint), but I could not get past the "Place and lift your finger" screen: it never detecting me placing the finger.
I do not know if that is relevant, but I will note that I did not install the android subsystem.
I do not know if the fingerprint sensor worked at all before I flashed the phone to Sailfish, I did not test that aspect.
The parent process of this runaway process is /sbin/droid-hal-init
. I found /vendor/etc/init/android.hardware.biometrics.fingerprint@2.1-service.sony.rc
. According to this README.md, these files understand an option called disabled
, so I added that to the .rc
file and rebooted. That worked.
Since then, the battery percentage has stayed the same for at least 20 minutes by now. So that fixed it.
For the benefit of whoever find themselves in the same situation and do not care for the fingerprint unlock either, here is the change that I made (under devel-su
) in order to disable that process:
--- /home/nemo/android.hardware.biometrics.fingerprint@2.1-service.sony.rc.ORIG +++ /vendor/etc/init/android.hardware.biometrics.fingerprint@2.1-service.sony.rc @@ -1,7 +1,8 @@ service fps_hal /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service.sony # "class hal" causes a race condition on some devices due to files created # in /data. As a workaround, postpone startup until later in boot once # /data is mounted. + disabled class late_start user system group system input
This happened to me as well with "Nuuksio 3.2.1.20". It worked before the only thing i can remember that i done before this started was disable NFC and used CSD but i don't know if it's related. It doesn't matter if i reboot that process is still 100%. I didn't have a fresh install and had been using my phone for some time. Isn't there a way to disable that without editing the config file?
abc123 ( 2020-01-03 14:28:32 +0200 )editI can confirm the bug. However, it does not always occur. If it does, then it has a CPU load of 100% at the beginning, which weakens to 56% in the course of about 6 hours. Editing the .rc-File helps a lot.
(Nuuksio 3.2.1.20 / XA2 Plus)
Volker_S ( 2020-01-09 18:43:26 +0200 )editPlease update on this, since 3.3.0.14 promises to fix, but EA update didn't fix this on my XA2+ dual-sim
ar0 ( 2020-04-03 23:17:33 +0200 )editI removed disabled from /vendor/etc/init/android.hardware.biometrics.fingerprint@2.1-service.sony.rc with 3.3.0.14 Fingerprint still doesn't seem to work and after some time i had 100% again. My conclusion is that it's still not fixed for existing sailfish installations.
abc123 ( 2020-04-16 01:16:28 +0200 )edit