[RECOVERY][ocn] TWRP touch recovery

Search This thread

Captain_Throwback

Recognized Developer
Code:
*** Disclaimer ***

All flashing is done at your own risk!
While nothing from this thread should break your device,
don't come back here blaming anyone if it does!
Introduction
Team Win Recovery Project 3.x, or twrp3 for short, is a custom recovery built with ease of use and customization in mind. Its 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.

Images


Prerequisites

Installation instructions
Fastboot Install Method:
You will need the platform-tools from the Android SDK on your computer. Find the Android command line tools section on the page linked and install the SDK tools package. From the SDK Manager, download only the platform-tools to get adb and fastboot binaries.

Windows users will need proper drivers installed on their computer. You can try the Naked ADB drivers or the Universal ADB drivers if you don't already have a working driver installed

On your device, go into Settings -> About and find the Build Number and tap on it 7 times to enable developer settings. Press back and go into Developer Options and enable USB debugging. From your computer, open a command prompt and type:
Code:
adb reboot download
You should now be in fastboot mode.

Download the correct image file and copy the file into the same folder as your adb and fastboot binaries. Rename the image to twrp.img and type:
Code:
fastboot flash recovery twrp.img
Code:
fastboot reboot

Alternate Installation Method (requires prior TWRP installation):
TWRP Image Install method:
Most devices can be updated quickly and easily within TWRP if you already have version 2.8.4.0 or higher installed.
  1. Download the latest version of TWRP appropriate for your device/firmware
  2. Reboot to TWRP
  3. Hit Install and tap the "Install Image" button in the lower right
  4. Browse to the location of the TWRP image on your device and select it
  5. Select recovery from the partition list and swipe to flash

Device Changelog
Current version: 3.5.1_9-0:
Older Device-specific versions:
3.4.0-0:
3.2.3-1:
  • Updates to support AOSP Pie decryption

3.2.1-2:
  • Use /persist as Qualcomm time fix source during early boot
    - Fixes broken time issue on Oreo firmware

3.2.1-1:
  • Update to source-built kernel (2.31.709.1_R2) - fixes "reboot recovery" issue
  • Code cleanup

3.1.1-2:
  • Updated kernel to Oreo 2.31.709.1 prebuilt (patched for working touch)
  • Add support for Oreo decryption (BIG thanks to @nkk71)
  • Disable f2fs & NTFS support (until kernel can be built from source to support them)

3.1.1-1:
  • Updated kernel to 1.28 WHL source
  • Enable f2fs support
  • Enable NTFS support
  • Add /persist to recovery fstab (for future compatibility)

TWRP Official Change Log

Downloads


Known Issues
Device-specific
  • Stock Pie-based ROMs cannot be decrypted by TWRP.
  • As of version 3.3.0, stock Nougat can no longer be decrypted. Use 3.2.3 or older if you are still running stock Nougat.
TWRP Upstream
  • Encrypted backups are broken - DO NOT USE THIS FEATURE!!

Bug Reporting
If you have an issue, the first step is to post a recovery log so we can determine the cause of the issue. This is done in recovery using Advanced -> Copy Log, or adb pull /tmp/recovery.log. Once a log is uploaded we can determine how best to proceed. NOTE: Posts that are reporting bugs or issues without an accompanying recovery log will be ignored! Additionally, providing details about your device setup, including variant, firmware version, and exact steps to reproduce your issue will also be helpful in diagnosing the problem.
4rev3d.jpg

If your issue is determined to be a bug, please consider posting it to our github issues log. It's pretty much impossible for us to keep up with the more than 40 threads that we have for the devices that we "directly" support. If you have a significant problem that cannot be answered in this thread, your best bet is to contact us via our website. If you see someone that's struggling, feel free to point it out to us. We need your help to help us keep track of all of our devices! Thanks!
 
Last edited:

Captain_Throwback

Recognized Developer
TWRP Official Change Log
Current version: 3.5.1:
TeamWin has prepared a mini release before Android-11 support.

Android 9 Branch only:
  • Build fixes in 7.1 tree - CaptainThrowback
  • SAR Update script name for clarity - CaptainThrowback
  • SAR: Don't follow symbolic links for block devices - bigbiff

