Include reason when wiping data.
This will help us track down who requested a data wipe.
Bug: 17412160
Change-Id: I46b3f12a661a406450d23a7974513f40beb23c8d
diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java
index 013fd3a..560fe76 100644
--- a/src/com/android/settings/CryptKeeper.java
+++ b/src/com/android/settings/CryptKeeper.java
@@ -177,7 +177,10 @@
}
} 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 @@
* @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 @@
@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 40c2324..3521aa3 100644
--- a/src/com/android/settings/MasterClearConfirm.java
+++ b/src/com/android/settings/MasterClearConfirm.java
@@ -105,10 +105,14 @@
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.
}
}