TWRP 2.8




Team Win Recovery Project 2.8, or twrp2 for short, is a custom recovery built with ease of use and customization in mind. We started from the ground up by taking AOSP recovery and loading it with the standard recovery options, then added a lot of our own features.  It’s a fully touch driven user interface – no more volume rocker or power buttons to mash.  The GUI is also fully XML driven and completely theme-able.  You can change just about every aspect of the look and feel.

Donate Bitcoins: 1EUshGGz6KdsRJioozqFmn4FHQk4z3Ggxg

TWRP Frequently Asked Questions (FAQ)

Phone look:


Tablet look:

What's new in

  • Fix a bug that caused weird graphics and touch issues

What's new in

  • Add MTP support to recovery thanks mostly to bigbiff with a little help from Dees_Troy
  • Add command line capabilities - you can now execute various TWRP features via adb instead of the touchscreen
  • Add support for color in the console and give error, warning, and highlight lines different colors
  • Track backup and restore progress based on file sizes to provide a much more accurate indication of progress
  • Improve handling of /misc thanks to mdmower
  • Improve setting of time on Qualcomm devices thanks to [NUT]
  • Allow using images on slidervalue GUI objects thanks to Tassadar
  • Allow using variables and addition and subtraction in variables for easier theming
  • Add support for 1440x2560, 280x280, and 320x320 resolutions and update 240x240
  • Allow ui.xml file to include additional xml files to help break up the theme and make TWRP easier to maintain
  • Other minor fixes and improvements

Over the course of the last year or so, bigbiff has worked to migrate various Java functions from Android's MTP implementation to bring you a fully C++ based MTP implementation that allows you to transfer files to both emulated storage and Micro SD cards. It's confirmed to work on various Nexus devices but we may have to make some changes on other devices to keep Windows happy. Windows is very picky about USB IDs and its drivers. We have tested it on Windows 7 and 8 as well as Ubuntu 14.04 Trusty. MTP is enabled by default, but we do toggle it off and on automatically during certain operations such as if you choose to wipe a storage partition. You can enable or disable MTP under the mount menu in TWRP. For more about what MTP is here.

Note: Due to a weird bug with our MTP setup, you cannot copy a zip file to the root of storage with Windows. You can change the .zip to something else like .txt and then copy it to the root and rename the file back to .zip once it's copied to the device. You can also copy the zip into any subfolder.

Command line support is also now available. You can perform various OpenRecoveryScript commands via the adb shell. Depending on what you are doing you may wish to do a "twrp set tw_mtp_enabled 0" and then reboot to prevent the MTP auto toggle from killing your adb interface. You can use this option to create and restore backups, wipe, install zips, and more. Via adb shell, type twrp followed by a space then enter the OpenRecoveryScript command and hit enter. Find more OpenRecoveryScript commands here.


What's new in

  • Add GUI option to change or repair file systems on individual partitions. The change is destructive so backup your data including internal sdcard first. This option should make it a little easier to migrate a device from ext4 -> f2fs, for instance. You will find this option under Wipe -> Advanced Wipe, then select only one partition and then press the Repair or Change File System button. If a developer has added f2fs support for your device and we don't have it in TWRP, please contact me via PM to arrange for it to be added.
  • Various bugfixes to backup and restore
  • Improvements to USB storage handling
  • Added a class to search for files to make finding the correct brightness file automatic in most cases
  • Various other bugfixes and tweaks

What's new in

  • Faster graphics rendering by disabling alpha blending on fully opaque objects thanks to Tassadar
  • Allow sideloading from /tmp on encrypted devices
  • Check for a crypto footer before asking for a password to prevent user confusion
  • Additional checks for validity to auto generated backup names
  • Text wrap in the console output
  • Proper caps lock support in the keyboard
  • Mouse support via USB OTG for devices with a broken digitizer
  • Improve scanning of storage locations for OpenRecoveryScript
  • Haptic feedback for buttons, keyboard, and vibration at the end of longer running actions
  • Fixed ext4 wiping when no selinux contexts are defined for that partition (e.g. sd-ext)
  • Update SuperSU to 1.93 and improve installation process
  • Added selinux contexts restoration to fix permissions
  • Load RTC offset on Qualcomm devices to fix the date/time in recovery
  • USB Mass Storage fixes Add SELinux support checking
  • Add Disk Usage class to better handle excluded folders (e.g. Google Music cache)
  • Add 4.4 AOSP decrypt support
  • Add some toolbox utilities to TWRP (namely to support SELinux functions not supported in busybox)
  • Various SELinux fixes and bug fixes