Android 9 and Android 10 Branches:
  • Wrappedkey support running only on FBE devices - CaptainThrowback
  • TWRP App log information reduced - epicX67
  • Refresh details after system wipe and adb sideload - AdrianDC
  • Chinese translation updates - betaxb
  • Support keymaster 2 - PeterCxy
  • add tzdata to TWRP for timezones - CaptainThrowback
  • ParitionManager: support delayed adopted storage mount - PeterCxy
  • Support to start terminal from file manager directory - AndroiableDroid
  • Nano support - nebrassy
  • Add nano support to open files from file manager - CaptainThrowback
  • Include new magisk apk support to be installed by TWRP - ianmacd
  • Add support to change directory name where TWRP stores backups - epicX67
  • Add bash support - not the default shell - DarthJabba9
  • ORS support to format data - AdrianDC
  • Add support to flash both slots when flashing an image - epicX67
  • NL translation updates - ianmacd
  • Cleanup
    • Installation cleanup - remove dupe PackageExtractFn - klabit87
    • Remove logd-reinit service - CaptainThrowback
  • Fixes
    • Restore system root context - bigbiff
    • Only include keymaster 2 if tree supports it - CaptainThrowback
    • Strip lines containing '--' in language_helper.py - ianmacd
    • Unlocalized string fix - ianmacd
Older versions:

3.5.0:
For this release we are breaking down new support for devices based on android trees and device compatibility. For Pie and earlier devices, they will be built out of the android-9.0 branch. For devices that
are released with Android Version 10, they will be supported under the android-10 branch. The separation became apparent when a lot of functionality was dropped in the android-10 release last year.

You will notice a new version scheme. Devices that are built in the android-9 tree will be suffixed with 3.5.0_9.
Devices built in the android-10 tree will be suffixed with 10 like 3.5.0_10. Each device tree update will have a
final suffix for any updates made for the device like 3.5.0_10-1.

Android 9 only
  • Fix building in android-5.1 trees - CaptainThrowback
  • New QTI Haptics Support - AndroidableDroid
  • New TSPDriver Haptics Support - LameMonster82
  • Selinux restore issues - AndroidableDroid
  • OEM build fixes - Fighter19
  • More file extension support in Gui file selector - Mauronofrio
  • FBE Fixes - CaptainThrowback
  • Ozip Decryption - Mauronofrio
  • Don't use persist for recovery logs - bigbiff
  • Delay touch startup if necessary - bigbiff
  • Spanish translation Updates - R0rt1z2
  • Fix cache wiping on Slot A only devices - AndroidableDroid
  • Exclude dumpsys directory from backups - DarthJabba9
  • Gerrman translation Updates - 4ndyZ
  • HW Rotation during runtime (does not affect touch panel) - webgeek1234
  • API 24 fixes - AndroidableDroid
  • vold_decrypt error on unmount - CaptainThrowback
  • Multiuser - warn when users are not decrypted - noahajac
  • FDE encryption fixes - CaptainThrowback
  • Crypto state fixes - nebrassy
  • Chinese translation Updates - Whyle
  • Theme updates to match android-10 release: CaptainThrowback
  • Move TWRP App install to Advanced page - Dees_Troy
  • Update Russian Translation - f2065
Android 10
  • Omni 10 minimal support: CaptainThrowback
  • General Bringup: Bigbiff, Mauronofrio, AndroidableDroid, CaptainThrowback, ianmacd, DarthJabba9
  • Encryption support: Bigbiff, Mauronofrio, CaptainThrowback
  • Fastbootd support: Bigbiff
  • Install Support: Bigbiff, CaptainThrowback
  • Magisk Support: Bigbiff
  • Backuptool Support: Chaosmaster
  • Apex support: Bigbiff
  • Dynamic Partition Support: Bigbiff
3.4.0:
System As Root (SAR)
  • Fix backup and restore using SAR - dianlujitao
  • System mount point - Chaosmaster
  • ORS - Chaosmaster
  • Zip install - Chaosmaster
  • system_root bind mount to /system - Chaosmaster
  • Autodetection of SAR - Chaosmaster
Digest
  • fix creation of digests for sub-partitions (was bugfix applied to many devices since last year) - Bigbiff
Encryption
  • ext4Crypt Wrapped Key Update - Peter Cai
  • Fix upgrading encryption key if export fails - Peter Cai
  • Fix wrapped key support for devices without metadata partition - mauronofrio
  • Don't skip decryption when using block map file in order to write to /data in ORS - CaptainThrowback
  • FDE - Decrypt master key first - AndroidableDroid
  • vold_decrypt - set Android version and patch level automatically - CaptainThrowback
  • Set wrapped decrypt support by twrp flag - Peter Cai
  • Don't try wrapped support unless needed - mauronofrio
  • restore ext4 policy on /data/cache - Bigbiff
  • multiuser decryption - Noah Jacobson
  • FDE retry - AndroidableDroid
TWRP App
  • unmount system after checking for app - Bigbiff
Prebuilt updates
  • android.hardware.confirmationui@1.0 - cryptomilk
