summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell Brenner <russellbrenner@google.com>2015-11-05 16:03:20 -0800
committerThe Android Automerger <android-build@google.com>2015-11-30 18:04:47 -0800
commita7ff2e955d2509ed28deeef984347e093794f92b (patch)
tree62eea976a10ac64036bda26ba8257b5afaa7785e
parent665ac7bc29396fd5af2ecfdfda2b9de7a507daa0 (diff)
downloadpackages_apps_Settings-android-cts-5.1_r14.tar.gz
packages_apps_Settings-android-cts-5.1_r14.tar.bz2
packages_apps_Settings-android-cts-5.1_r14.zip
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
-rw-r--r--src/com/android/settings/MasterClearConfirm.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/com/android/settings/MasterClearConfirm.java b/src/com/android/settings/MasterClearConfirm.java
index 3521aa3140..71837c6c8c 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();