OSDN Git Service

Include reason when wiping data.
authorJeff Sharkey <jsharkey@android.com>
Wed, 24 Sep 2014 20:57:07 +0000 (13:57 -0700)
committerJeff Sharkey <jsharkey@android.com>
Wed, 24 Sep 2014 21:08:05 +0000 (14:08 -0700)
This will help us track down who requested a data wipe.

Bug: 17412160
Change-Id: I46b3f12a661a406450d23a7974513f40beb23c8d

src/com/android/settings/CryptKeeper.java
src/com/android/settings/MasterClearConfirm.java

index 013fd3a..560fe76 100644 (file)
@@ -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);
             }
         });
 
index 40c2324..3521aa3 100644 (file)
@@ -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.
         }
     }