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
This commit is contained in:
Mahaver Chopra
2016-07-10 16:38:24 +01:00
parent 94c8f7ea7e
commit 6bc19a2e5c

View File

@@ -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);
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));
}
}