Development [RECOVERY][3.7.0-12.1][UNOFFICIAL][UNIFIED] TWRP with A12/A13 encryption support

Search This thread

der_akinator

Senior Member
Mar 27, 2015
171
265
Berlin
OnePlus 3T
OnePlus 9 Pro

Evon88

Senior Member
Feb 4, 2019
120
16
OnePlus 6
This is an unofficial build of TWRP, based on the Android 12.1 branch, that supports encryption used by most Android 12 and 13 ROMs.

As always I'm not responsible any bricked device or data loss resulting from the use of this TWRP version. You use this at your own risk.

For ROMs using FBEv1 encryption aka A11 encryption, please use the official builds by
@Nebrassy from:


Download:



Installation:
  1. Get your rom's vendor_boot image. For most ROMs this can usually be downloaded. For OOS based ROMs you can get it for example by extracting it from the official payload.bin with payload-dumper-go. A third universal option, if you have root, is to use the command "dd if=/dev/block/by-name/vendor_boot_SLOT of=/sdcard/vendor_boot.img" on your device. This writes the vendor_boot image to your sdcard folder, but you have to substitute SLOT with either a or b, depending on your currently active slot.
  2. Reboot to bootloader.
  3. Run "fastboot flash vendor_boot vendor_boot.img" with the TWRP vendor_boot image.
  4. Run "fastboot boot boot.img" with the TWRP boot image.
  5. Go to Advanced > Flash Current TWRP.
  6. After that is done, if you were using a custom kernel, reflash it now.
  7. If you were using magisk, reflash it now.
  8. Reboot to bootloader.
  9. Run "fastboot flash vendor_boot vendor_boot.img" with the ROM vendor_boot image from step one.
In the case you just want to test TWRP without installation, please skip steps 5-7.
Permanent installation works fine for me with crdroid 13 and magisk installed. I have not tested any other ROMs or custom kernels. After permanent installation you can at any time reboot to recovery without reflashing vendor_boot. During a ROM update use the "Automatically reflash TWRP after flashing a ROM" option in the install zip menu to preserve TWRP.


Source Code:

Bugs:

Please let me know.


Thanks to:
  • Nebrassy
  • TWRP team
  • LineageOS
broooooooo, now you are helping all op9p users
much love and respect 😭
 

osm0sis

Senior Recognized Developer / Contributor
Mar 14, 2012
15,311
34,664
Halifax
GT-i9250
Google Nexus 4
Update

Hi everyone,
I just uploaded a new build. It fixes some missing firmware files and kernel module loading.
USB OTG, vibration and battery status is now working.

Download:
Does the A/B flashable zip with the TWRP ramdisk in it work to install it? Might be able to skip the vendor_boot steps that way.

I will try it. Thanks for your tip.
I tried it out over latest Lineage and it does seem to work! I even then re-rooted with Magisk and re-flashed blu_spark from within TWRP. 🥳

