[HTC U12+ ROMs, Kernels, Recoveries, & Other Develo] Freak07:
*** 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!

Hello Guys and Girls,

the title is obvious: Here is a twrp build for the HTC U12+. I spent quite a bit of time together with the dear @Captain_Throwback to get everything working.

At this place a huge thanks to @Captain_Throwback for helping me, even though not having the device at his hands!

Instructions:

With A/B devices the command

fastboot flash recovery recovery.img

is not possible, because these devices generally don´t have a recovery partition any longer. The recovery sits now in the ramdisk of the boot.img.

So how do we get TWRP on it?

The first option is to just boot TWRP temporarily with the command

fastboot boot twrp.img

. This will just boot up TWRP, not actually flash it onto your device. After rebooting the phone, TWRP will be gone. This is a great option for those, who just like to flash their phone one time, don´t want to modify the boot.img and don´t need a permanently installed TWRP.

The second option is to use the twrp flashable installer zip to install TWRP permanently to your ramdisk from the booted TWRP or magisk manager! Installing from Magisk Manager was made possible by @osm0sis!

So you see there are generally 2 steps needed on A/B devices now.

First booting TWRP. Second flashing the installer zip.

But and now comes HTC into play. When permanently flashing TWRP zip touchscreen gets disabled, because HTC added a nasty little check into the touchscreen driver. If it detects that the phone is in recovery mode it disables the touchscreen.

Luckily we found 2 ways around that!

First way is to have a custom kernel, that has this check patched out!

Second option is to use a zip we provide here, that also patches your kernel, to avoid tripping this check. The downside of flashing this zip is that all commands like

adb reboot recovery

, hitting reboot to recovery in magisk manager and finally reboot to recovery in TWRP are not working and only boot to the OS!

How to temporary boot TWRP:

1. You need a working fastboot and adb environment! Your device´s bootloader must be unlocked!

2. Download the twrp.img provided in this thread and copy it to your fastboot folder (pay attention that firmware version matches)

3. Open a command prompt in your fastboot folder!

3.a While your phone is booted to the OS and USB debugging is enabled, type:

adb reboot bootloader

4. You need to fastboot boot twrp currently

fastboot boot <filename of the twrp.img>

example:

fastboot boot twrp-3.2.3-2-ime.img

5. Wait for twrp to be booted

6. You´re now in TWRP

7. Please note that you need to fastboot boot the TWRP every single time you need it. After a reboot it will be gone!

8. Important:

Please note that

fastboot boot twrp.img

(like done in step 4) will also break OTA functionality. More about this in the FAQ.

How to permanently flash TWRP via the .zip installer

1. Make sure you have a working fastboot and adb environment! Your device´s bootloader must be unlocked!

2. Download the flashable TWRP installer zip provided in this thread!

2a. If you´re on a stock kernel that has no touchscreen fix for recovery included please also download the touchscreen_hexpatcher.zip

3. Flash the TWRP-Installer.Zip from the booted TWRP or Magisk Manager on your phone (hit the + while in modules section)

3a. Important: Directly afterwards flash the magisk zip from TWRP or Magisk Manager

If you don´t flash it you will only be able to reboot to TWRP, regardless of the option you choose

4.Only needed when on stock kernel without touchscreen fix:

also flash the touchscreen_hexpatcher.zip from TWRP or Magisk Manager

Be aware that flashing touchscreen_hexpatcher.zip will make touch work when using stock kernel but render all recovery related commands unusable.

This includes

adb reboot recovery

, reboot to recovery from magisk manager and reboot to recovery from inside TWRP.

To get into TWRP you first have to reboot to bootloader and from there on to TWRP/Recovery!

5. Reboot

6. Congratulations: you can now reboot into your permanently flashed TWRP :)

How to permanently flash TWRP via the TWRP.img file inside TWRP

1. Make sure you have a working fastboot and adb environment! Your device´s bootloader must be unlocked!

2. Download the twrp.img file from the offical twrp site

2a. If you´re on a stock kernel that has no touchscreen fix for recovery included please also download the touchscreen_hexpatcher.zip

