diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index a001fd78687..c80da678611 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -259,7 +259,11 @@ public class DevelopmentSettings extends SettingsPreferenceFragment mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); if (android.os.Process.myUserHandle().getIdentifier() != UserHandle.USER_OWNER - || mUm.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) { + || mUm.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES) + || Settings.Global.getInt(getActivity().getContentResolver(), + Settings.Global.DEVICE_PROVISIONED, 0) == 0) { + // Block access to developer options if the user is not the owner, if user policy + // restricts it, or if the device has not been provisioned mUnavailable = true; setPreferenceScreen(new PreferenceScreen(getActivity(), null)); return; diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 88c77abd516..405b33df344 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -209,6 +209,12 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In // Don't enable developer options for secondary users. if (UserHandle.myUserId() != UserHandle.USER_OWNER) return true; + // Don't enable developer options until device has been provisioned + if (Settings.Global.getInt(getActivity().getContentResolver(), + Settings.Global.DEVICE_PROVISIONED, 0) == 0) { + return true; + } + final UserManager um = (UserManager) getSystemService(Context.USER_SERVICE); if (um.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) return true;