Compilation Fixes
  • TW_EXFAT_FUSE compilation fixes - Bigbiff
  • libuuid - cryptomilk
  • 'system/etc/ld.config.txt' not found error - Martin Dünkelmann
Language Updates
  • Portugal - Vasco Machado
  • Dutch - Ian Macdonald
  • Turkish - Fatih Fırıncı
  • Localisation of Backup_Tar - Ian Macdonald
ld.config.txt
  • updates for 8.x trees - CaptainThrowback
  • fix search path for /sbin - CaptainThrowback
  • /sbin should come first in search path - Ian Macdonald
General Bugs
  • Fix persistent log storage - SyberHexen
  • Compress Persistent Logs - Bigbiff
  • FB2PNG compilation errors - Bigbiff
  • exclude per_boot from backups - Darth9
  • Unmount all directories that point to same block device - AndroidableDroid
  • Blank screen fixes - Sean hoyt
  • Toolbox is default on android-9+ - mauronofrio
Cleanup
  • Typo fix in comment - VDavid003
  • newlines in ext4crypt - CaptainThrowback
  • TW_OEM_BUILD compilation issue - Patrick Zacharias
  • Fix Dependency requirements - Dees_Troy
  • Fix Symbolic links for BB and Toolbox - Dees_Troy
Bootloader Message
  • cleanup - Alessandro Astone
  • add configurable offsets
Error Cleanup
  • uevent errors and decryption error - mauronofrio
  • using copy_file to copy files from /etc - CaptainThrowback
  • ueventd access to /acct - early directory creation in init - cryptomilk
Haptics
  • TSP Driver - LameMonster82
  • QTI Input - AndroidableDroid
update_engine
  • read all asserts - Hernán Castañón
Resetprop
  • Add Resetprop from Magisk - CaptainThrowback & mauronofrio
  • compile from source - Chaosmaster
  • fix for android-7 and earlier - Chaosmaster
  • cleanup for spaces in properties - AndroidableDroid
Properties
  • Add Property override - Chaosmaster
Backuptool
  • mount system and vendor for A/B installs for backuptool - Chaosmaster
twrpTar
  • fix backup freezes when pigz and openaes are used - Fabrice Bellet
Zip Installs
  • Info for A/B zip installing to inactive slot - Chaosmaster
  • Reboot to system button now allows to be rebooted to different partitions after zip install
  • progressbar rework - Chaosmaster
Magisk updates
  • update binaries from source - AndroidableDroid
A/B Updater Zip Template
  • rewrite A/B installer zip from scratch using a new generic template and latest magiskboot - osm0sis
  • installer zip support for recovery_a/recovery_b partition ramdisks on newer 2SI SAR A/B devices - osm0sis
  • generate installer zips for all prod A/B devices - bigbiff
  • improve installer zip dump/write speed and add more error catching - arter97 & osm0sis
OZIP Encryption Support
  • add OZIP encryption - mauronofrio
File Selector
  • Support for more extensions in File Selector - mauronofrio
3.3.1:
  • Fix selinux issues during formatting - dianlujitao
  • Various fixes for toybox and toolbox builds - CaptainThrowback and bigbiff
  • Flash both A and B partitions when installing a recovery ramdisk - Dees_Troy
  • Add option to uninstall TWRP app from /system - Dees_Troy
  • Create digest for subpartitions - bigbiff
3.3.0:
  • Merge AOSP 9.0 r3 (Dees_Troy)
  • Use ANDROID_ROOT variable instead of hard coding to /system (CaptainThrowback)
  • Decrypt FBE on 9.0 and metadata decrypt (Dees_Troy)
  • vold decrypt updates (nijel8, CaptainThrowback)
  • Support vibration on LED class devices (notsyncing)
  • Metadata decrypt support for Pixel 3 (Dees_Troy)
  • Support rotating the display via build flag (vladimiroltean)
  • Reboot to EDL mode button (mauronofrio)
  • Support MTP on FFS devices (bigbiff)
  • Update FDE decrypt to support keymaster 3 and 4 (Dees_Troy)
  • Detect mkfs.f2fs version to properly format on f2fs partitions (Dees_Troy)
  • Allow TWRP to use md5 and sha256 checksums for zip installs (bigbiff)
  • TWRP can use /data/cache/recovery and /persist/cache/recovery on AB devices with no cache partition (bigbiff)
  • Switch part of advanced menus in TWRP to use a listbox of options (Dees_Troy)
  • Use magiskboot to allow repacking boot images for installing TWRP (Dees_Troy with thanks to topjohnwu of course)
