Saturday, February 25, 2012

Complete guide to ClockworkMod Recovery

ClockworkMod – also known as Clockwork and CWM – is a custom recovery for Android phones and tablets that allows you to perform several advanced recovery, restoration, installation and maintenance operations on your Android device that are not possible with the stock recovery. This guide will cover all that this recovery is capable of doing, and how to do it.

Here is what shall be covered in this guide:
  • About Android recovery
  • Introduction to ClockworkMod
  • Installing ClockworkMod
  • Booting into ClockworkMod
  • Feature tour

Now let's take a look at each of these topics in detail.




About Android Recovery

All Android devices are shipped with a recovery console that is basically a partition on the device's internal memory and can be booted into. The stock recovery of almost all Android devices provides a few basic yet handy options that allow you to factory reset your device and also to recover its operating system using an official ROM in zip format, but that is all you can do with it. That's where a custom recovery comes handy...

A custom Android recovery basically replaces the stock recovery with one that lets you do all you can do with the stock recovery, plus a plethora of more options to give you a lot more control on your device. With a custom recovery, you can install official and unofficial ROMs as well as other updates including apps, themes, kernels etc. using zip files, wipe not just user data but pretty much every partition on your device, mount the storage card for USB mass storage access without leaving recovery, partition your SD card, wipe Dalvik cache and battery stats, fix permissions, perform, manage and restore backups and so on.


Introduction To ClockworkMod

ClockworkMod recovery is one of the most widely used custom Android recoveries that is available for most mainstream Android devices. This recovery has been developed by Koushik Dutta (also known as Koush) – the creator of Android ROM Manager.


Installing ClockworkMod

What sets ClockworkMod recovery apart from most other custom Android recoveries is its dead simple installation process on most devices. It does require you to fully root your device in order to be installed but once rooted, installing it is as simple as installing ROM Manager and choosing the proper option.

However, in certain cases, this ROM Manager method will not work. That is the case for MediaTek chipset based devices and here is a warning for any owner of such a device: don't use ROM Manager or else you'll get a brick!!!

For those, the method you should follow in order to install ClockworkMod recovery is described on both my MT65x3 and MT6516 flashing tutorials:


Please note that those are just generic flashing tutorials. You need to find the ClockworkMod recovery image specifically designed for your device.


Booting Into ClockworkMod

Once you have ClockworkMod recovery installed on your Android device, booting into it is quite simple:

  • Using hardware button combination on most Android devices:
On most Android devices including ones by HTC, you can enter recovery by powering your device off and then powering it back on while keeping either the ‘Volume-Down’ or the ‘Volume-Up’ button pressed, depending on the device. This will enter the bootloader from where you can select the ‘RECOVERY’ option by navigating to it with the Volume key and entering it with the ‘Power’ key.
On MediaTek chipset based devices, such as G11i Pro, the method is the same as above, except that in this case the device will to boot directly into recovery mode. In very rare cases, the device needs to be connected to the computer via the normal USB data cable.
On most Samsung devices, specifically Samsung Galaxy S series devices, you must keep both the ‘Volume-Up’ and ‘Home’ keys pressed while powering on the device, to directly enter recovery. 

  • Using ADB (for advanced users):
If you have ADB installed on your computer, you can simply enable USB debugging mode on your device from Settings > Applications > Development, connect it to your computer via USB, launch a Command Prompt / Terminal window on your computer and enter this command: 
adb reboot recovery

  • Using extended power menu on your Android device:
This is another way of booting into recovery, but please note that the extended power menu is only present on some custom ROMs.




Feature Tour

Let's now take a look at all the options CWM recovery offers you to manage your Android device. In this example, the phone used was my G11i Pro running ClockworkMod recovery 5.0.2.8 but the details should apply to other devices and other 3+ versions of the recovery as well.

This is what you see when you reboot your device into ClockworkMod recovery:


