diff options
| -rw-r--r-- | services/core/java/com/android/server/PersistentDataBlockService.java | 11 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/UserRestrictionsUtils.java | 2 |
2 files changed, 7 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/PersistentDataBlockService.java b/services/core/java/com/android/server/PersistentDataBlockService.java index 1e0b693a94fa..e233b1c84bc6 100644 --- a/services/core/java/com/android/server/PersistentDataBlockService.java +++ b/services/core/java/com/android/server/PersistentDataBlockService.java @@ -466,12 +466,13 @@ public class PersistentDataBlockService extends SystemService { enforceOemUnlockWritePermission(); enforceIsAdmin(); - // Do not allow oem unlock modification if it has been disallowed. - if (Settings.Global.getInt(getContext().getContentResolver(), - Settings.Global.OEM_UNLOCK_DISALLOWED, 0) == 1) { - throw new SecurityException("OEM unlock has been disallowed."); - } if (enabled) { + // Do not allow oem unlock to be enabled if it has been disallowed. + if (Settings.Global.getInt(getContext().getContentResolver(), + Settings.Global.OEM_UNLOCK_DISALLOWED, 0) == 1) { + throw new SecurityException( + "OEM unlock has been disallowed by OEM_UNLOCK_DISALLOWED."); + } enforceFactoryResetAllowed(); } synchronized (mLock) { diff --git a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java index 414d16571870..c082143e9b5f 100644 --- a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java +++ b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java @@ -429,7 +429,7 @@ public class UserRestrictionsUtils { if (newValue) { PersistentDataBlockManager manager = (PersistentDataBlockManager) context .getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE); - if (manager != null) { + if (manager != null && manager.getOemUnlockEnabled()) { manager.setOemUnlockEnabled(false); } } |