/**@class android.os.RecoverySystem
@extends java.lang.Object

 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.)
*/
var RecoverySystem = {

/**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).
@param {Object {File}} packageFile  the package to be verified
@param {Object {RecoverySystem.ProgressListener}} listener     an object to receive periodic progress
 updates as verification proceeds.  May be null.
@param {Object {File}} deviceCertsZipFile  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.
@throws GeneralSecurityException if verification failed
*/
verifyPackage : function(  ) {},

/**Reboots the device in order to install the given update
 package.
 Requires the {@link android.Manifest.permission#REBOOT} permission.
@param {Object {Context}} context      the Context to use
@param {Object {File}} packageFile  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.
*/
installPackage : function(  ) {},

/**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
 {@link android.Manifest.permission#REBOOT} permission.
@param {Object {Context}} context  the Context to use
@throws IOException  if writing the recovery command file
 fails, or if the reboot itself fails.
@throws SecurityException if the current user is not allowed to wipe data.
*/
rebootWipeUserData : function(  ) {},

/**{@hide}
*/
rebootWipeUserData : function(  ) {},

/**{@hide}
*/
rebootWipeUserData : function(  ) {},

/**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
 {@link android.Manifest.permission#REBOOT} permission.
@param {Object {Context}} context   the Context to use
@param {Boolean} shutdown  if true, the device will be powered down after
                  the wipe completes, rather than being rebooted
                  back to the regular system.
@throws IOException  if writing the recovery command file
 fails, or if the reboot itself fails.
@throws SecurityException if the current user is not allowed to wipe data.
@hide 
*/
rebootWipeUserData : function(  ) {},

/**Reboot into the recovery system to wipe the /cache partition.
@throws IOException if something goes wrong.
*/
rebootWipeCache : function(  ) {},

/**{@hide}
*/
rebootWipeCache : function(  ) {},

/**Called after booting to process and remove recovery-related files.
@return {String} the log file from recovery, or null if none was found.
@hide 
*/
handleAftermath : function(  ) {},


};