Analysis & Opinion

Top Forum Discussions

[TOOL/UTILITY][TWRP][ 2.8][RECOVERY] TWRP 2.8.7.x TeamWin Recovery Project 6/24

5,831 posts
Thanks Meter: 5,005
By bigbiff, Senior Recognized Developer on 26th October 2012, 02:11 PM
Post Reply Subscribe to Thread Email Thread
[RECOVERY] [6/24/15] TWRP 2.8.7.x - TeamWin Recovery Project

TeamWin is proud to present TWRP 2.8.7.x for the Samsung Galaxy Note 2 (Sprint)!

Youtube video:

Full TeamWin credits are on the TWRP page on the TeamWin website:


Team Win Recovery Project 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.

Key Features:

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)
Onscreen keyboard
Decryption of /data
Easy selection of internal/external storage
See changelog below for new features

In addition to the above new features, TWRP 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.

We are looking for other talented developers, themers, and device maintainers if they are interested in helping with a free, open source project.


Information on TWRP 2 Theming -

Known Issues:

CWM backups are not compatible - please make a fresh backup in TWRP as soon as you have flashed it

Source Code:

GitHub -

Gerrit for TWRP Official Device Configs -

Gerrit Instance -

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.

t0ltespr Device Config:



All official devices are listed at the top of the page on the Team Win website. Search for the device in the textbox.


Click for live support or join us in #twrp on Freenode IRC servers
Last edited by bigbiff; 24th June 2015 at 04:08 PM.
The Following 71 Users Say Thank You to bigbiff For This Useful Post: [ View ]
26th October 2012, 02:12 PM |#2  
OP Senior Recognized Developer
Thanks Meter: 5,005
Donate to Me

- Initial ground work for software drawn keyboard (_that)
- Fix handling of wiping internal storage on datamedia devices (xuefer)
- Allow DataManager to set and read values from the system properties (xuefer)
- Fix crash when taking screenshots on arm64 devices (xuefer)
- Fix error message after an ORS script completes (Dees_Troy)
- Fix crashes / error when creating encrypted backups (_that, Dees_Troy)
- Add system read only option - more details below (Dees_Troy)
- Add resize2fs and GUI option to run resize2fs (Dees_Troy)
- Fix crash loop caused by empty lines in AOSP recovery command file (_that)
- Prevent duplicate page overlays such as multiple lock screens (mdmower)

System read only option: Devices that ship with 5.0 and higher as their initial OS are using block level OTA updates. With this style of OTA update, the update script checks to see if the system partition has ever been mounted read/write. Further, the script also usually runs an SHA sum of the entire system partition to detect if any changes have been made. If any changes have been made, the OTA update will refuse to install. Since not all OEMs and devices have factory images available, we have created a new feature in TWRP that detects if the system partition has ever been mounted read/write. If not, you will be prompted asking if you want TWRP to mount system as read/write. If you choose not to allow TWRP to mount as read/write, TWRP won't prompt to install SuperSU and TWRP won't try to patch the stock ROM to prevent TWRP from being replaced by stock recovery. The goal of this option is to hopefully allow the user to make a raw system image backup that they can use to get back to a state where they can take OTA updates again.

resize2fs feature: On some devices like the Nexus 6, the factory images include a userdata image that is the proper size only for the 32GB units. If you flash the factory image to a 64GB Nexus 6, the data partition will appear as if it only has the free space of a 32GB device. Using the resize2fs option, TWRP can resize your data partition to take up the full space available. The resize2fs may also be useful to resize system partitions on devices where custom ROM system images don't take up the full partition space. Lastly, resize2fs may be useful in some cases to reserve the proper space at the end of a data partition for a full disk encryption key, should your partition be formatted incorrectly for some reason.

This new version also marks our first set of full builds using our new jenkins build server. You can track the progress of builds at and we have taken additional steps to make it easier for device maintainers to step up and submit patches to our gerrit server at to help us keep devices up to date and working.