3.2.3:
  • Fix automatic installing of OTA zips on encrypted devices
  • Remove SuperSU from TWRP
  • Support both md5 and md5sum file extensions when doing MD5 checking for zip files
3.2.2:
  • adb backup fixes
  • OTA style update zips will now install automatically without prompting for decrypt
  • minor tweaks to handling date/time on Qualcomm devices
  • updates to some language translations
3.2.1:
  • minui fixes (cryptomilk)
  • Better android-8.0 compatibility in ROM trees (Dees_Troy)
  • Fix missing library in android-8.0 (nkk71)
  • Fix inconsistent SDCard naming (DevUt)
  • Default to TWRP restore instead of adb backup restore to fix restore on fresh TWRP boot (jlask)
3.2.0:
  • Allow restoring adb backups in the TWRP GUI (bigbiff)
  • Fix gzip backup error in adb backups (bigbiff)
  • Fix a bug in TWRP's backup routines that occasionally corrupted backup files (nkk71)
  • Better support for installing Android 8.0 based zips due to legacy props (nkk71)
  • Support vold decrypt with keymaster 3.0 in 8.0 firmwares (nkk71)
  • Decrypt of synthetic passwords for Pixel 2 (Dees_Troy)
  • Support newer ext4 FBE policies for backup and restore in libtar (Dees_Troy)
  • v2 fstab support (Dees_Troy)
  • Bring TWRP forward to android 8.0 AOSP base (Dees_Troy)
  • Various other minor bugfixes and tweaks
3.1.1:
  • Backups will now include adopted storage keys (Dees_Troy)
  • Fixed an adb restore issue (bigbiff)
  • Fixed rebooting when no OS is present (Dees_Troy)
  • Fixed line wrapping in the GUI terminal (_that)
  • Updated TWRP source code to AOSP 7.1.2 (Dees_Troy)
3.1.0:
  • vold decrypt on a few select HTC devices, TWRP will now attempt to use the system partition's vold and vdc binaries and libraries to decrypt the data partition (nkk71 and CaptainThrowback)
  • adb backup to stream a backup directly to or from your PC, see documentation here (bigbiff)
  • tweak MTP startup routines (mdmower)
  • support new Android 7.x xattrs for backup and restore to fix loss of data after a restore (Dees_Troy)
  • support POSIX file capabilities backup and restore to fix VoLTE on HTC devices and possibly other issues (Dees_Troy)
  • better indicate to users that internal storage is not backed up (Dees_Troy)
  • improve automatic determination of TW_THEME (mdmower)
  • minimal getcap and setcap support (_that)
  • try mounting both ext4 and f2fs during decrypt (jcadduono and Dees_Troy)
  • shut off backlight with power key (mdmower)
  • timeout during FDE decrypt (Dees_Troy and nkk71)
  • support for FBE decrypt and backing up and restoring FBE policies (Dees_Troy)
  • boot slot support (Dees_Troy)
  • TWRP app install prompt during reboot (Dees_Troy)
  • support for AB OTA zips (Dees_Troy)
  • support new Android 7.x log command (Dees_Troy)
  • update recovery sources to AOSP 7.1 (Dees_Troy)
  • numerous bugfixes and improvements by too many people to mention
3.0.3:
3.0.2:
  • Fix a bug with the input box that affected masked inputs (passwords). This fixes decrypt of full device encryption on devices that support decrypt. This bug also impacts encrypted backups. Users are highly encouraged to stop using 3.0.1 if you use encrypted backups or if you need decrypt of data in TWRP.
  • Add Greek translation to some builds.
