I used logcat and found that the service GestureLauncherService (a sub-service of SystemService) actively looks for the triple power button tap and takes action accordingly. While I couldn't find such sub-service through GUI (Running services), dumpsys
and cmd
commands, I did notice this line in the logcat's output:
[ 11-15 21:21:27.368 1292: 1825 I/ActivityManager ] START u0 {act=android.intent.action.CALL_PRIVILEGED dat=tel:xxx flg=0x10000000 cmp=com.android.server.telecom/.PrivilegedCallActivity} from uid 1000 pid 1292
I cross-checked it with adb shell dumpsys activity recents
and found that PrivilegedCallActivity
is the activity that shows up when the number is dialed.
So, while I can't prevent the gesture service, I can prevent the number being dialed successfully. I immediately disabled the component PrivilegedCallActivity
of the package com.android.server.telecom
(Call Management app) using adb (requires root) like this:
adb shell su -c 'pm disable com.android.server.telecom/.PrivilegedCallActivity'
One can also use an app to disable that activity. From henceforth, that triple power button tap wouldn't make the call.
Note: disabling that activity does not prevent Emergency calls (both to user provided emergency contacts and country specific emergency numbers) from taking place from Emergency dialer at lock screen because that uses a different activity. It is just that the system cannot dial the emergency number without user's explicit consent on the dialer, anymore.