Add a Global setting for disabling OEM unlocking setting
+ Don't enable OEM unlocking setting if the global setting disallows it.
Bug: 28163088
Change-Id: Ic306da3fa2cecb90865be055566a7e1603e6b5e2
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 1fd8451..e28a586 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -1014,7 +1014,9 @@
flashLockState = mOemUnlockManager.getFlashLockState();
}
- return flashLockState != PersistentDataBlockManager.FLASH_LOCK_UNLOCKED;
+ return flashLockState != PersistentDataBlockManager.FLASH_LOCK_UNLOCKED
+ && Settings.Global.getInt(getActivity().getContentResolver(),
+ Settings.Global.OEM_UNLOCK_DISALLOWED, 0) == 0;
}
private void updateOemUnlockOptions() {
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 4eaad7d..90f2726 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -759,9 +759,13 @@
* devices allow users to flash other OSes to them.
*/
static void setOemUnlockEnabled(Context context, boolean enabled) {
- PersistentDataBlockManager manager =(PersistentDataBlockManager)
- context.getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
- manager.setOemUnlockEnabled(enabled);
+ try {
+ PersistentDataBlockManager manager = (PersistentDataBlockManager)
+ context.getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
+ manager.setOemUnlockEnabled(enabled);
+ } catch (SecurityException e) {
+ Log.e(TAG, "Fail to set oem unlock.", e);
+ }
}
/**