diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index ae6ce538fd705..e44d109e203aa 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -841,11 +841,6 @@ public class KeyguardViewMediator extends SystemUI { synchronized (this) { if (DEBUG) Log.d(TAG, "setKeyguardEnabled(" + enabled + ")"); - if (isSecure()) { - Log.d(TAG, "current mode is SecurityMode, ignore hide keyguard"); - return; - } - mExternallyEnabled = enabled; if (!enabled && mShowing) { diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 3d7b499f94039..9af5e146ef7f9 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -5363,6 +5363,12 @@ public class WindowManagerService extends IWindowManager.Stub != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("Requires DISABLE_KEYGUARD permission"); } + // If this isn't coming from the system then don't allow disabling the lockscreen + // to bypass security. + if (Binder.getCallingUid() != Process.SYSTEM_UID && isKeyguardSecure()) { + Log.d(TAG, "current mode is SecurityMode, ignore hide keyguard"); + return; + } if (token == null) { throw new IllegalArgumentException("token == null");