You can navigate these options by using the ‘Volume-Up’ and ‘Volume-Down’ keys to highlight an option and the ‘Power’ key to enter / launch the highlighted option on most Android devices. On devices equipped with a trackball or an optical track pad such as G1, G2, Nexus One, HTC Desire etc., the trackball or track pad can be used for navigation and clicking it can be used to enter / launch the selected option. Let's review each of these options and their sub-menu options in detail.

    1 - reboot system now
    This one is self-explanatory.

    2 - apply update from sdcard
    This can be used for installation of any official or unofficial update, ROM, kernel, theme etc. that is in a zip format installable from recovery, as long as the file is named update.zip and it has been placed on the root of your SD card (i.e. not in any sub-folder). Selecting this option (and most of the options featured below) will bring up the following confirmation prompt (which you may find annoying but can avoid problems caused by accidental key presses):


    3 - wipe data/factory reset
    This option wipes all user data on the device as well as cache. Doing this will leave your phone in the state it was in when you bought it or when any custom ROM was first installed. It will also wipe any sd-ext partition that you might have setup (more on this later).

    4 - wipe cache partition
    Wipes the cache partition of the device to clear all the data accumulated there over use. This is often used before installing a new ROM, app, kernel or any similar mod via recovery.

    5 - install zip from sdcard
    This option brings up the following sub-menu:


    5.1 - apply /sdcard/update.zip
    This one is essentially the same as the apply update from sdcard option of the main menu.
    5.2 - choose zip from sdcard
    Lets you install any zip file (with any name) from any location on your SD card. The file can be for a ROM, a kernel, an application, a theme or any mod as long as it is in recovery-flashable zip format. This is the most widely used option for installing a ROM that you have downloaded and copied to your SD card. Entering this option will bring up a screen that will allow you to browse your SD card for the zip file and select it for installation as in this screenshot:


    5.3 - toggle signature verification
    Turns the signature verification on and off. When signature verification is on, you will not be able to install any custom ROMs that haven't been signed by the developers (most custom ROMs aren't signed). Switching it off skips the signature verification check and proceeds with the installation.
    5.4 - toggle script asserts
    Seldom-used option for a vast majority of users. It simply turns script asserts on or off. If you don't know about these, it's best not to change this option.
    5.5 - +++++Go Back+++++
    Takes you back to the main recovery menu, obviously!

    6 - backup and restore
    This is without any doubt one of the most important features provided by a custom recovery, the backup and restore feature – also known as Nandroid backup – allows you to take a snapshot of your phone's entire internal memory including all partitions, and save it on the SD card. Here is how it looks:


    6.1 - Backup
    Takes a Nandroid backup, as explained above.
    6.2 - Restore
    Lets you restore a previously taken backup. Entering this option presents you with a list of existing backups from the SD card that you can choose from for restoration.
    6.3 - Advanced Restore
    This option is similar to the Restore option but once a backup has been selected to be restored, this option allows you to choose what parts of it to restore. You can choose to restore the boot, system, data, cache and sd-ext partitions, as shown here:


    7 - mounts and storage
    Allows you to perform maintenance tasks on all the internal and external partitions of your android device:


    7.1 - mount/unmount /system, /data, /cache, /sdcard or /sd-ext
    These options let you toggle between mounting or unmounting these respective partitions. Most users don't need to change these options.
    7.2 - format boot, system, data, cache, sdcard or sd-ext
    These let you directly format any of these partitions. Take extreme care with this option as formatting any of these partitions will result in losing all data on them, especially the boot and system partitions. Formatting the system partition will remove your ROM and leave your phone without an operating system while wiping the boot partition may brick your phone unless you restore or flash another one before rebooting your device. To learn more about the contents of all these partitions, see our guide to Android partitions.
    7.3 - mount USB storage
    Lets you enable USB mass storage mode for your SD card right from recovery so that you can connect it to your computer via USB and transfer any files to/from it without having to leave recovery.

    8 - advanced
    This section contains a few options most users will not require, though these can come handy quite often, especially wiping Dalvik cache, which is required before most ROM installations. Here are the options from this section:


    8.1 - Reboot Recovery
    Lets you directly and very conveniently reboot from recovery right back into recovery. This is useful option for certain back-to-back installations that require the device to at least boot once between them.
    8.2 - Wipe Dalvik Cache
    Allows you to wipe the cache for the Dalvik virtual machine (the custom-built Java virtual machine for Android).This is required before most ROM installations and at other occasions too, for fixing some problems.
    8.3 - Wipe Battery Stats
    Wipes the saved battery usage statistics and effectively recalibrates the battery. Useful in various scenarios when Android is not showing correct battery levels.
    8.4 - Report Error
    In case of errors, this feature can be used to save a log of recent ClockworkMod recovery operations on the SD card that you can later report from Android using ROM Manager.
    8.5 - Key Test
    Lets you press any of the hardware keys to see if they are properly functioning, and to see their key codes.
    8.6 - Partition SD Card
    This option gives you a no-frills way to partition your SD card properly for use with ROMs that support data2ext (a very handy hack for low internal memory devices that enables an /sd-ext partition on the SD card to be used as the internal user data storage i.e. as the /data partition). Once this option is selected, you will be given options to choose the sizes for the /sd-ext partition as well as an optional /swap partition on the SD card, and will then automatically format it for you, leaving the remaining space for normal SD card usage. This option will wipe all data from your SD card so use it with caution!





    8.7 - Fix Permissions
    Fixes the file permissions for the internal memory partitions back to default. This is very useful as a fix for several errors and Force-Closes that start appearing after you or an application you installed and provided root access end up messing up the permissions of important files.

    9 - power off
    Do I need to tell you what it does? 

