OSDN Git Service

Add a Global setting for disabling OEM unlocking setting
authorSteven Ng <stevenckng@google.com>
Wed, 27 Apr 2016 14:28:40 +0000 (15:28 +0100)
committerSteven Ng <stevenckng@google.com>
Fri, 13 May 2016 14:09:59 +0000 (14:09 +0000)
+ Don't enable OEM unlocking setting if the global setting disallows it.

Bug: 28163088
Change-Id: Ic306da3fa2cecb90865be055566a7e1603e6b5e2

src/com/android/settings/DevelopmentSettings.java
src/com/android/settings/Utils.java

index 1fd8451..e28a586 100644 (file)
@@ -1014,7 +1014,9 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
             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() {
index 4eaad7d..90f2726 100644 (file)
@@ -759,9 +759,13 @@ public final class Utils extends com.android.settingslib.Utils {
      * 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);
+        }
     }
 
     /**