Only issue (but it's pretty big) is that vibration is broken and it seems to hang the UI hard any time it tries to vibe, so my workaround is to hit Cancel at the Decrypt page, go to Settings and turn all the vibration down to 0, then go back to Mount and Decrypt Data from there. (You can also just be verrrrrry patient when doing pattern.)

Not sure if this is because I installed the whole ramdisk directly like that or because it's over Lineage. I'm guessing the latter, with some kind of modules mismatch?

Any ideas how to resolve that? Disabling vibration entirely might be needed, since I recall @Nebrassy never got it working across all ROMs.

Either way, being able to use the TWRP zips will save a lot of headaches for rooted users. 🙂

P.S. Also great that vendor_boot is only need for fastboot tempboot, since that means my twrp_ab addon.d-v2 script should work for us already! 🤘

P.P.S. We need to get you in the TWRP Development Zulip if you're not lurking there already: https://rebrand.ly/teamwin-recovery-zulip-community

Edit: twrp-installer-3-7-0_12-0-20221129-lemonadep-zip attachment removed since a newer build exists.
 
Last edited:

der_akinator

Senior Member
Mar 27, 2015
171
265
Berlin
OnePlus 3T
OnePlus 9 Pro
I tried it out over latest Lineage and it does seem to work! I even then re-rooted with Magisk and re-flashed blu_spark from within TWRP. 🥳

Only issue (but it's pretty big) is that vibration is broken and it seems to hang the UI hard any time it tries to vibe, so my workaround is to hit Cancel at the Decrypt page, go to Settings and turn all the vibration down to 0, then go back to Mount and Decrypt Data from there. (You can also just be verrrrrry patient when doing pattern.)

Not sure if this is because I installed the whole ramdisk directly like that or because it's over Lineage. I'm guessing the latter, with some kind of modules mismatch?

Any ideas how to resolve that? Disabling vibration entirely might be needed, since I recall @Nebrassy never got it working across all ROMs.

Either way, being able to use the TWRP zips will save a lot of headaches for rooted users. 🙂

P.S. Also great that vendor_boot is only need for fastboot tempboot, since that means my twrp_ab addon.d-v2 script should work for us already! 🤘

P.P.S. We need to get you in the TWRP Development Zulip if you're not lurking there already: https://rebrand.ly/teamwin-recovery-zulip-community
Yes, your twrp install script works for me too. Tanks for that.

I disabled vibration in a fresh build. Maybe I will find a way to get it working but it isn't important.

I think it's is reasonable for non root users to take the extra two steps in comparison to the official version because it's a one time thing. Updates are possible by using the zip installer.
 
  • Like
Reactions: galaxys and osm0sis

erad1

Senior Member
Dec 3, 2010
1,418
773
MiamiBeach
OnePlus 6
So first off ...thanks for the awesomeness! But ... I'm having an issue with roms not flashing because of a "timestamp" issue? Is there a workaround?
 

GeminiRx

Senior Member
Apr 16, 2011
164
16
HTC Desire
Samsung Galaxy S4
Quick question.
The following is not clear to me.
In step 1 it says to download your own vendor_boot.
In step 3 it says to flash it but which one? My own one or the TWRP one. (I'm currently on CrDroid13)
 

osm0sis

Senior Recognized Developer / Contributor
Mar 14, 2012
15,311
34,664
Halifax
GT-i9250
Google Nexus 4
You flash the twrp one in order to boot twrp, then after permanent install, you flash yours or it won't boot to os
Now that there's a TWRP zip you could skip vendor_boot shenanigans altogether by, a) flash from Magisk app, or even b) flash from custom ROM recovery like Lineage Recovery. 🤘
 

TheSayaMan

Senior Member
Sep 12, 2016
1,016
419
OnePlus 9 Pro
Now that there's a TWRP zip you could skip vendor_boot shenanigans altogether by, a) flash from Magisk app, or even b) flash from custom ROM recovery like Lineage Recovery. 🤘
Actually no, when you boot this twrp, it will not boot to twrp without the twrp vendor_boot. Likewise, the os won't boot unless you replace it with the original vendor_boot from stock, rom, etc.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 10
    Good new for OOS users. One of the TWRP devs found a workaround for data restore on OOS. Just delete "/data/system/users/0/package-restrictions.xml", after data is restored. I will exclude this file by default in a future build, but for existing backups, the file must always be removed manually.

    Edit:
    This is also useful for custom ROMs, because it makes first boot faster and eliminates the need to reboot again.
    5
    Update
    • Fix backups and logs not accessible from system
    If you already have backups that aren't accessible from system, flash change_backup_selinux_context.zip which is available in the latest download folder. All backups made with TWRP builds starting from 14-01-23 (aka 3.7.0-12.1-4) are affected.

    3
    Or use Titanium Backups?

    I'd use Swift Backup instead if I were you. TiBu hasn't been updated in ages, and it can't handle split APKs properly, thus you'd be boned when you tried to restore those apps (and it's not possible to tell if an app uses split APKs without, presumably, an app that can examine the APKs and tell you). Swift doesn't have nearly the number of esoteric bells and whistles that TiBu has (so if you need them, you can still use TiBu for them), but it has the advantage of a modern interface and can properly handle app backups on modern versions of Android. (It'll also back up text messages, call logs, wallpapers, and WiFi networks.)
    3
    Titanium Backup backs up messages but can't seem to restore them. I'm not sure when this started - maybe Android 12?

    One more reason to stop using it, I guess. 😉 TiBu has fallen so far behind (it hasn't been updated in more than three years!) that IMHO it shouldn't even be listed on anyone's list of "essential utilities" anymore. Swift Backup and others are more than capable of taking its place.
  • 48
    This is an unofficial build of TWRP, based on the Android 12.1 branch, that supports encryption used by Android 12 and 13 ROMs. This build is tested on OP9pro but it was confirmed to work on OP9 with OOS 12 firmware installed. Other configurations have to be tested.

    As always I'm not responsible for any bricked device or data loss resulting from the use of this TWRP builds. You use this at your own risk.

    For ROMs using FBEv1 encryption aka A11 encryption, please use the official builds by
    @Nebrassy from:

    Download:


    Installation:

    Permanent installation is not possible with TMO stock ROM installed.


    To temporarily boot TWRP, use the first three steps of Option 3.
    For permanent installation, you have three options depending on your current system.

    1. Option for rooted devices:
    1. Download the twrp-installer zip
    2. Flash it with Magisk manager or some other kernel flash utility
    3. Reflash your custom kernel and Magisk if previously installed
    2. Option for users with other custom recoveries but without root:
    1. Download the twrp-installer zip
    2. Flash it with "adb sideload twrp-installer*.zip"
    3. Reboot to recovery
    4. Reflash your custom kernel and Magisk if previously installed
    3. Option is universal:
    1. OOS13 (firmware) users please download boot-oos13.img. All other users please use boot.img
    2. Reboot to bootloader
    3. Run "fastboot boot boot*.img" with the boot image
    4. Go to Advanced > Flash Current TWRP
    5. Reflash your custom kernel and Magisk if previously installed

    Uninstall:

    Just flash the boot partition with your current ROMs boot image with the following steps:
    1. Reboot to bootloader
    2. Run "fastboot flash boot_a YOUR ROM BOOTIMAGE"
    3. Run "fastboot flash boot_b YOUR ROM BOOTIMAGE"
    Alternatively you can flash your currently installed OTA zip, which overwrites boot on the unused slot, but not on the currently used one.

    TWRP Updates:
    1. Download and flash the twrp-installer zip
    2. After that reflash your custom kernel and Magisk if previously installed

    ROM Updates:

    Please follow the official update instructions for your ROM!


    If they give an option to update via recovery you have to substitute adb sideload commands with zip installations. And use the "Automatically reflash TWRP after flashing a ROM" option if you are going to install a ROM zip to preserve TWRP.

    In case your ROM does not provide a recovery update instruction you can try to update via recovery but you are on the safe side if you follow the official instructions. They always have a reason for their particular update instructions!

    Instructions that work for me (on LOS based ROMs):
    1. Flash ROM zip with "Automatically reflash TWRP after flashing a ROM" checked
    2. Flash your previously installed zips (custom kernel, Gapps, Magisk, etc)
    3. Reboot to system
    4. If Gapps packages keep crashing:
      1. Reboot to TWRP
      2. Flash Gapps again
      3. Reboot to system
    For OOS updates you can follow these steps (I haven't tested them):

    About backups/restore:

    Restore data only WITHOUT pin/pattern set.


    Backups can be made with or without pin/pattern set. It is always good practice to copy your backups to your PC or an USB drive. Also after you restored your data partition you have to reboot to system and do a second reboot to get a working system.
    To make first boot faster and eliminate the need to reboot again, additionally use the step mandatory for OOS users.

    If you want to copy your backup to PC, but it doesn't show up, flash change_backup_selinux_context.zip, which is available in download folder.

    For OOS users:
    When data is restored, you have to delete "/data/system/users/0/package-restrictions.xml" before rebooting to system.

    In case you restore a backup with pin/pattern set or have some other issues I have a guide that works for me:

    Source Code:
    Bugs:
    • Permanent installation besides TMO stock isn't possible
    • In case you notice anything else please let me know.

    Thanks to:
    • @Nebrassy for the original device tree
    • @osm0sis for the zip installer
    • TWRP team
    • LineageOS
    13
    Update
    • /data/fonts/* is excluded from backups (has to be verified by someone with backup errors)
    • screen turns completely off now
    • updated firmware files from LE2125_11.C.63 (maybe this helps with OOS13 problems)
    • initial installation is now possible without flashing vendor_boot (I tested a few combinations of installation methods and initial system configurations. So hopefully nothing is broken this time.)
    Have a happy New Year tomorrow!

    10
    Update
    • improve vibration support
    • fix kernel modules loading in fastbootd mode for custom roms (might result in an error message regarding vendor_dlkm for OOS users, but it's just cosmetic)
    Tested on LOS 19.1 (OOS 12 firmware) and crdroid 13 (OOS 13 firmware).

    10
    Update
    • add vendor_boot and dtbo to backup targets
    • add CPU temperature output
    • fix vibration (still doesn't work in fastbootd mode)
    I tested this build on LOS 19.1 (OOS 12 firmware) and crdroid 13 (OOS 13 firmware). Also keep in mind that you have to use the boot image according to your installed firmware, if you want to install/test via fastboot.

    10
    Good new for OOS users. One of the TWRP devs found a workaround for data restore on OOS. Just delete "/data/system/users/0/package-restrictions.xml", after data is restored. I will exclude this file by default in a future build, but for existing backups, the file must always be removed manually.

    Edit:
    This is also useful for custom ROMs, because it makes first boot faster and eliminates the need to reboot again.