Skip to content

Most visited

Recently visited

navigation

RecoverySystem

public class RecoverySystem
extends Object

java.lang.Object
   ↳ android.os.RecoverySystem


RecoverySystem contains methods for interacting with the Android recovery system (the separate partition that can be used to install system updates, wipe user data, etc.)

Summary

Nested classes

interface RecoverySystem.ProgressListener

Interface definition for a callback to be invoked regularly as verification proceeds. 

Public methods

static void installPackage(Context context, File packageFile)

Reboots the device in order to install the given update package.

static void rebootWipeCache(Context context)

Reboot into the recovery system to wipe the /cache partition.

static void rebootWipeUserData(Context context)

Reboots the device and wipes the user data and cache partitions.

static void verifyPackage(File packageFile, RecoverySystem.ProgressListener listener, File deviceCertsZipFile)

Verify the cryptographic signature of a system update package before installing it.

Inherited methods

From class java.lang.Object

Public methods

installPackage

Added in API level 8
void installPackage (Context context, 
                File packageFile)

Reboots the device in order to install the given update package. Requires the REBOOT permission.

Parameters
context Context: the Context to use
packageFile File: the update package to install. Must be on a partition mountable by recovery. (The set of partitions known to recovery may vary from device to device. Generally, /cache and /data are safe.)
Throws
IOException if writing the recovery command file fails, or if the reboot itself fails.

rebootWipeCache

Added in API level 14
void rebootWipeCache (Context context)

Reboot into the recovery system to wipe the /cache partition.

Parameters
context Context
Throws
IOException if something goes wrong.

rebootWipeUserData

Added in API level 8
void rebootWipeUserData (Context context)

Reboots the device and wipes the user data and cache partitions. This is sometimes called a "factory reset", which is something of a misnomer because the system partition is not restored to its factory state. Requires the REBOOT permission.

Parameters
context Context: the Context to use
Throws
IOException if writing the recovery command file fails, or if the reboot itself fails.
SecurityException if the current user is not allowed to wipe data.

verifyPackage

Added in API level 8
void verifyPackage (File packageFile, 
                RecoverySystem.ProgressListener listener, 
                File deviceCertsZipFile)

Verify the cryptographic signature of a system update package before installing it. Note that the package is also verified separately by the installer once the device is rebooted into the recovery system. This function will return only if the package was successfully verified; otherwise it will throw an exception. Verification of a package can take significant time, so this function should not be called from a UI thread. Interrupting the thread while this function is in progress will result in a SecurityException being thrown (and the thread's interrupt flag will be cleared).

Parameters
packageFile File: the package to be verified
listener RecoverySystem.ProgressListener: an object to receive periodic progress updates as verification proceeds. May be null.
deviceCertsZipFile File: the zip file of certificates whose public keys we will accept. Verification succeeds if the package is signed by the private key corresponding to any public key in this file. May be null to use the system default file (currently "/system/etc/security/otacerts.zip").
Throws
IOException if there were any errors reading the package or certs files.
GeneralSecurityException if verification failed
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.