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);
+        }
     }
 
     /**