From 79470aea95799c6a6a334068958f1cfe3b71f8c0 Mon Sep 17 00:00:00 2001 From: xi yu Date: Fri, 11 Nov 2022 03:17:11 +0000 Subject: [PATCH] [Bugfix] Fix the problem that the home key can not work in some cases. When closeSystemDialogs of ActivityTaskManagerService is called from the one way binder callback KeyguardExitResult, the getCallingPid of Binder will return 0, resulting in a NullPointerException in proc.isPerceptible(). Change-Id: I76b653ae08d47fe232677413382d60475a2cbc47 --- .../java/com/android/server/policy/PhoneWindowManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 3af6e18547adf..2cf6608b76294 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -3474,7 +3474,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override public void onKeyguardExitResult(boolean success) { if (success) { - startDockOrHome(displayId, true /*fromHomeKey*/, awakenFromDreams); + final long origId = Binder.clearCallingIdentity(); + try { + startDockOrHome(displayId, true /*fromHomeKey*/, awakenFromDreams); + } finally { + Binder.restoreCallingIdentity(origId); + } } } });