Well... that's all you need to know about ClockworkMod recovery.

15 comments:

  1. Thx for this very helpful tutorial !

    Is there a possibility to update such CWM (e.g. from 3.xxx to 5.xxx) ?

    br

    cm

    ReplyDelete
    Replies
    1. Yes it is, by flashing a new custom recovery (based on a new CWM version).

      Delete
  2. Do you know how you can implement the recovery option in the mtkphones power menu?

    Thanks

    ReplyDelete
  3. May I know which CWM recovery image did you use for your G11i Pro?

    ReplyDelete
    Replies
    1. Thanks Bruno. I finally found it after looking through several pages and found it was on the first page after all. Silly me :)
      Tried to use it on my H4300 HTC Hero clone, seeing that they are both MTK6573 devices, but unfortunately, it didn't work on my device. :(

      Delete
  4. Thanks a lot for your guide !
    It works, although i got an error message whilst installing..
    VERRRy handy, i paypald'd you some coffee ! :)

    ReplyDelete
  5. Thank you, very useful tut..;)

    ReplyDelete
  6. Thanks alot.

    However, i dont see the Partition SD Card option my CWM recovery options. :(
    Kindly provide your help. Bit of an emergency.

    Many thanks in advanced.
    Best regards,
    VS

    ReplyDelete
  7. Hi Bruno, thats an excellent write up.
    My question is, is there a CWM repository where I can find the proper version for my Mediatek device, since it is not yet officially supported?
    With all this flood of mediatek devices, its not easy to find the proper one :S

    ReplyDelete
  8. Thank you very much for this perfect tutorial.

    Just one question:
    The ROM I have to flash must be in .zip format or may also be in .7z?

    ReplyDelete
    Replies
    1. You can only install .zip files. The file can be for a ROM, a kernel, an application, a theme or any mod as long as it is in recovery-flashable zip format.

      If you have downloaded a ROM that is compressed as 7-Zip, then you have to decompress it. Inside there should be the .zip file you want to install.

      Delete
    2. Thank you Bruno, I paypald you a sandwich!

      Delete