3.0.1:
  • support new CM 13.0 pattern encryption (sultanqasim)
  • fix slow flashing issue due to modprobe (present on only some devices) (#twrp)
  • libtar updated to latest upstream and fixes (jcadduono)
  • fixes for loading custom themes (_that)
  • TWRP will now detect and install TWRP themes automatically through the normal zip install process (Dees_Troy)
  • translation updates - added Italian, Czech and Polish and significant updates to Dutch
  • progress bar improvements - progress bar updates during image flashing and better tracks progress during file system backups (tar) (Dees_Troy)
  • fix input box text display (Dees_Troy)
  • reboot option after zip install complete (bigbiff)
  • other mostly invisible bug fixes and improvements
3.0.0:
  • Completely new theme - Much more modern and much nicer looking (by z31s1g)
  • True Terminal Emulator - Includes arrow keys, tab and tab completion, etc. (by _that)
  • Language translation - It won’t be perfect and especially some languages that require large font files like Chinese & Japanese won’t be availble on most devices. Also some languages may only be partially translated at this time. Feel free to submit more translations to OmniROM’s Gerrit. (mostly by Dees_Troy)
  • Flashing of sparse images - On select devices you will be able to flash some parts of factory images via the TWRP GUI (by HashBang173)
  • Adopted storage support for select devices - TWRP can now decrypt adopted storage partitions from Marshmallow
  • Reworked graphics to bring us more up to date with AOSP - includes support for adf and drm graphics (by Dees_Troy)
  • SuperSU prompt will no longer display if a Marshmallow ROM is installed
  • Update exfat, exfat fuse, dosfstools (by mdmower)
  • Update AOSP base to 6.0
  • A huge laundry list of other minor fixes and tweaks
Additional Notes
  • WARNING: This is our first release in a long time. We have a lot of new and somewhat aggressive changes in this new release. The changes to the graphics back-end may cause some devices to not boot up properly or have other display-related issues. If you are not in a position to reflash an older build of TWRP, then wait until you are or at least wait until others have tried the new version for your specific device. You don’t want to end up with a non-working recovery and have to wait several hours or days to get to a computer to be able to fix it.
  • Notes for themers: In addition to the updated theme, we have introduced a theme version variable to the TWRP theme system. If the theme version does not match the version that TWRP expects, TWRP will reject the custom theme and load its stock theme. This change will ensure that people who update TWRP without updating their theme will still have a workable recovery. We have removed libjpeg support. The stock theme was only using a jpeg image for the splash / curtain. This change means that any custom themes will no longer be able to use jpeg images. It also means that tools used to repack recovery images with a different curtain / splash will need to be updated to use the new method.
  • Version number notes: For a while we’ve been using a 4 digit version number and reserved the 4th digit for device-specific updates. For instance, we find and fix a device-specific issue like decryption of data on Nexus 5, we would release that as a 2.8.7.1. After a while, some people would start asking where 2.8.7.1 was for other devices. So, going forward we have decided to change the numbering scheme to 3.0.0-2, etc. Our hope is that this version numbering scheme will more clearly identify that the 4th digit does not indicate a version change for the code base.
  • We need your help! The bulk of TWRP work is done by 3 people on a volunteer basis. We have pushed most of our device files to our github and we have a gerrit instance. If you have the ability, please help us maintain our official devices and/or add your device to our official device list. Thanks in advance!
2.8.7.0:
  • 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)
Additional Notes
  • Note: As always, be sure your custom theme is up to date (or remove your custom theme) before updating TWRP.
  • 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 https://jenkins.twrp.me and we have taken additional steps to make it easier for device maintainers to step up and submit patches to our gerrit server at https://gerrit.twrp.me to help us keep devices up to date and working.
 
Last edited:
  • Like
Reactions: Golv

Captain_Throwback

Recognized Developer
Frequently Asked Questions (FAQ)
1. Why is this device different than my previous HTC device?
  • With the U11 (like the 10, M9 and A9 prior to it), HTC has moved to a block-based OTA system. This means that even mounting system as read-write (as TWRP typically does during startup checks) will nullify the device's ability to take an OTA. Any other changes to the system partition will also cause an OTA to fail (even if that check is removed from the OTA zip) due to "unexpected contents." Additionally, see this HTC 10 thread.
2. I decrypted my device and now I don't have signal. Did a TWRP update cause this?
  • No, this is not a TWRP issue. It appears that on the U11, having a decrypted device prevents the SIM card/telephony from initializing, resulting in no mobile signal or data connection. The device comes with forced encryption enabled and currently must remain that way in order for mobile signal/data to work. TWRP does not change or affect any of that.
3. Which version of TWRP am I supposed to use?
  • For all ROMs except stock-based Nougat ROMs: The best version to use is 3.4.0-0, the latest official TWRP from twrp.me.
  • For stock-based Nougat ROMs: The best version to use is 3.2.3-0, from twrp.me.
4. Why is there a "System" backup option and a "System Image" backup option now?
  • The "System" option is the standard tar backup. "System Image" is a dd backup of the entire system block device (/dev/block/bootdevice/by-name/system). The "System Image" option is only relevant if your system is unmodified. This allows you to make a fully stock backup that can be restored later to take an OTA.
    • NOTE: You only need to choose ONE of these options when making a backup!!
    • NOTE 2: If you are using a FAT32-formatted card, a "System Image" backup may fail (depending on your variant), due to the 4GB file limit on that format. For a successful System Image backup, internal storage or NTFS/exFAT-formatted external storage must be used (either SD card or USB-OTG)
5. How am I supposed to root?
  • Since the U11 has dm-verity enabled and forces encryption by default, root can only be achieved using a "systemless" root method. Magisk is the recommended root solution, as it is actively developed and up-to-date. It also allows devices to pass Google's SafetyNet API for working contactless payments. See the below thread for full details.
