diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 5e50147303acb..f96116c002345 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -4172,4 +4172,8 @@ one bar higher than they actually are --> false + + diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index d19cd1104ce79..f11294842128c 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -3813,4 +3813,5 @@ + diff --git a/services/core/java/com/android/server/MasterClearReceiver.java b/services/core/java/com/android/server/MasterClearReceiver.java index 06c46b908b7a8..fa1653db35797 100644 --- a/services/core/java/com/android/server/MasterClearReceiver.java +++ b/services/core/java/com/android/server/MasterClearReceiver.java @@ -16,16 +16,15 @@ package com.android.server; -import android.app.PendingIntent; import android.app.ProgressDialog; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.AsyncTask; import android.os.RecoverySystem; +import android.os.UserHandle; import android.os.storage.StorageManager; -import android.provider.Settings; -import android.telephony.euicc.EuiccManager; +import android.text.TextUtils; import android.util.Log; import android.util.Slog; import android.view.WindowManager; @@ -33,8 +32,6 @@ import android.view.WindowManager; import com.android.internal.R; import java.io.IOException; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; public class MasterClearReceiver extends BroadcastReceiver { private static final String TAG = "MasterClear"; @@ -58,6 +55,15 @@ public class MasterClearReceiver extends BroadcastReceiver { + "Intent#EXTRA_FORCE_FACTORY_RESET should be used instead."); } + final String factoryResetPackage = context + .getString(com.android.internal.R.string.config_factoryResetPackage); + if (Intent.ACTION_FACTORY_RESET.equals(intent.getAction()) + && !TextUtils.isEmpty(factoryResetPackage)) { + intent.setPackage(factoryResetPackage).setComponent(null); + context.sendBroadcastAsUser(intent, UserHandle.SYSTEM); + return; + } + final boolean shutdown = intent.getBooleanExtra("shutdown", false); final String reason = intent.getStringExtra(Intent.EXTRA_REASON); mWipeExternalStorage = intent.getBooleanExtra(Intent.EXTRA_WIPE_EXTERNAL_STORAGE, false);