[TOUCHCOVERY] 4EXT Recovery Touch v1.0.0.6 RC2 | with SmartFlash for s-on


Retired Recognized Developer
Jan 17, 2010

Proudly presenting:
4EXT Recovery Touch

  • brand new user interface: "4EXT UI"
  • touchscreen only
  • extremely fast
  • much more useful features than the already feature-packed 4EXT Recovery Classic v2.2.7 RC5 (see 2nd post)
  • 4EXT SmartFlash for s-on devices
  • optionally save space by configuring recovery to exclude /cache from backups
  • you can configure recovery to save even more space by excluding dalvik-cache from backups
  • calculates real space needed to complete a backup to save you from troubles
  • detects your local time zone
  • -> correct time is used for backups you start from within recovery
  • allows you to change md5sum check behaviour
  • displays and updates your current battery level in real time
  • scrollable texthistory (drag down the statusbar)
  • built-in interactivity (yes/no questions) for updater-scripts
  • built-in screenshot functionality
  • extensive theming capabilities!
  • nearly ALL YOU SEE is changeable.
  • "worker bar": create your own custom animations, there are (nearly) no limits! Use any shapes/sizes/animations et.c.
  • extra low cpu needed for that: absolutely no negative impact on backup/restore speed.
  • async UI rendering for optimal performance for the "heavy tasks" like backup/restore
  • backups even faster than with usual recoveries.
  • .. explore the new interface to see more ;)
  • includes all features of 4EXT Recovery Classic

About 4EXT SmartFlash

This is a new feature that allows recovery to flash your boot partition just like as if you were s-off.

Credits and thanks to Team Win and Dees_Troy for their commitment to the community, for their amazing idea with the Dumlock and for extra contacting me only to offer that I may use it.
You guys really rock!

SmartFlash is a different approach to Team Win's HTC Dumlock

  • Just use your recovery like you would if your device were s-off
  • No preparations needed, other than telling the recovery that your device is actually s-on
  • This is done when you install recovery and answer the question that you are s-on with "yes"
  • You can also change that setting later on via RecoveryControl -> Recovery settings, or by editing 4ext.prop manually
  • Recovery will autodetect any changes done to "boot" and only attempt to flash your boot partition if it was really changed
  • This even reduces unnecessary writes to "boot" when for example a new rom uses the same kernel as your previous one
  • Before updating your boot partition, recovery will always backup your boot partition to your sdcard just for the case something goes wrong
  • Only the 4 latest boot images are stored, older ones will be removed automatically to prevent taking up too much space.
  • In case you want to enable or disable that feature temporarily, you can use a switch inside the tools menu in recovery

How it works:

  • Recovery will detect any requested changes for your boot partition
  • When you reboot out of recovery, it will prepare updating your boot partition on next rom start
  • This means that your boot partition will be updated when you see the HTC Splash screen, followed by 1 reboot
  • So basically the only visible difference to when you are s-off is one additional reboot, which takes only a few seconds.
  • Recovery is NOT flashed to boot and boot is also only flashed once/update
  • Recovery will only attempt to flash your boot partition if it was really changed


  1. Radio and firmware:
    Usually those are flashed via bootloader flashable zips or fastboot even on devices that are s-off.
    But in case you wondered: this does not enable you to flash new firmwares or radio images via recovery.
    NOTE: You cannot use SmartFlash to SWITCH between Gingerbread and ICS roms/firmware. You must do that manually.
  2. SmartFlash needs a working kernel to be able to upgrade your boot partition.
    It cannot work in case your current kernel is incompatible with your device/hboot or has been wiped outside of recovery.
    For example you cannot erase boot via fastboot and then start up recovery to update your kernel.
    However you don't need a working rom to use it.
    The only requirement is that your current kernel is able to start (this happens before you see the boot animation) and that your system partition is mountable.


For App and Rom devs:

