diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
index 2e0dfa5fa7312..b7ce7d7aa5f08 100644
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
@@ -589,8 +589,14 @@ public class LockPatternUtils {
* @return true if lock screen is disabled
*/
public boolean isLockScreenDisabled(int userId) {
- return !isSecure(userId) &&
- getBoolean(DISABLE_LOCKSCREEN_KEY, false, userId);
+ if (isSecure(userId)) {
+ return false;
+ }
+ boolean disabledByDefault = mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_disableLockscreenByDefault);
+ boolean isSystemUser = UserManager.isSplitSystemUser() && userId == UserHandle.USER_SYSTEM;
+ return getBoolean(DISABLE_LOCKSCREEN_KEY, false, userId)
+ || (disabledByDefault && !isSystemUser);
}
/**
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index ca079c434446e..6e4dfc7992eb3 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -967,6 +967,9 @@
If so, this should be set to 'false' in an overlay. -->
true
+
+ false
+