6. How do I backup stock recovery prior to flashing TWRP?
  • On the U11, you can "fastboot boot twrp-3.1.1-0-ocn.img" (from bootloader, not download mode) this will directly boot into TWRP without modifying your currently installed recovery. You can then backup stock recovery from within TWRP.
    You flash TWRP from download mode, but you boot TWRP from bootloader ('adb reboot bootloader').
  • Another common method is to extract the stock recovery.img from the OTA firmware.zip when it's received and use that to install the OTA.
7. How do I restore stock system so that I can accept an OTA?
  • Check the "Mount system as read-only" box in the Mount menu.
  • Restore stock "System Image" backup (This will only work if you've made a System Image backup prior to making any modifications to /system).
  • Fastboot flash stock recovery (fastboot flash recovery recovery_signed.img)
    • NOTE: It is also possible to restore stock recovery via the TWRP GUI. Rename the stock recovery file to "recovery.emmc.win" and place in the backup folder with the stock system image. Recovery will then show as a restore option. MAKE SURE YOU REALLY WANT TO DO THIS, AS TWRP WILL BE GONE WHEN YOU REBOOT OUT OF RECOVERY!!
    • NOTE 2: It is possible to install an OTA without using stock recovery (i.e. installing it with TWRP). TWRP will not flash the firmware.zip included in an OTA file. Please see here for a detailed description of the process. (That post is for the HTC 10, for the U11 the proper zip filename would be 2PZCIMG.zip instead of 2PS6IMG.zip)
  • Reboot to system, install OTA.
8. What if I have an RUU? Do I need to worry about all this OTA nonsense?
  • Not if you don't care about losing all your data. If you're S-ON and have an RUU available for your exact variant (model ID and CID must match) and software number (main version must be the same or newer), then you can get back to a fully stock state by flashing an RUU.
    However, if you'd prefer to take an OTA to keep your data intact, the method stated above is how to do so. Or, you can just run a custom ROM and wait for your ROM chef to update their ROM to the latest software (though you'll still have to find a way to update your firmware if you're not S-OFF)
9. After I go through all this and successfully apply an OTA, how do I make sure I have a clean starting point again?
  • After the OTA is applied and TWRP is booted or flashed, it will once again detect an untouched system, which will mount system read-only and allow you to make a fully stock backup and start the process over again, this time with the new base.
10. After I restored my Data backup and boot back to Android, I'm entering the correct PIN/password, but it's telling me the password is wrong. What happened, and how do I fix it?
  • It appears that sometimes after restoring a backup of Data where security was enabled (such as a PIN or password lock), the device does not recognize the correct password. There are two ways to avoid this issue:
    • Disable security in Android before making a backup of data.
    • After restoring Data, while still in TWRP, use the TWRP File Manager to navigate to /data/system and delete all the locksettings.* files (such as locksettings.db, etc). When you reboot, the password will be gone.
11. Information about encrypted devices (by default all U11 devices are encrypted using FDE force-encrypt)
  • TWRP decryption on the U11 relies on the currently running ROM's own system files using 'vold_decrypt' to be able to decrypt your data partition.
  • If you intentionally or accidentally delete your system partition, and boot into TWRP without the needed system files, decryption will fail and you will be prompted to enter your password, which will continually fail due to the missing system files.
    When the TWRP console is shown during decryption, you will see a red text: "Missing files needed by vold decrypt: /system/bin/vold".
    If you encounter this situation, do not panic, do not format your data partition, you will most likely be able to decrypt again, once you have the needed setup back in place, without any data loss.
  • The easiest way to do this:
    1. Cancel the decrypt prompt
    2. Restore your last System or System_Image backup (no other partitions need to be restored!)
    3. Reboot to bootloader and then back to TWRP (since currently the direct reboot to recovery is broken due to the lack of kernel source code)
    Alternatively, in case you do not have a backup available, you can dirty flash whatever ROM you are running, or even fastboot flash a proper system.img, but considering that your system partition is not likely to have changed, since these days most things are run systemless, the restore is the easiest and fastest.
 
Last edited:
  • Like
Reactions: Golv

topjohnwu

Senior Recognized Developer / Inactive RC
Jan 31, 2012
1,849
61,431
Taipei
What's causing all the trouble regarding MTP/UMS here is HTC switching from sysfs to configfs for usb (it's weird because it's still labeled as "testing" in the latest Linux kernel....)

For those who like to have some info, you can check out the official documentation:
https://github.com/torvalds/linux/blob/master/Documentation/usb/gadget_configfs.txt
And for USB mass storage:
https://github.com/torvalds/linux/b.../ABI/testing/configfs-usb-gadget-mass-storage

Other functions can also be checked from files starting with configfs-usb-XXX here:
https://github.com/torvalds/linux/tree/master/Documentation/ABI/testing
 
Last edited:

Captain_Throwback

Recognized Developer
Well, for some reason the Downloads tab isn't working, so I haven't been able to upload the build yet. Hopefully that sorts itself out soon.

EDIT: John uploaded it, so let the flashing begin!

One thing to note is that you CAN fastboot boot TWRP on this device, so if you don't want to overwrite stock recovery, you don't have to ;)
 