- Allow mulitple overlays for popup boxes (Dees_Troy)
- Add pattern style password entry for decrypt (Tassadar)
- Keyboard improvements (_that)
- Update AOSP base to 5.1 (Dees_Troy)
- Reduce theme count to 5 and rely on scaling (Dees_Troy)
- Various scaling improvements (Dees_Troy)
- Improved handling of resources in the GUI (_that)
- Make scroll bar size proportional to list size (_that)
- Allow scoll lists to render without a header (_that)
- Make console scroll per pixel with kinetic scrolling (_that)
- Support styles in XML to reduce XML size and improve consistentcy (Dees_Troy)
- Various other fixes and improvements (mdmower, bigbiff, codelover, etc)
- Scale the GUI - TWRP can read the theme's resolution and scale it up or down to fit the theme to your screen's resolution
- Improve thread handling and move input handling into the main rendering thread to improve stability
- Make MTP work even if unplugged and plugged back in
- Unify scrollable list code and make kinetic scrolling feel more natural
- Fix handling of mapped zip files for OTA updates (CM12 updater)
- USB keyboards should now work on all devices that support USB host mode via a USB OTG cable
- Add Cancel Backup capability
- Other small fixes and improvements
- MTP fixes and improvements - you can now copy zips to the root of storage - thanks to _that
- Add flashing of boot and recovery images via the TWRP GUI (Find the Images button on the Install page)
- Fix some MTP related crashes and bugs
- Eliminate TWRP toggling USB IDs during boot if MTP is enabled
- Fix various adb sideload issues
- Improve threading of actions
- Eliminate separate thread for screen timeout
- Update libblkid to 2.25.0
- Use power button as back button on watch themes for easier navigation
- Add mutex locking to data manager
- Improve custom theme handling on encrypted devices
- Allow the stock theme to be offset by build flags so we can center a lower res theme on a higher res screen especially for watches with round screens

- MTP fixes and improvements - you can now copy zips to the root of storage - thanks to _that
- MTP will now tell the host PC that storage is removed instead of disabling MTP completely
- MTP will now report the correct max file size based on the file system in use to the host PC (may fix transfer of large files)
- Update and improve fix permissions and make fixing contexts optional
- Update SuperSU in TWRP to 2.40 and update install process
- Make TWRP work properly on AArch64 (Nexus 9 is now built in true 64-bit binaries and libraries)
- Attempt to set correct permissions and contexts on all files placed in storage so backups will show in Android
- Fix kernel panic during MTP start on some devices
- Support unicode fonts on devices with True Type Font support
- Fix slider value not showing sometimes (vibration settings page)
- Toggle MTP off during adb sideload to set correct USB IDs
- Reduce library requirements for 5.0 L decrypt
- Other minor fixes and improvements
- 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
- 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. 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
-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 thanks to Samer Diab
-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 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.