Note: 2.7 marks the first time that we are dropping support for older devices. We are doing this because of the SELinux support needed to install 4.4 Kit Kat ROMs. The non-TWRP parts of the recovery image have to be built in at least a 4.1 tree and the kernel that is included in the recovery image has to support writing SELinux contexts. We don't own most of the devices that we support so we depend on outside testers and developers to help us update devices. In many cases we can't find someone readily. Come to #twrp on Freenode if you want to help bring your device up to date. You can tell right away if your device will support 4.4 ROMs in 2.7. Boot TWRP and press the console button (the square-ish button either in the bottom middle or upper right) to view the console output. If it doesn't say "Full SELinux support" in the console, then your device still needs some work. Help us help you.

What's new in

  • Proper backup and restore of SELinux contexts (thanks to Tassadar)
  • Pull in some ROM information for backup name generation
  • Merge all recent patches from AOSP bringing TWRP up to date with Android 4.3
  • Add 1200x1920 theme (thanks to Tassadar)
  • A few other fixes and tweaks

What's new in

  • Initial SELinux support (only a few devices, need testers so come by IRC if your device doesn't have it and needs it)
  • Initial support for f2fs file system formatting (Moto X)
  • Update SuperSU install for 4.3 ROMs
  • Fixed a permissions bug on files created during backup
  • Fixed a bug that caused TWRP to not wait for compressed backups to finish causing 0 byte files and md5sums to not match
  • Fixed decryption of encrypted data so that both TouchWiz and AOSP decryption are possible
  • Ignore lost+found folder during backup and size calculations
  • Various other minor bug fixes and tweaks

What's new in

Special Note: If you are running a custom theme, some of the changes in will likely not be visible with your custom theme.

  • Can encrypt a backup to prevent theft of private data from your backup files
  • Updated graphics / icon courtesy of shift
  • Updated exFAT to latest commits
  • Fixed a problem with Samsung TouchWiz decryption
  • Update SuperSU binary
  • Fixed saving of backup partitions list
  • Fixed saving of last used zip install folder
  • Fixed backup of datadata on devices that use a separate partition for datadata
  • Fixed some issues with the advanced wipe list (android_secure, can now wipe internal storage on data/media deivces and wipe data on the advanced list no longer formats the entire data partition)
  • Fixed some problems with partitioning a SD card
  • Various other bug fixes and tweaks

Notes about encrypted backups:
Why encrypt your backups? -- Most people store their backups on the device. Any app that has permission to access storage could potentially read your backup files and try to harvest your data. Encrypted backups also provide an added layer of security if you move your backups to other storage devices or to the cloud. The encryption that we're using is probably not strong enough for enterprise level security, but should be strong enough to make it significantly difficult to get to your data.

Encryption is using OpenAES which uses AES 128-bit cbc encryption. If you happen to use a longer password (over 16 characters) then the encryption strength improves to 192 or 256 bits. Do not forget your password. If you forget your password you will be unable to restore your backup. We don't encrypt the entire backup. Encryption is very CPU intensive and can be fairly slow even when we spread the workload over multiple cores even on the latest high-end devices. To ensure that encrypted backups don't take forever, we don't encrypt any other partitions besides /data and in /data we don't encrypt /data/app (or other app related directories where apks are stored) and we don't encrypt dalvik cache.

What's new in

Special Note: If you are running a custom theme, the changes in will likely not be compatible with your theme.

  • Added scrollable partition lists for mount, backup, restore, wipe, and storage selection
  • Add new SliderValue GUI element for selecting brightness and screen timeout (thanks to Tassadar)
  • Re-work AOSP and TWRP code to improve license compatibility between GPL and Apache
  • Added official theme for 1080x1920 portrait devices (HTC DNA, HTC Butterfly, Oppo Find 5, Sony Xperia Z, etc)
  • Fixed a problem with directory permissions on split archive backups
  • Fixed a problem with md5 verification of backups
  • Added a search function to libtar (thanks to kokotas)
  • Improve handling of XML errors (fix permissions)
  • Fixed handling of subpartitions
  • Improvements to recovery.fstab flags
  • Fixed a problem with decryption not being able to locate the decryption key in some situations

What's new in

  • Added another libtar hardlink workaround to fix restore of some backups (usually related to Ubuntu Touch)
  • More fixes for the file selector
  • Switched from using busybox md5sum to a direct C function call
  • Fixed capturing the exit status of tar based backups/restore - TWRP will display that there was an error if there was one again
  • Update exFAT to latest commits
  • Added a build flag to disable using the ioctl for screen blanking

What's new in

  • Fixed 2 bugs related to restore, one dealing with mknod failures (by bigbiff) and one dealing with restoring hardlinks (by Dees_Troy)
    NOTE: If your backups weren't restoring correctly in earlier 2.4.x versions they should restore correctly now. Hopefully you didn't delete those backups. If you're still having problems, run the restore, go to advanced and copy log, then give us the log. Complaints without logs will be rightfully ignored.
  • Added a scroll bar to file selectors and listboxes courtesy of Tassadar
  • Added libblkid for more accurate detection of file systems and can now detect exFAT properly thanks to bigbiff
  • Added a screen dim effect 2 seconds before screen off on some devices
  • Finally fixed file selector crash (one of the joys of working with multi-threaded software)
  • Fixed loading of screen timeout setting during startup
  • Improvements and bugfixes to screen timeout code
  • Fixed persistence of the 24 hour / military time setting

What's new in

  • Add screen timeout - screen will turn off automatically after 60 seconds, saves battery and prevents screen burn-in especially on AMOLED devices
  • Add a brightness setting (requires device specific setup and only some devices have been added)
  • Add a root checker and offer to install SuperSU if the device isn't already rooted
  • Add a write buffer to libtar backups, significant improvements to speeds when backing up to exFAT target, minor improvements for other file systems
  • Check and offer to fix root permissions if broken
  • Add an option for a 24 hour clock display instead of AM/PM (aka military time)
  • Move stock recovery reflash check to occur during the reboot cycle
  • Add support for some MTK6xxx devices
  • Change libtar to vfork to help prevent memory problems
  • Add a "clicked" effect to most buttons, file selector, and listbox
  • Improve timezone listbox to be more like file selector (per pixel kinetic scrolling, etc)
  • Remove some no longer used settings (Forced MD5 sum on zips, size checking on image backups)
  • Other minor bugfixes and improvements

What's new in

  • Fixed a problem with mkdosfs that formatted sdcards to 2GB
  • Fixed handoff between vfat and exFAT on devices where blkid didn't detect vfat (fixes some issues with mounting sdcards)
  • Fixed problems with changing working directory on MD5 creation/checking that may have prevented unmounting
  • Backups will now store a copy of the backup log after the backup is completed (only if backup is successful)

What's new in

  • Using libtar instead of busybox's tar for better control over tar file creation and breaking the 2GB barrier that busybox imposes (thanks to bigbiff)
  • Support for exFAT formatted sdcards (also thanks to bigbiff)
  • Support for decrypting Samsung TouchWiz encrypted devices including internal and external storage (special thanks to a3955269 for figuring it out)
  • Improvements to OpenRecoveryScript including displaying a proper GUI while the script is running
  • Added wipe cache and dalvik after ADB Sideload
  • Replaced many system calls with their native C counterparts
  • Fixed bugs in file manager where it would display an empty list after moving or deleting a folder
  • Fixed AOSP recovery commands to run after decryption on encrypted devices
  • Improvements for building TWRP in CM10.1
  • Other minor bugfixes and improvements

What's new in

  • Fix renaming backups with a space in the name
  • Add decrypt button to mount page if you cancel decryption during startup
  • Added ignore blkid flag
  • Fixed handling of MTD partitions during mount
  • Fixed some keyboard mapping issues on 800x1280 layout

What's new in

  • Fixes / enhancements to handle the multiple user setup introduced by Android 4.2 (see notes)
  • Fixed a bug with deleting a backup with a space in the name
  • Added highlights on keyboard key presses

What's new in

  • Unmount system after boot to prevent some status 7 symlink failed errors on zip install
  • USB Mass Storage code improvements
  • Better handling of mounting storage during boot for some devices
  • Fixed a problem with sizes of images (boot & recovery) after resetting defaults
  • Fixed size errors during backup for some devices on recovery, etc.
  • Fixed a problem with restoring backups when multiple archives were present

What's new in

  • Rebased onto AOSP Jelly Bean source code
  • Rewrote backup, restore, wipe, and mount code in C++ classes for easier maintenance going forward
    NOTE: backups from prior versions of TWRP are still compatible with 2.3
  • ADB sideload functionality from AOSP is included in 2.3, see this link for more info
  • Re-wrote fix permissions entirely in C++ and runs in a few seconds instead of a few minutes (thanks to bigbiff)
  • Improvements to zip finding in OpenRecoveryScript (should be a lot fewer GooManager automation issues)
  • Faster boot times
  • Added charging indicator while in recovery (only updates once every 60 seconds)

While this update may not bring a host of new must-have features, this update is a significant re-write of much of the core TWRP code. AOSP Jelly Bean recovery source moved to mostly C++ code and now all of the "TWRP" code is fully rewritten into C++ as well. Now that we've laid this groundwork, we're in a much better position to pull in future AOSP recovery updates as well as implementing more great new features.

Since TWRP 2.3 is based on AOSP jelly bean sources, TWRP now uses recovery API 3 instead of 2. Some zips may no longer work if the developer is using an out-of-date update-binary.  This API change should not be a problem on newer devices, but older devices will probably encounter several zips that need to be updated. If needed, you can try using this update-binary that was compiled with current sources. It goes in your zip file in the META-INF/com/google/android folder. If you're getting a status error 2 during zip install, then an outdated update binary is almost certainly to blame.

What's new in

  • Significantly improved sd-ext handling (ext partitions on sdcards)
  • Changes to kinetic scrolling in file selectors
  • Fixed a problem with using periods in backup names
  • Fixed problems in XML layouts with mounting system and USB storage
  • Fixed a problem with unmounting a partition before formatting during restore
  • Add Jelly Bean decrypt support
  • Updated 320x480 theme to match others (thanks to Llewelyn)
  • Improve "symlinking" of /data/media to either /sdcard or /emmc
  • Added sanitizing of device IDs for invalid characters (thanks to bigbiff)
  • Fixed free space calculation when switching backup devices on /data/media devices
  • Fixed a problem with using OpenRecoveryScript to create a backup without providing a backup name


What's new in 2.2.0:


  • On-screen keyboard in recovery! -- supports long press, backspace repeat, and swipe left deletes everything left of the cursor
  • Name new backups and rename existing backups
  • Rename files and folders in the file manager
  • Pseudo-terminal emulator
  • Support decrypting an encrypted data partition on Galaxy Nexus (enter password using keyboard)
  • Backup archive splitting -- allows backup and restore of data partitions larger than 2GB
  • Simplified XML layout support between resolutions
  • Added dual storage selection radio buttons to zip install, backup, and restore pages
  • Improved zip install compatibility
  • Updated update-binary source code
  • Numerous small bug fixes and improvements


What's new in 2.1.1 and 2.1.2:

Note: If you have a custom theme installed from 2.0 or 2.1.0, your theme will need to be updated to see the new features.  It is recommended that you remove your custom theme before installing 2.1.1

  • Per-pixel kinetic scrolling in file selectors (this will be ported to the console and listbox in a future version)
  • Updated stock themes to a unified ICS-look - thanks to racks for providing the new look!
  • Fixed some problems with the implementation of HTC Dumlock
  • Fixed some device-specific problems on Nook Color and Kindle Fire
  • Fixed a bug that caused a crash and restart of recovery when rebooting system right after a zip install
  • Fixed the size calculation of a backup and the size of /data on Galaxy Nexus
  • 2.1.2 (ONLY for Galaxy Nexus) - fixed a bug in the 720x1280 XML layout that prevented restoring a backup

What's new in 2.1:

Note: If you have a custom theme installed from 2.0, your theme will need to be updated to see the new features.  It is recommended that you remove your custom theme before installing 2.1

  • Zip queuing as seen in TWRP 1.1.x is back
  • Dual storage capable (backup, restore, and install zips from internal or external storage - you choose)
  • Slider control (swipe to confirm most actions aka swipe to wipe)
  • Lockscreen (with slider to unlock)
  • Basic file manager (copy, move, delete, and chmod any file)
  • Added support for devices with /data/media (most Honeycomb tablets, new ICS devices like Galaxy Nexus)
  • Displays sizes of each partition in the backup menu
  • Added listbox GUI element (currently used for listing time zones)
  • Updated stock XML layouts to be more consistent and easier to port to different resolutions
  • XML layout files are significantly smaller
  • Partitions available backup are more accurate for some devices
  • Removed unneeded error messages (/misc errors, unable to stat sd-ext, etc.)
  • Fixed a bug with blkid detection code
  • Fixed bug where a blank line was inserted between every line of text during zip installs
  • Fixed a bug during zip installs where an invalid zip would cause TWRP to get stuck in the zip install
  • Added setting for themers to toggle simulation mode to make theming easier
  • New devices added - Galaxy Nexus GSM & CDMA (preview only, manual install), Acer Iconia Tab A500, HTC Vivid, Motorola Defy
  • Added support for .jpg images in the theme engine
  • Changed images for stock tablet theme - makes tablet builds about 500KB smaller
  • Removed unneeded non-GUI images from GUI - makes all builds about 100KB smaller

In addition to the above new features, TWRP 2.x features a scripting engine that allows an app to send commands to the recovery for the recovery to perform during startup. We call this scripting engine OpenRecoveryScript. This engine will be put to use immediately in the GooManager app. GooManager will be able to install recoveries automatically for most supported devices. The app will also let you choose to install multiple zips from within Android, wipe cache & dalvik, and run a backup. You can find more information on how your app can use OpenRecoveryScript on this page.


GooManager has a great setup for ROM makers that will notify users automatically when there's an update to their ROM. Combined with the recovery support, this allows users to update their software similar to a normal "OTA" update from their carrier in a simple, seamless install process. The website has a fantastic developer portal that makes it easy for ROM makers to upload new ROMs and provides free, fast hosting for developers. The GooManager app will also continue to remain free.

Key Features:

  • Ability to save custom recovery settings
  • Touchscreen driven with real buttons and drag-to-scroll
  • XML-based GUI that allows full customization of the layout – true theming!
  • Settings are saved to the sdcard and persist through reboots
  • Ability to choose which partitions to back up and which to restore
  • Ability to choose to compress backups – now with pigz (multi-core processor support for faster compression times.


Information on TWRP 2 Theming

Special Thanks To:

  • Core twrp 2 development team: agrabren, Dees_Troy, ViViDboarder, and AssassinsLament
  • Toastcfh – for his underappreciated dedication to the community
  • s0up and kevank for their hard work on the web side of things.
  • The rest of Team Win: shift, onicrom, netarchy, kevank, myndwire, bigbiff, dkelle4, shinzul, spiicytuna, and eyeballer
  • Amon_RA - for his great Recovery
  • Koush - for his dedication to the community and ClockworkMod
  • For all the help with devices and testing Akmzero, arif-ali, Evil_DevNull, gus6464, Jesusice, _jmz_, NxtGenCowboy, ohshaith55, Pyrostic, [R], and Rootzwiki
  • As always thank you to the Team's supporters and the Android Community.


2011-12-17 - v2.0.0

  • Initial release of twrp 2
  • Full GUI touchscreen with buttons and XML engine
  • Fixed sdcard free space checking
  • Fixed bugs with MD5 zip file checking
  • Now check more places for a serial number
  • Too many fixes versus twrp 1.1.1 to list

Officially Supported Devices:

All official devices are listed at the top of this page. Visit the device page for specific directions and downloads.

If you don't see your device listed, don't worry! We'll be adding more devices soon.

Previous versions of TWRP can be found here (mirror).

Known Issues (affects all devces):

  • Zip files that install more data than free space is available will crash or hang recovery (AOSP issue)

Source Code:


How to Compile TWRP from Source

How to Submit a Code Change for TWRP using Gerrit

If you have made your own twrp build for an unsupported device, please let us know. We might add your build to the list of unofficial builds. Bear in mind that we are working hard to add more devices and we may add your device to our official build list later.


Click here for live support or join us in #twrp on Freenode IRC servers

TWRP 2.x in the News:

Feel free to contact us for a press kit, interviews, more images, or any questions!