Make use of the Recovery Interface Api provided by the (free and paid) 4EXT Recovery Apps to push updates/mods/addons for auto installation.
Very easy to use and to integrate into Apps or even shell scripts.

Please check 3rd post.​

Info regarding 4EXT Recovery Touch and its yesno feature, or any interactive installer scripts you might already use, please see 3rd post.​

Themes for 4EXT Recovery Touch:

Official 4EXT Recovery Themes Index & Discussion Thread


  • This ensures that your downloads are ok by automatically verifying md5sums and that known issues and changelogs are easily accessible
  • When you install or download a recovery via the app it makes sure that your recovery config is correctly set up.
  • It allows to automatically setup your time zone for recovery.
  • You can use it to get notified about updates regarding your recovery version
  • You can configure it to get notified in case any critical bugs have been discovered of the recovery version you currently have installed.
  • It allows me to update known issues/changelogs immediately and to quickly pull a newly released version if there were reports about critical bugs
  • You can also use it to just download a recovery.zip containing the image. The download will be automatically verified for correct md5sums!

By default the app also saves the recovery.img you flash on your sdcard,
so you can use it to flash the recovery via fastboot in case you need to do that one day.

If you somehow lost those files, there's a direct download for a version you can flash via fastboot.

4EXT Recovery Control

For a list of its many features, visit www.4ext.net

Some examples :
  • Very easy to use, but also includes an extensive set of features available via "advanced mode"
  • Comfortable configure all settings of recovery
  • Calculate the space needed to create a new full or advanced backup

    So you can make sure the backup will succeed before even rebooting into recovery.
    Advanced Backups: While you are selecting / deselecting partitions, it will display and update the currently needed space to complete that custom backup set.​
  • Identifies and adds your romname so you don't need to type so much when chosing a meaningful name for your backup
  • When you restore a backup, the app does the md5sum check instead of the recovery
    This ensures that you know whether the restore process will succeed before even rebooting into recovery​
  • Flash as many zip files you want in one go
  • Automatically calculate and display the md5sums of all zip files you are going to flash
  • Check your backups' health to ensure they will restore later when you need them, by verifying their md5sums!
  • Optionally, but highly not recommended:
    If md5sums don't match but you really need that backup badly, you might want to restore it anyway.
    You can you this app to fix the md5sums of a given backup​
  • As an example, the following is possible to do in just one session:
    Restore a backup, set to create a backup / advanced backup before the restore,
    format all partitions with a file system of your choice before the restore process starts,
    flash additional zip files afterwards, fix permissions and select to stay inside recovery or to reboot automatically once all actions are complete.​
  • Much, much more! See www.4ext.net :)

Big thanks to craacK for a lot of great icons! :)


Big thanks to DolphiCom for all the graphics, the worker bar and a whole lot of great ideas and to the many great testers who spent all day/night testing, reporting bugs, making suggestions, helping with decisions:

Jotha, craacK, Patrics83, Euphorie, Mike1986, Whiskey103, ptr_hamilton, Lizard, TheUntouchable

Big thanks to Jotha and Whiskey103 for testing the themes features creating and their first themes for 4EXT Recovery Touch.

Also Big thanks to all the donators to 4EXT Recovery and everyone who has bought 4EXT Recovery Control! Without you I wouldn't be able to spend as much time with the project:



Of course BIG THANKS to KOUSH for ClockworkModRecovery!
Without him, 4EXT Recovery wouldn't exist!​

Thanks a lot to the following users for initial testing for specific devices :

Special thanks to Invasion2 and Stlouie65 for spending at least 10 hours of their time helping me debug a really nasty issue on the myTouch 4G!

Also thanks for obtaining calibration values for the touchscreen:


Kernel: official HTC kernel sources.
Last edited:


Retired Recognized Developer
Jan 17, 2010

Features of 4EXT Recovery Classic:
(Use 4EXT Recovery Control or Recovery Updater for complete Changelogs and Known issues!)

