From 14bf226c79ee16fc5dd502d81e12bf18b932f39e Mon Sep 17 00:00:00 2001 From: Russell Brenner Date: Thu, 5 Nov 2015 16:03:20 -0800 Subject: [DO NOT MERGE] Preserve FRP lock if wiped during SUW Guard against FRP attacks by keeping the persistent data block intact, if a factory reset has been issued during SUW. Bug: 25290269 Change-Id: Id26b4c10235ad126632b71875592a4fa70a39b24 --- src/com/android/settings/MasterClearConfirm.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/MasterClearConfirm.java b/src/com/android/settings/MasterClearConfirm.java index 3521aa3..71837c6 100644 --- a/src/com/android/settings/MasterClearConfirm.java +++ b/src/com/android/settings/MasterClearConfirm.java @@ -20,6 +20,7 @@ import android.app.ProgressDialog; import android.content.Context; import android.content.pm.ActivityInfo; import android.os.AsyncTask; +import android.provider.Settings; import android.service.persistentdata.PersistentDataBlockManager; import com.android.internal.os.storage.ExternalStorageFormatter; @@ -62,8 +63,12 @@ public class MasterClearConfirm extends Fragment { final PersistentDataBlockManager pdbManager = (PersistentDataBlockManager) getActivity().getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE); - if (pdbManager != null && !pdbManager.getOemUnlockEnabled()) { - // if OEM unlock is enabled, this will be wiped during FR process. + if (pdbManager != null && !pdbManager.getOemUnlockEnabled() && + Settings.Global.getInt(getActivity().getContentResolver(), + Settings.Global.DEVICE_PROVISIONED, 0) != 0) { + // if OEM unlock is enabled, this will be wiped during FR process. If disabled, it + // will be wiped here, unless the device is still being provisioned, in which case + // the persistent data block will be preserved. final ProgressDialog progressDialog = getProgressDialog(); progressDialog.show(); -- cgit v1.1