Skip to content

Commit cca2f2f

Browse files
jparksAndroid (Google) Code Review
authored andcommitted
Merge "Send out a broadcast that the system is being factory reset." into gingerbread
2 parents 87805ca + 4ca74dc commit cca2f2f

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

core/java/android/os/RecoverySystem.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616

1717
package android.os;
1818

19+
import android.content.BroadcastReceiver;
20+
import android.content.Context;
21+
import android.content.Intent;
22+
import android.util.Log;
23+
1924
import java.io.ByteArrayInputStream;
2025
import java.io.File;
2126
import java.io.FileNotFoundException;
@@ -37,9 +42,6 @@
3742
import java.util.zip.ZipEntry;
3843
import java.util.zip.ZipFile;
3944

40-
import android.content.Context;
41-
import android.util.Log;
42-
4345
import org.apache.harmony.security.asn1.BerInputStream;
4446
import org.apache.harmony.security.pkcs7.ContentInfo;
4547
import org.apache.harmony.security.pkcs7.SignedData;
@@ -336,8 +338,21 @@ public static void installPackage(Context context, File packageFile)
336338
* @throws IOException if writing the recovery command file
337339
* fails, or if the reboot itself fails.
338340
*/
339-
public static void rebootWipeUserData(Context context)
340-
throws IOException {
341+
public static void rebootWipeUserData(Context context) throws IOException {
342+
final ConditionVariable condition = new ConditionVariable();
343+
344+
Intent intent = new Intent("android.intent.action.MASTER_CLEAR_NOTIFICATION");
345+
context.sendOrderedBroadcast(intent, android.Manifest.permission.MASTER_CLEAR,
346+
new BroadcastReceiver() {
347+
@Override
348+
public void onReceive(Context context, Intent intent) {
349+
condition.open();
350+
}
351+
}, null, 0, null, null);
352+
353+
// Block until the ordered broadcast has completed.
354+
condition.block();
355+
341356
bootCommand(context, "--wipe_data");
342357
}
343358

core/res/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
<protected-broadcast android:name="android.intent.action.NEW_OUTGOING_CALL" />
5656
<protected-broadcast android:name="android.intent.action.REBOOT" />
5757
<protected-broadcast android:name="android.intent.action.DOCK_EVENT" />
58+
<protected-broadcast android:name="android.intent.action.MASTER_CLEAR_NOTIFICATION" />
5859

5960
<protected-broadcast android:name="android.app.action.ENTER_CAR_MODE" />
6061
<protected-broadcast android:name="android.app.action.EXIT_CAR_MODE" />

0 commit comments

Comments
 (0)