not all features may be relevant for all devices

Displays additional information:
  • Identifies your current rom and displays its name
  • Current filesystems on your partitions
  • Free space remaining of all of your volumes
  • Current battery charge level

Backup | Restore:
  • Correctly calculates free space needed to complete a backup ( version > 2.2.6 RC4 )
  • Tar backups (can be switched on or off)
  • Complete CWMR5 compatibility
  • All Backups you create will be named after your currently installed Rom for easier identification.
  • Never unwillingly get "downgraded" to EXT3 again
  • Always restores backups using the file systems you HAD on your partitions at the time of creation!
    -> all partitions formatted with ext4 at that time, will be restored to ext4. The same is true for ext3.​
  • You can manually change any existing Backup to ext4 or ext3
    -> so that after a restore, all partitions and up with the file system you wanted!​
  • Advanced Backup: backup only a single partition
  • Convert any of your partitions to EXT4 or EXT3 without data loss.

  • When you wipe or format it will always use the same file system you currently have.
    -> but you can change that​
  • When you format ext4 it will always create an aligned file system
  • Correctly identifies unformatted sd-ext partitions
    -> if it finds one it displays a warning and suggests you may format them by visiting the 4EXT menu​
  • Filesystem check and repair option in advanced menu

  • Alignment check of your partitions
  • Full support for up to 2 sd-ext partitions + swap (Backup/restore/format/convert, fsck, et.c.)
  • (RE-) Partition your sdcard for sd-ext without removing your fat32 partition.
  • All partitions created with 4EXTRecovery will be perfectly aligned to 4k

  • Integrated md5sum checking option

  • Most popular menu items rearranged
  • Format menu
  • Power Menu + option to reboot into bootloader
  • Changed Advanced Restore: first select what you want to restore, then select the backup
    -> Useful for restoring from "Advanced Backups"​

  • Configuration file on your sdcard where you can set options to be used by 4EXTRecovery
  • Change all settings conveniently with 4EXT Recovery Control
  • Many more options to come
  • Share your settings / themes by packing your config into a flashable theme

Other stuff:
  • USB Storage Autostart (must be switched on)
  • Mount usb storage exposes all partitions on your sdcard to the os (not just fat32)
    -> you could even partition your sdcard from your PC while connected via USB​
  • Switch haptic feedback on/off
  • Button backlights

Last edited:


Retired Recognized Developer
Jan 17, 2010
Recovery Interface Api for Apps and Scripts

Both: free and paid 4EXT apps now provide a very easy to use interface you can use to access 4EXT Recovery from within your shell scripts or apps.


  • wipe cache
  • wipe dalvik
  • wipe data / factory reset
  • install multiple zips at once
  • backup

If you are interested, please download this zip file with examples

How to make use of 4EXT Recovery Touch from within updater-scripts:

Since Beta Beta 4 you can do the following:

  • identify whether the user is running 4EXT Recovery Touch or not (to use or not to use the following commands)
  • make use of the native yes/no dialogue (confirm / cancel buttons)
  • prevent recovery from redrawing the screen ( in case you need to use your own 3rd party interactive binary )

To identify 4EXT Recovery Touch:

if getprop("ext.edition") == "ng" then

<your code>


To use the native confirm dialogues:

ui_print("4ext: show_yesno"); # <-- recovery will pause your script and display "yes / no" buttons.
run_program("/sbin/sleep", "2"); # <-- for safety since the above is executed asynchronous 

#check the return value by calling:

if getprop("ext.confirm") == "yes" then



To prevent recovery from redrawing the screen ( if you want to use an external binary that needs to occupy the screen and get the focus )

ui_print("4ext: disable_scrn_update");

# don't forget to enable it again after your yesno binary or graphical installer is finished, by calling:

ui_print("4ext: enable_scrn_update"); #otherwise the recovery will appear to be frozen as it won't update the screen anymore.
Last edited: