How to disable a broken system service in Android 11
1
vote
0
answers
568
views
tl;dr: the
fps_hal
init service on my phone is constantly restarting, and since I don't use the fingerprint sensor I want to disable it.
Background:
Trying to debug my own app on LineageOS 18.1 (Android 11), logcat gave a ton of information about a system service going haywire:
06-25 15:50:23.258 0 0 I init : starting service 'fps_hal'...
06-25 15:50:23.262 0 0 I init : Created socket '/dev/socket/fpc_oem', mode 660, user 1000, group 1000
06-25 15:50:24.116 30815 30815 D fpc_hidl: fpc fingerprint hwbinder service starting
06-25 15:50:24.117 30815 30815 D libfingerprint_core: core_init
06-25 15:50:24.117 30815 30817 D libfingerprint_core: worker_thread: started
06-25 15:50:24.117 30815 30817 D libfingerprint_core: pick_task: suspended 0
06-25 15:50:24.117 30815 30817 D libfingerprint_core: pick_task: No tasks
06-25 15:50:24.117 30815 30817 D libfingerprint_core: worker_thread: Waiting tasks, suspended 0, on pause 0
06-25 15:50:24.120 30815 30815 I fingerprint_key_handler: Input device qpnp_pon (/dev/input/event0) supports KEY_POWER
06-25 15:50:24.122 30815 30815 D fingerprint-oem-server: install_oem_client_handler: installed ID 2
06-25 15:50:24.122 30815 30815 D fingerprint-oem-server: install_oem_client_handler: installed ID 3
06-25 15:50:24.122 30815 30818 I fingerprint_key_handler: key_thread: starting
06-25 15:50:24.124 30815 30815 I fingerprint_key_handler: Input device qpnp_pon (/dev/input/event0) supports KEY_POWER
06-25 15:50:24.126 30815 30815 D fingerprint-oem-server: start_oem_server
06-25 15:50:24.126 30815 30815 D fingerprint-oem-server: open_socket: pass
06-25 15:50:24.126 30815 30815 D libfingerprint_core: core_init fingerprint wakeup supported.
06-25 15:50:24.126 30815 30815 D libfingerprint_core: set_env: added key 'hal_dev' value 0x71ac4e7430
06-25 15:50:24.126 30815 30815 D libfingerprint_core: task_alloc: authenticate
06-25 15:50:24.126 30815 30815 D libfingerprint_core: task_set_suspendable: authenticate
06-25 15:50:24.126 30815 30815 D libfingerprint_core: task_alloc: enroll
06-25 15:50:24.126 30815 30815 D libfingerprint_core: task_alloc: remove
06-25 15:50:24.126 30815 30815 D libfingerprint_core: task_alloc: enumerate
06-25 15:50:24.127 30815 30819 I fingerprint_key_handler: key_thread: starting
06-25 15:50:24.133 30815 30815 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x80
06-25 15:50:24.134 30815 30815 D QSEECOMAPI: App is not loaded in QSEE
06-25 15:50:24.134 30815 30815 D QSEECOMAPI: app_arch = 1, total_files = 9
06-25 15:50:23.346 0 0 W QSEECOM : qseecom_load_app: App (fpctzfingerprint) does'nt exist, loading apps for first time
06-25 15:50:24.257 30815 30815 D QSEECOMAPI: Loaded image: APP id = 69996
06-25 15:50:23.464 0 0 W QSEECOM : qseecom_load_app: App with id 69996 (fpctzfingerprint) now loaded
06-25 15:50:24.264 30815 30815 E fpc_tac : fpc_tac_transfer send_cmd failed -11
06-25 15:50:24.264 30815 30815 E fpc_tac : fpc_tee_print_build_info, fpc_tac_transfer failed -4.
06-25 15:50:24.273 30815 30815 E fpc_tac : fpc_tac_transfer send_cmd failed -11
06-25 15:50:24.273 30815 30815 E fpc_tac : sensor_command, Failed to send command: 4 to TA, status code: -4
06-25 15:50:24.277 30815 30815 E fpc_fingerprint_hal: fpc_hal_open failed
06-25 15:50:24.277 30815 30815 I scudo : Scudo ERROR: invalid chunk state when deallocating address 0x00705c4e4350
06-25 15:50:24.277 30815 30815 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 30815 (fpc_fingerprint), pid 30815 (fpc_fingerprint)
06-25 15:50:24.336 30823 30823 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
06-25 15:50:24.337 726 726 I tombstoned: received crash request for pid 30815
06-25 15:50:24.337 30823 30823 I crash_dump64: performing dump of process 30815 (target tid = 30815)
Pulling out some keywords, I ran getprop|grep "init"
and all the init services are listed as running except this one:
And that's where I'm stuck. service list
gives me nothing to go on, Google gives me nothing, and my knowledge of the Android init procedure and directory structure is close to nil.
Can anyone help point me to where this service is managed from, and how to disable it? If the location is SELinux protected, is there a way to patch without re-flashing the entire ROM? Thanks in advance.
Asked by ifiht
(111 rep)
Jun 25, 2022, 08:01 PM