Last edited:

qriozum

Senior Member
Sep 13, 2009
715
290
Fantastic :)

Great thnx guys!

--
wysłane z HTC10 Carbon-Gray, przy użyciu Tapatalka VIP v6.5.6 (883)
 

heslo.rb26

Senior Member
Nov 21, 2010
728
199
Adelaide
I'd get onto it for you but for some reason I can't log into HTCdev to unlock my bootloader to flash any recovery. It just says my user/pass doesn't work. Tried resetting password, tried making a new account, no luck! Anyone else having any issues? Keen to flash TWRP :)
 

Sirbo_239

Member
May 28, 2017
22
8
Berlin
Tried to install but got Error message in fastboot:

C:\adb>fastboot flash recovery twrp.img
target reported max download size of 536870912 bytes
sending 'recovery' (34796 KB)...
OKAY [ 0.766s]
writing 'recovery'...
FAILED (remote: Not allowed on PRODUCTION device)
finished. total time: 0.766s

C:\adb>
 

Captain_Throwback

Recognized Developer
TWRP support for the U11 is now official! I'm listed as the maintainer, although I still don't have the device. Hopefully nothing breaks anytime soon, lol...

P.S. I removed the unofficial version from the Downloads tab as it should no longer be needed - the official is newer and better :)
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 83
    3.1.1-2_UNOFFICIAL with Oreo decrypt support posted!

    A new unofficial TWRP has been posted to the Downloads tab with Oreo decrypt support. It also works with Nougat decryption. And it includes several yet-to-be-merged fixes/updates. See the OP for all relevant changes and issues.

    Since it uses a prebuilt kernel, I had to break "reboot recovery" functionality to allow touch to work when the recovery is flashed. Once kernel source is available, I can patch it properly.

    One last note - I'll continue updating TWRP as needed, but I won't be posting anymore on the forums once I reach 20,000 posts (it seems like a good number to go out on). I'll also be asking the mods to retire my titles. It's been fun, but this has all become too time-consuming and I need to spend time on more important things. I appreciate all the support I've received over the years from the community. I'll still be around, just behind the scenes now ;).
    66
    Code:
    *** Disclaimer ***
    
    All flashing is done at your own risk!
    While nothing from this thread should break your device,
    don't come back here blaming anyone if it does!
    Introduction
    Team Win Recovery Project 3.x, or twrp3 for short, is a custom recovery built with ease of use and customization in mind. Its 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.

    Images


    Prerequisites

    Installation instructions
    Fastboot Install Method:
    You will need the platform-tools from the Android SDK on your computer. Find the Android command line tools section on the page linked and install the SDK tools package. From the SDK Manager, download only the platform-tools to get adb and fastboot binaries.

    Windows users will need proper drivers installed on their computer. You can try the Naked ADB drivers or the Universal ADB drivers if you don't already have a working driver installed

    On your device, go into Settings -> About and find the Build Number and tap on it 7 times to enable developer settings. Press back and go into Developer Options and enable USB debugging. From your computer, open a command prompt and type:
    Code:
    adb reboot download
    You should now be in fastboot mode.

    Download the correct image file and copy the file into the same folder as your adb and fastboot binaries. Rename the image to twrp.img and type:
    Code:
    fastboot flash recovery twrp.img
    Code:
    fastboot reboot

    Alternate Installation Method (requires prior TWRP installation):
    TWRP Image Install method:
    Most devices can be updated quickly and easily within TWRP if you already have version 2.8.4.0 or higher installed.
    1. Download the latest version of TWRP appropriate for your device/firmware
    2. Reboot to TWRP
    3. Hit Install and tap the "Install Image" button in the lower right
    4. Browse to the location of the TWRP image on your device and select it
    5. Select recovery from the partition list and swipe to flash

    Device Changelog
    Current version: 3.5.1_9-0:
    Older Device-specific versions:
    3.4.0-0:
    3.2.3-1:
    • Updates to support AOSP Pie decryption

    3.2.1-2:
    • Use /persist as Qualcomm time fix source during early boot
      - Fixes broken time issue on Oreo firmware

    3.2.1-1:
    • Update to source-built kernel (2.31.709.1_R2) - fixes "reboot recovery" issue
    • Code cleanup

    3.1.1-2:
    • Updated kernel to Oreo 2.31.709.1 prebuilt (patched for working touch)
    • Add support for Oreo decryption (BIG thanks to @nkk71)
    • Disable f2fs & NTFS support (until kernel can be built from source to support them)

    3.1.1-1:
    • Updated kernel to 1.28 WHL source
    • Enable f2fs support
    • Enable NTFS support
    • Add /persist to recovery fstab (for future compatibility)

    TWRP Official Change Log

    Downloads


    Known Issues
    Device-specific
    • Stock Pie-based ROMs cannot be decrypted by TWRP.
    • As of version 3.3.0, stock Nougat can no longer be decrypted. Use 3.2.3 or older if you are still running stock Nougat.
    TWRP Upstream
    • Encrypted backups are broken - DO NOT USE THIS FEATURE!!

    Bug Reporting
    If you have an issue, the first step is to post a recovery log so we can determine the cause of the issue. This is done in recovery using Advanced -> Copy Log, or adb pull /tmp/recovery.log. Once a log is uploaded we can determine how best to proceed. NOTE: Posts that are reporting bugs or issues without an accompanying recovery log will be ignored! Additionally, providing details about your device setup, including variant, firmware version, and exact steps to reproduce your issue will also be helpful in diagnosing the problem.
    4rev3d.jpg

    If your issue is determined to be a bug, please consider posting it to our github issues log. It's pretty much impossible for us to keep up with the more than 40 threads that we have for the devices that we "directly" support. If you have a significant problem that cannot be answered in this thread, your best bet is to contact us via our website. If you see someone that's struggling, feel free to point it out to us. We need your help to help us keep track of all of our devices! Thanks!
    24
    TWRP support for the U11 is now official! I'm listed as the maintainer, although I still don't have the device. Hopefully nothing breaks anytime soon, lol...

    P.S. I removed the unofficial version from the Downloads tab as it should no longer be needed - the official is newer and better :)
    19
    Unfortunately not all commands works with this TWRP because it is on toybox. With TWRP v3.3.0-0 not possible to apply methods:
    - Downgrade with S-ON;
    - Change СID with S-ON.
    P.S. Not for all CIDs there are available last RUUs and we have to use Downgrade method to fix device at appearing some troubles to flash a RUU.
    Bet you didn't expect to see me here...;)

    The above issue is in the process of being fixed with a patch on Gerrit. Once that patch is merged (likely tonight, or at the latest, over the weekend/early next week), I will have an updated device version run with the updated dd binary. I have already tested the dd command with "seek" to confirm that it runs without an error. I was previously having some issues with the grep binary as well, and I submitted a patch that'll fix that too. At this point, building with toybox should be as good (or possibly better) than building with busybox, now that we're using the proper versions of the tools. @osm0sis was very helpful is providing a link to the Google documentation around which tools we should be using, so I thank him for that :).

    If you're wondering why I'm here posting, I recently handed off maintainership of the U Ultra to @tarkzim, and in the process, he took ownership of a couple of my posts. So I ended up being 2 down from 20K. I made one post in the A9 TWRP thread, because I finally conquered a longstanding issue with decryption on LineageOS over there, and felt it warranted a victory lap :cool:. And since this device is still my daily, and will always be my most current device, I figured I would check in here too, especially since @ziand posted about that issue (which I've been working on for the U12+ too, but we ended up solving a different way) and I've been working with @bigbiff for some weeks on creating a fix for it, which is finally complete.

    Hopefully official Pie for this device is just around the corner, and then maybe I'll have more work to do (though the current version of TWRP *should* decrypt Pie just fine). Guess I'll see when (if) it happens. So, this will once again be my last post, unless I somehow lose a few more, though I don't expect to.

    Cap

    P.S. If the latest TWRP doesn't flash your ROM, go tell your ROM maintainer to update their scripts to call the sh, dd and/or unzip binaries directly, like I've been telling most of them for the past several years. I'm pretty sure @LeeDroid made those updates a while ago, and I thought the Viper Devs did too, but maybe not all of them (or maybe all of the Sense ROMs for this device are old). Don't go blaming TWRP for your issues. TWRP continues to be updated as Android gets updated. So, try and make sure you and your devs keep up ;).

    P.P.S. Don't forget that you can join me in the TWRP Testing Slack (link is in OP) if you want access to new features early or if you want to help test! You can also just pop in and say hi if you miss me too much, lol.