- Add SELINUX Kernel to Flash SELINUX enabled ROMs
- Enable storing SELINUX contexts in the backup for restoring
- 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
- Move exfat to GPL kernel module for bugs with exfat-fuse
- 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
- Fix Data being listed twice in advanced wipe
Special Note: If you are running a custom theme, you will likely need to remove that theme before updating to as your custom theme will likely not have some of the new changes visible (e.g. you won't be able to encrypt a backup)!

-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.
- Fix Encryption

- 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
- 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
- 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
- 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
- Fix Military Time setting persisting
- 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
- Fix detection of exfat and vfat
- Fix formatting vfat past 2GB
- Revert to using kernel modules for exFAT for performance
- Uploaded with the following debrick fix courtesy of AndreiLux:
-Updated Kernel due to this recommendation from AndreiLux:
-Increased Brightness
-Added better handling of wiping on /data/media devices with Android 4.2 to help prevent multiple upgrades of the file system for multiple users

NOTE: It is not recommended to jump back and forth between 4.1 and 4.2 ROMs. If you do, this may trigger additional upgrades and you will have to manually move your files back to the "single user" layout when going back to 4.1.

- Fixed renaming of backups when a space is present
- Added decrypt button to mount page if you cancel decryption during boot
- Added ignore blkid flag support
- Fixed handling of MTD partitions during mount
- Fixed some keyboard mapping issues on 800x1280 layout
- Added ability to backup modem - I used mmcblk0p10 let me know if this is the wrong partition because I don't own the device
- Fixes / enhancements to handle the multiple user setup introduced by Android 4.2 (see
- Fixed a bug with deleting a backup with a space in the name
- Added highlights on keyboard key presses
- Updates to Fix Permissions
- Fix wipe derpage regarding /data in
- images all removed.
- Added external SDCARD exfat mounting
- Added large font
- Added code to speed up boot thanks to AndreiLux
Last edited by bigbiff; 24th June 2015 at 04:12 PM.
The Following 16 Users Say Thank You to bigbiff For This Useful Post: [ View ]
26th October 2012, 02:13 PM |#3  
OP Senior Recognized Developer
Thanks Meter: 5,005
Donate to Me

Q. Are there any themes I can use?
pctv007 has ported some themes for the Note2:

Q. Can I use Goo Manager to install TWRP if I am not rooted?

A. No, you will not have permissions to access the recovery paritition without a rooted system installed. This gives you the ability to have su installed as SUID root and with Superuser or SuperSu, you can give Android applications root access to use su to access the system as the root user.

Q. Where is the "Delete battery stats opton?"
A. We removed this option in 2.1. Please see as reference.

Q. What happens if I wipe /data?
Good description also here:

The Galaxy Note 2 is using the fuse filesystem to pretend /data/media is its own filesystem to external computers when you plug the phone into the computer. /data is one partition formatted as ext4. There is a subdirectory for media under /data which is presented as its own block device using fuse. Then mtpd uses this directory to present the directory to a host computer when plugging in via USB.

Never allow your computer to format this directory in case there is a problem with mtpd. Also NEVER wipe data under the Wipe menu unless absolutely necessary. This will remove all your files in /data/media.

On the original note, internal SDCARD was a separate file system formatted with the fat32 filesystem but exported directly through MTP.
Last edited by bigbiff; 12th March 2013 at 05:59 PM.
The Following 11 Users Say Thank You to bigbiff For This Useful Post: [ View ]
26th October 2012, 02:23 PM |#4  
-viperboy-'s Avatar
Recognized Developer
Flag PA
Thanks Meter: 12,999
Donate to Me
Thanks for letting me test this, you guys are great!!
The Following User Says Thank You to -viperboy- For This Useful Post: [ View ]
26th October 2012, 02:31 PM |#5  
b-reezy's Avatar
Senior Member
Thanks Meter: 736
Let the development begin!
26th October 2012, 04:27 PM |#6  
JoshBeach's Avatar
Recognized Themer / Recognized Developer
Flag Albany, NY
Thanks Meter: 31,750
Donate to Me
Thanks for allowing me to test this for you guys last night on irc.

looking forward to big things

can wait for a deodexed stock rom zip to build my jellybomb rom!

The Following 2 Users Say Thank You to JoshBeach For This Useful Post: [ View ]
26th October 2012, 04:32 PM |#7  
scrosler's Avatar
Recognized Developer
Flag Fargo
Thanks Meter: 64,008
Donate to Me
Originally Posted by bigbiff

Default [RECOVERY] [10/26/12] TWRP - TeamWin Recovery Project

Thanks bigbiff and dees_troy!

Originally Posted by -viperboy-

Thanks for letting me test this, you guys are great!!

Thanks foo testing -viperboy-!

I love waking up to the fresh smell of TWRP in the morning!
The Following 3 Users Say Thank You to scrosler For This Useful Post: [ View ]
26th October 2012, 04:42 PM |#8  
wwjoshdew's Avatar
Recognized Contributor
Thanks Meter: 1,399
You guys freaking rock! I'll get this on video ASAP, and add it HERE.
The Following 2 Users Say Thank You to wwjoshdew For This Useful Post: [ View ]
26th October 2012, 05:57 PM |#9  
Senior Member
Thanks Meter: 217
Originally Posted by wwjoshdew

You guys freaking rock! I'll get this on video ASAP, and add it HERE.

I second this. had only been out for one day and we are already rooted and twrped. Man i wish i knew how to make a rom this is kicking some serious booty

Sent from my SPH-L900 using xda app-developers app
26th October 2012, 06:11 PM |#10  
Anon9mouz's Avatar
Senior Member
Flag Rineyville, KY
Thanks Meter: 755
Donate to Me
Nice glad to see this here

Sent from my SPH-L700-GNEX-using Tapatalk 2
26th October 2012, 06:25 PM |#11  
Senior Member
Thanks Meter: 217
Originally Posted by Anon9mouz

Nice glad to see this here

Sent from my SPH-L700-GNEX-using Tapatalk 2

I am sorry for ranting but this is unreal.. Lee's than 24 hours and i just did my first nandroid. Wow.. this is exciting. I guess i need to hook this beast to to my pc and make sure i can copy to and from my phone. Wowowowow

Sent from my SPH-L900 using xda app-developers app

Read More
Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes