From 1de688d911cf96eff39eddc5a7070e3c44efefc1 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Wed, 24 Sep 2014 13:57:07 -0700 Subject: [PATCH] Include reason when wiping data. This will help us track down who requested a data wipe. Bug: 17412160 Change-Id: I46b3f12a661a406450d23a7974513f40beb23c8d --- src/com/android/settings/CryptKeeper.java | 13 ++++++++++--- src/com/android/settings/MasterClearConfirm.java | 6 +++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java index 013fd3a78a9..560fe76f870 100644 --- a/src/com/android/settings/CryptKeeper.java +++ b/src/com/android/settings/CryptKeeper.java @@ -177,7 +177,10 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList } } else if (failedAttempts == MAX_FAILED_ATTEMPTS) { // Factory reset the device. - sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR")); + Intent intent = new Intent(Intent.ACTION_MASTER_CLEAR); + intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); + intent.putExtra(Intent.EXTRA_REASON, "CryptKeeper.MAX_FAILED_ATTEMPTS"); + sendBroadcast(intent); } else if (failedAttempts == -1) { // Right password, but decryption failed. Tell user bad news ... setContentView(R.layout.crypt_keeper_progress); @@ -536,7 +539,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList * @param corrupt true if userdata is corrupt, false if encryption failed * partway through */ - private void showFactoryReset(boolean corrupt) { + private void showFactoryReset(final boolean corrupt) { // Hide the encryption-bot to make room for the "factory reset" button findViewById(R.id.encroid).setVisibility(View.GONE); @@ -547,7 +550,11 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList @Override public void onClick(View v) { // Factory reset the device. - sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR")); + Intent intent = new Intent(Intent.ACTION_MASTER_CLEAR); + intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); + intent.putExtra(Intent.EXTRA_REASON, + "CryptKeeper.showFactoryReset() corrupt=" + corrupt); + sendBroadcast(intent); } }); diff --git a/src/com/android/settings/MasterClearConfirm.java b/src/com/android/settings/MasterClearConfirm.java index 40c23244a48..3521aa3140b 100644 --- a/src/com/android/settings/MasterClearConfirm.java +++ b/src/com/android/settings/MasterClearConfirm.java @@ -105,10 +105,14 @@ public class MasterClearConfirm extends Fragment { private void doMasterClear() { if (mEraseSdCard) { Intent intent = new Intent(ExternalStorageFormatter.FORMAT_AND_FACTORY_RESET); + intent.putExtra(Intent.EXTRA_REASON, "MasterClearConfirm"); intent.setComponent(ExternalStorageFormatter.COMPONENT_NAME); getActivity().startService(intent); } else { - getActivity().sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR")); + Intent intent = new Intent(Intent.ACTION_MASTER_CLEAR); + intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); + intent.putExtra(Intent.EXTRA_REASON, "MasterClearConfirm"); + getActivity().sendBroadcast(intent); // Intent handling is asynchronous -- assume it will happen soon. } }