From 1327a97a076d67f296f338653678cc383ebfa002 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Thu, 2 Jun 2016 08:47:56 -0700 Subject: Add RecoverySystem.rebootWipeAb() system API. It reboots into recovery and securely wipes an A/B device. Bug: 27253717 Bug: 29159185 Change-Id: I8252894db5c1df48bc4a8728b7f0e0f18aebc44c --- core/java/android/os/RecoverySystem.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'core/java/android/os/RecoverySystem.java') diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java index acb24e1ccf9e..1979a3f7da79 100644 --- a/core/java/android/os/RecoverySystem.java +++ b/core/java/android/os/RecoverySystem.java @@ -661,6 +661,31 @@ public class RecoverySystem { bootCommand(context, "--wipe_cache", reasonArg, localeArg); } + /** + * Reboot into recovery and wipe the A/B device. + * + * @param Context the Context to use. + * @param packageFile the wipe package to be applied. + * @param reason the reason to wipe. + * + * @throws IOException if something goes wrong. + * + * @hide + */ + @SystemApi + public static void rebootWipeAb(Context context, File packageFile, String reason) + throws IOException { + String reasonArg = null; + if (!TextUtils.isEmpty(reason)) { + reasonArg = "--reason=" + sanitizeArg(reason); + } + + final String filename = packageFile.getCanonicalPath(); + final String filenameArg = "--wipe_package=" + filename; + final String localeArg = "--locale=" + Locale.getDefault().toString(); + bootCommand(context, "--wipe_ab", filenameArg, reasonArg, localeArg); + } + /** * Reboot into the recovery system with the supplied argument. * @param args to pass to the recovery utility. -- cgit v1.2.3