Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 687232d1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Making rebootPromptAndWipeUserData a SystemApi" into main

parents e10682b7 bea048f0
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -11160,6 +11160,7 @@ package android.os {
    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void processPackage(android.content.Context, java.io.File, android.os.RecoverySystem.ProgressListener) throws java.io.IOException;
    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void processPackage(android.content.Context, java.io.File, android.os.RecoverySystem.ProgressListener) throws java.io.IOException;
    method @Deprecated @RequiresPermission(android.Manifest.permission.RECOVERY) public static void rebootAndApply(@NonNull android.content.Context, @NonNull String, @NonNull String) throws java.io.IOException;
    method @Deprecated @RequiresPermission(android.Manifest.permission.RECOVERY) public static void rebootAndApply(@NonNull android.content.Context, @NonNull String, @NonNull String) throws java.io.IOException;
    method @RequiresPermission(anyOf={android.Manifest.permission.RECOVERY, android.Manifest.permission.REBOOT}) public static int rebootAndApply(@NonNull android.content.Context, @NonNull String, boolean) throws java.io.IOException;
    method @RequiresPermission(anyOf={android.Manifest.permission.RECOVERY, android.Manifest.permission.REBOOT}) public static int rebootAndApply(@NonNull android.content.Context, @NonNull String, boolean) throws java.io.IOException;
    method @FlaggedApi("android.crashrecovery.flags.enable_crashrecovery") @RequiresPermission(android.Manifest.permission.RECOVERY) public static void rebootPromptAndWipeUserData(@NonNull android.content.Context, @NonNull String) throws java.io.IOException;
    method @RequiresPermission(allOf={android.Manifest.permission.RECOVERY, android.Manifest.permission.REBOOT}) public static void rebootWipeAb(android.content.Context, java.io.File, String) throws java.io.IOException;
    method @RequiresPermission(allOf={android.Manifest.permission.RECOVERY, android.Manifest.permission.REBOOT}) public static void rebootWipeAb(android.content.Context, java.io.File, String) throws java.io.IOException;
    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void scheduleUpdateOnBoot(android.content.Context, java.io.File) throws java.io.IOException;
    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void scheduleUpdateOnBoot(android.content.Context, java.io.File) throws java.io.IOException;
    method @Deprecated public static boolean verifyPackageCompatibility(java.io.File) throws java.io.IOException;
    method @Deprecated public static boolean verifyPackageCompatibility(java.io.File) throws java.io.IOException;
+20 −3
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ package android.os;


import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.Display.DEFAULT_DISPLAY;


import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.Nullable;
@@ -1170,11 +1171,27 @@ public class RecoverySystem {
        return removedSubsCount.get() == subscriptionInfos.size();
        return removedSubsCount.get() == subscriptionInfos.size();
    }
    }


    /** {@hide} */
    /**
    public static void rebootPromptAndWipeUserData(Context context, String reason)
     * Reboot into recovery and prompt for wiping the device.
     *
     * This is used as last resort in case the device is not recoverable using
     * other recovery steps. This first checks if fs-checkpoint is available, in
     * which case we commit the checkpoint, otherwise it performs the reboot in
     * recovery mode and shows user prompt for wiping the device.
     *
     * @param context      the context to use.
     * @param reason       the reason to wipe.
     *
     * @throws IOException if something goes wrong.
     *
     * @hide
     */
    @SystemApi
    @RequiresPermission(android.Manifest.permission.RECOVERY)
    @FlaggedApi(android.crashrecovery.flags.Flags.FLAG_ENABLE_CRASHRECOVERY)
    public static void rebootPromptAndWipeUserData(@NonNull Context context, @NonNull String reason)
            throws IOException {
            throws IOException {
        boolean checkpointing = false;
        boolean checkpointing = false;
        boolean needReboot = false;
        IVold vold = null;
        IVold vold = null;
        try {
        try {
            vold = IVold.Stub.asInterface(ServiceManager.checkService("vold"));
            vold = IVold.Stub.asInterface(ServiceManager.checkService("vold"));