3. Boot to TWRP. Navigate to Advanced -> Install Recovery Ramdisk -> Choose the twrp.img downloaded earlier. Wait for the flash to be completed successfully and do either 3a or 3b.

3a. If you want to be rooted flash the magisk.zip

3b. If you don´t want to be rooted navigate to Advanced -> Fix Recovery Bootloop to be able to boot into system

4.Only needed when on stock kernel without touchscreen fix:

also flash the touchscreen_hexpatcher.zip from TWRP or Magisk Manager

Be aware that flashing touchscreen_hexpatcher.zip will make touch work when using stock kernel but render all recovery related commands unusable.

This includes

adb reboot recovery

, reboot to recovery from magisk manager and reboot to recovery from inside TWRP.

To get into TWRP you first have to reboot to bootloader and from there on to TWRP/Recovery!

5. Reboot

6. Congratulations: you can now reboot into your permanently flashed TWRP :)

Few tips and tricks:

1. You need to mount ext_sd card before you can access it in the file manager

2. Go to mount and click on mount usb storage to access the ext sdcard when connected via USB :)

3. Don´t forget you can connect an usb device via usb-otg to backup/flash stuff from/to an usb storage device

Official Changelog: twrp.me

22.06.2020 3.4.0-0

HTC Firmware on Android Pie can´t be decrypted.

Add support to be able to decrypt Viper GSI - Huge Thanks to @Captain_Throwback

20.05.2019 3.3.1-0

Decryption on devices running firmware 1.68.xxx.y with security patch state of 1st April 2019 when fastboot booting the twrp.img

NOTE: The official TWRP image 3.3.1-0 will only decrypt devices on the 1st April 2019 security patch state when fastboot booted. The official TWRP image 3.3.0-0 will only decrypt devices on the 1st February 2019 security patch state when fastboot booted. The official TWRP image 3.2.3-5 will only decrypt devices on the 1st January 2019 security patch state when fastboot booted. The official TWRP image 3.2.3-3 will only decrypt devices on the 1st December 2018 security patch state when fastboot booted! The TWRP 3.2.3-2 image will only decrypt devices on the 1st Sepember 2018 security patch if fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-3 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.

17.04.2019 3.3.0-0

Decryption on devices running firmware 1.62.xxx.y with security patch state of 1st February 2019 when fastboot booting the twrp.img

Future TWRP.img files can be flashed via the "Install Recovery Ramdisk" option inside TWRP´s advanced settings (for now the twrp.zip is also still available)

If you don´t flash magisk there is also option to "Fix Recovery Bootloop" inside TWRP´s advanced settings to be able to boot to system

you are able to take screenshots via power + home button

busybox is included instead of toybox

NOTE: The official TWRP image 3.3.0-0 will only decrypt devices on the 1st February 2019 security patch state when fastboot booted. The official TWRP image 3.2.3-5 will only decrypt devices on the 1st January 2019 security patch state when fastboot booted. The official TWRP image 3.2.3-3 will only decrypt devices on the 1st December 2018 security patch state when fastboot booted! The TWRP 3.2.3-2 image will only decrypt devices on the 1st Sepember 2018 security patch if fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-3 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.

01.01.2019 3.2.3-5

Add support for successfully decryption devices on firmware 1.57.xxx.y with security patch state of 1st December 2018

NOTE: The official TWRP image 3.2.3-5 will only decrypt devices on the 1st January 2019 security patch state when fastboot booted. The official TWRP image 3.2.3-3 will only decrypt devices on the 1st December 2018 security patch state when fastboot booted! The TWRP 3.2.3-2 image will only decrypt devices on the 1st Sepember 2018 security patch if fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-3 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.

01.01.2019 3.2.3-4

System is no longer being mounted R/W when booting TWRP

NOTE: The official TWRP image 3.2.3-3 will only decrypt devices on the 1st December 2018 security patch state when fastboot booted! The TWRP 3.2.3-2 image will only decrypt devices on the 1st Sepember 2018 security patch if fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-3 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.

01.01.2019 3.2.3-3

Add support for successfully decryption devices on firmware 1.53.xxx.y with security patch state of 1st December 2018

