From 6bc19a2e5cebbb76a6dc6f825cac548c6933c536 Mon Sep 17 00:00:00 2001 From: Mahaver Chopra Date: Sun, 10 Jul 2016 16:38:24 +0100 Subject: [PATCH] Use UM.DISALLOW_OEM_UNLOCK instead of Global.OEM_UNLOCK_DISALLOWED Currently we used global setting to restrict user from enabling oem unlock. As global settings can be chagned using adb, using user restrictions instead. Bug: 29893399 Change-Id: Icaffb080979a447d1e0f7f0d72f92c9db83ac10c --- .../android/settings/DevelopmentSettings.java | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index 934e7522f1b..9d6a33a5dbc 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -1016,16 +1016,12 @@ public class DevelopmentSettings extends RestrictedSettingsFragment mEnableOemUnlock.setDisabledByAdmin(null); mEnableOemUnlock.setEnabled(enableOemUnlockPreference()); if (mEnableOemUnlock.isEnabled()) { - // mEnableOemUnlock is enabled as device's flash lock is unlocked. - if (RestrictedLockUtils.hasBaseUserRestriction(getActivity(), - UserManager.DISALLOW_FACTORY_RESET, UserHandle.myUserId())) { - // Set mEnableOemUnlock to disabled as restriction is set, but not by admin. - mEnableOemUnlock.setEnabled(false); - } else { - // Check restriction, disable mEnableOemUnlock and apply policy transparency. - mEnableOemUnlock - .checkRestrictionAndSetDisabled(UserManager.DISALLOW_FACTORY_RESET); - } + // Check restriction, disable mEnableOemUnlock and apply policy transparency. + mEnableOemUnlock.checkRestrictionAndSetDisabled(UserManager.DISALLOW_FACTORY_RESET); + } + if (mEnableOemUnlock.isEnabled()) { + // Check restriction, disable mEnableOemUnlock and apply policy transparency. + mEnableOemUnlock.checkRestrictionAndSetDisabled(UserManager.DISALLOW_OEM_UNLOCK); } } } @@ -2187,8 +2183,8 @@ public class DevelopmentSettings extends RestrictedSettingsFragment } else if (isSimLockedDevice()) { oemUnlockSummary = R.string.oem_unlock_enable_disabled_summary_sim_locked_device; } else if (!isOemUnlockAllowed()) { - // If the device isn't SIM-locked but OEM unlock is disabled by Global setting, this - // means the device hasn't been able to confirm whether SIM-lock or any other + // If the device isn't SIM-locked but OEM unlock is disabled by user restriction, + // this means the device hasn't been able to confirm whether SIM-lock or any other // restrictions apply (or hasn't been able to apply such restrictions yet). Ask the // user to connect to the internet in order to retrieve all restrictions. oemUnlockSummary = R.string.oem_unlock_enable_disabled_summary_connectivity; @@ -2221,11 +2217,13 @@ public class DevelopmentSettings extends RestrictedSettingsFragment } /** - * Returns {@code true} if OEM unlock is not disabled by Global policy. Otherwise, returns - * {@code false}. + * Returns {@code true} if OEM unlock is disallowed by user restriction + * {@link UserManager#DISALLOW_FACTORY_RESET} or {@link UserManager#DISALLOW_OEM_UNLOCK}. + * Otherwise, returns {@code false}. */ private boolean isOemUnlockAllowed() { - return Settings.Global.getInt(getActivity().getContentResolver(), - Settings.Global.OEM_UNLOCK_DISALLOWED, 0) == 0; + UserHandle userHandle = UserHandle.of(UserHandle.myUserId()); + return !(mUm.hasBaseUserRestriction(UserManager.DISALLOW_OEM_UNLOCK, userHandle) + || mUm.hasBaseUserRestriction(UserManager.DISALLOW_FACTORY_RESET, userHandle)); } }