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:
@@ -1016,16 +1016,12 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
|
|||||||
mEnableOemUnlock.setDisabledByAdmin(null);
|
mEnableOemUnlock.setDisabledByAdmin(null);
|
||||||
mEnableOemUnlock.setEnabled(enableOemUnlockPreference());
|
mEnableOemUnlock.setEnabled(enableOemUnlockPreference());
|
||||||
if (mEnableOemUnlock.isEnabled()) {
|
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.
|
// Check restriction, disable mEnableOemUnlock and apply policy transparency.
|
||||||
mEnableOemUnlock
|
mEnableOemUnlock.checkRestrictionAndSetDisabled(UserManager.DISALLOW_FACTORY_RESET);
|
||||||
.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()) {
|
} else if (isSimLockedDevice()) {
|
||||||
oemUnlockSummary = R.string.oem_unlock_enable_disabled_summary_sim_locked_device;
|
oemUnlockSummary = R.string.oem_unlock_enable_disabled_summary_sim_locked_device;
|
||||||
} else if (!isOemUnlockAllowed()) {
|
} else if (!isOemUnlockAllowed()) {
|
||||||
// If the device isn't SIM-locked but OEM unlock is disabled by Global setting, this
|
// If the device isn't SIM-locked but OEM unlock is disabled by user restriction,
|
||||||
// means the device hasn't been able to confirm whether SIM-lock or any other
|
// 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
|
// 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.
|
// user to connect to the internet in order to retrieve all restrictions.
|
||||||
oemUnlockSummary = R.string.oem_unlock_enable_disabled_summary_connectivity;
|
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
|
* Returns {@code true} if OEM unlock is disallowed by user restriction
|
||||||
* {@code false}.
|
* {@link UserManager#DISALLOW_FACTORY_RESET} or {@link UserManager#DISALLOW_OEM_UNLOCK}.
|
||||||
|
* Otherwise, returns {@code false}.
|
||||||
*/
|
*/
|
||||||
private boolean isOemUnlockAllowed() {
|
private boolean isOemUnlockAllowed() {
|
||||||
return Settings.Global.getInt(getActivity().getContentResolver(),
|
UserHandle userHandle = UserHandle.of(UserHandle.myUserId());
|
||||||
Settings.Global.OEM_UNLOCK_DISALLOWED, 0) == 0;
|
return !(mUm.hasBaseUserRestriction(UserManager.DISALLOW_OEM_UNLOCK, userHandle)
|
||||||
|
|| mUm.hasBaseUserRestriction(UserManager.DISALLOW_FACTORY_RESET, userHandle));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user