NOTE: The official TWRP image 3.2.3-3 will only decrypt devices on the 1st December 2018 security patch state when fastboot booted! The TWRP 3.2.3-2 image will only decrypt devices on the 1st Sepember 2018 security patch if fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-3 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.

Older versions:

05.10.2018 3.2.3-2

[Fix] TWRP Image 3.2.3-2 successfully decrypts devices on 1st September Security patch state! Also see the information below.

[Tweak] resetprop included statically, remove dependencies for it thanks @Captain_Throwback, @topjohnwu and @nkk71

NOTE: The official TWRP image 3.2.3-2 will only decrypt devices on the 1st Sepember 2018 security patch state when fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-2 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.

07.09.2018 3.2.3-1

[Fix] MTP now enabled/working! (@Captain_Throwback)

[Fix] Vibration feedback now enabled/working (@notsyncing)

[Fix] Maximum brightness fixed - you need to manually adjust brightness in Settings using the slider to update (@Captain_Throwback)

[Tweak] Zip now automatically unroots the device when flashing to allow device to reboot to system normally if root isn't immediately flashed afterwards (@osm0sis)

[Tweak] /data/cache contents now mounted to /cache on flashed version (@Captain_Throwback)

NOTE: The official TWRP image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer, however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.

07.08.2018 3.2.3-0

Official TWRP release

NOTE: The official TWRP image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer, however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.

Unofficial Changelog:

21.07.2018 3.2.2-0

Initial Release

28.07.2018 3.2.2-1

Decryption is now working

02.08.2018 3.2.3-0

fix system not getting mounted by magisk installer!

fix no OS message upon reboot

flashable installer for permanently installing TWRP!

05.08.2018 3.2.3-1

fix system not being mountable as R/W in twrp

display a message asking you to reflash magisk after flashing twrp installer zip

Download:

Official

twrp.me

NOTE: The official TWRP image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer, however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.

Unofficial

XDA | AFH

Additional Downloads

Touchscreen hexpatcher | Mirror (AFH) - SEE IMPORTANT NOTES BELOW:

Only needed when on stock kernel without touchscreen fix

Flashing touchscreen_hexpatcher.zip will make touch work when using stock kernel but render all recovery related commands unusable.

This includes "adb reboot recovery", reboot to recovery from Magisk Manager and reboot to recovery from inside TWRP. To get into TWRP you first have to reboot to bootloader and from there on to TWRP/Recovery!

Known Issues:

MTP is disabled in official TWRP. This is currently an issue on several A/B devices. - Enabled since 3.2.3-1

Official TWRP can´t decrypt HTC Firmware on Android Pie!

NOTE: The

unofficial

TWRP image has MTP enabled for fastboot booting ONLY.

fastboot booting TWRP mounts the system RW and breaks ability to take an OTA.

Please take a look at FAQ, found in the 2nd post here. It contains more information

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.

We need your help!

Join the TWRP Testing group on Slack to help us test TWRP prior to official releases!

Tips on how to build TWRP for the U12+ yourself:

To build TWRP you need to use this branch as your device tree:

https://github.com/freak07/android_device_htc_ime

Additionally you these commits from gerrit to your twrp tree!

https://gerrit.omnirom.org/#/c/android_bootable_recovery/+/31760/

https://gerrit.omnirom.org/#/c/android_bootable_recovery/+/31207/

https://gerrit.omnirom.org/#/c/android_bootable_recovery/+/31021/

Depending on the base you're building for, you may need to comment/uncomment the PLATFORM_SECURITY_PATCH flag for your respective build if you want to fastboot boot the twrp.img. If the patch level of the image doesn't match the patch level of the current system, decryption will not function when fastboot booting the image. If installed via zip, the patch level doesn't matter, as it is automatically updated from system using @topjohnwu & @nkk71's resetprop.

XDA:DevDB Information

TWRP for HTC U12+ aka Imagine, Tool/Utility for the HTC U12+

Contributors

Freak07, Captain_Throwback, nkk71, topjohnwu, Dees_Troy, bigbiff, _that

Source Code: https://github.com/TeamWin/android_device_htc_ime

Version Information

Status: Stable

Current Stable Version: 3.4.0-0

Stable Release Date: 2020-06-22

Created 2018-07-21

Last Updated 2020-06-25