[RECOVERY][X00T] KudProject's Unofficial TWRP 3.5.2_9-1 (k4.4/k4.14) [16-05-2021]

Search This thread

krasCGQ

Inactive Recognized Contributor
Apr 13, 2015
5,436
4,954
23
Kendari
kud.my.id
Xiaomi Mi 9 SE
This is basically a tl;dr thread.
I don't want to make a thread that everyone will lazy to read.

Team Win Recovery Project 3.x, or twrp3 for short, is a custom recovery built with ease of use and customization in mind. 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.

Disclaimer
Code:
/*
* Your warranty is... still valid?
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this RECOVERY
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/

Requirements
  • ASUS ZenFone Max Pro (M1) ZB601/2KL (of course)
  • Unlocked bootloader, in either ways (official, unofficial)
  • Some knowledge on how to deal with your device... and patience.

Flashing Instructions
I assume you've done (very) basic steps on preparing to flash your device.
  1. Reboot device to bootloader. If device is powered off, press and hold Power + Volume Up button until ASUS logo with "FASTBOOT MODE" message appears.
  2. Under same directory as TWRP image and ADB/Fastboot executables (if ever required), type this command:
    Code:
    fastboot flash recovery twrp-3.x.x_9-<kernel>-y-KudProject-X00T.img
    Where:
    • x and y are version of TWRP you're going to flash.
    • kernel: k4.4 - stock firmware or custom ROMs with FDE encryption; and k4.14 - FBE for custom ROMs with FBE encryption.
  3. IMPORTANT: After flashing, immediately press and hold Power + Volume Down for about 10 seconds button to reboot to recovery.
  4. Swipe the option to allow modifications. This way, you'll trip Android Verified Boot (AVB) and it's required to flash no verity zip in order to be able to boot stock ROM.

Downloads
Webserver | MEGA
Old releases only: OSDN | AndroidFileHost

Known Issues
  • k4.4: Due to QTI keymaster's behavior, only specific stock firmware as well as custom ROMs with same platform security patch level that can only be decrypted by TWRP. Applicable versions will be indicated explicitly in the changelog.
  • k4.14: Recovery may start with very low vibration level. You can adjust vibration intensity in settings later.
  • k4.14: Recovery can only decrypt userdata partition encrypted using AES-256-XTS algorithm. Only ROMs using Qualcomm's Inline Crypto Engine (ICE) with 4.14 kernel may also be decrypted by the recovery as well. This can be assumed an intended behavior since implementation of fscrypt_ice on msm-4.14 and msm-4.19 kernels are completely different. Tell ROM maintainers wanting to switch to FBE to use AES-256-XTS instead.

Special Thanks
  • Dees_Troy and everyone behind TWRP
  • shakalaca - base device tree used for older releases
  • Ankit Gourav - his work on whyred
  • Shivam Kumar Jha - person who kickstarted ZenFone Max Pro (M1) development
  • Everyone involved in testing numbers of test builds.

Sources
 
Last edited:

krasCGQ

Inactive Recognized Contributor
Apr 13, 2015
5,436
4,954
23
Kendari
kud.my.id
Xiaomi Mi 9 SE
Some stuffs...
Another TWRP thread? Why?
I like to keep discussions about my builds separate. Moreover, the existing TWRP that already available on XDA before doesn't seem to be maintained anymore.

I flashed via fastboot but it always fails.
Check or change your cable, use other USB slot (especially 2.0 one if 3.0+ doesn't work), or if needed try to flash recovery with USB connected to a hub.

Changelogs
twrp-3.5.2_9-1-KudProject-X00T
  • Merged TWRP source changes up to 25 April 2021 (UTC+8)
  • Builds are now splitted for devices running FDE (targetting stock, running 4.4 kernel) and FBE encryption (targetting custom ROMs, running 4.14 kernel, only works with ROMs using AES-256-XTS encryption)
  • FDE: Can decrypt 16.2017.2009.087 stock firmware and any custom ROM with 5 September 2020 security patch
  • Restored ability to backup system and vendor partition (images backup for these partitions are recommended)
  • Switched to build system libraries from source
  • Added persist partition backup support
  • Added support for NFC availability check in recovery
  • Added support for formatting asusfw partition in GUI
  • Updated set_version script to match up Android 10's system-as-root behavior
  • FBE: Updated crypto blobs from 17.2017.2012.438 stock firmware

twrp-3.4.0-0-KudProject-X00T
  • Merged TWRP source changes up to 11 June 2020 (UTC+8)
  • Can decrypt 16.2017.2005.082 stock firmware and any custom ROM with 5 May 2020 security patch
  • Switched f2fs-tools to latest AOSP master
  • Only allow user to backup system and vendor images
  • set_version script doesn't longer touch persist partition; script now has hardcoded SKU and version instead in case ASUS props can't be found
  • Updated prebuilt kernel based on S082 source drop
  • F2FS kernel driver updated to 5.3-rc1 with backports up to 5.7-rc1 from 4.9
  • Switched to arter97's fork of exFAT
  • Switched from NTFS kernel driver to FUSE ntfs-3g due to incomplete write support

twrp-3.3.1-0-X00T-20190526
  • Fixed stock ROM flashing due to missing prop
  • Fixed FDE decryption

twrp-3.3.1-0-X00T-20190525
  • Updated F2FS on kernel to 5.2-rc1
  • TWRP 3.3.1 + upstream changes

twrp-3.3.0-0-X00T-20190513
  • Updated base to android-9.0
  • Updated blobs from 16.2017.1903.050
  • Support for flashing unmodified stock firmware (please read notes!)
  • Rebased kernel to S050 source drop
  • Updated F2FS on kernel to 5.1-rc1
  • TWRP 3.3.0 + upstream changes

twrp-3.2.3-0-X00T-20190217
  • Now based on whyred official TWRP tree
  • Reverted kernel to stock-based as-released (S339) with F2FS upstream and sdFAT included
    (this should fix USB-OTG support while retaining support with latest f2fs-tools)
  • TWRP upstream changes

twrp-3.2.3-0-X00T-20190118
  • Pick more patches from LineageTWRP project
  • Updated f2fs-tools to latest development branch
  • Slight cleanup
  • TWRP upstream changes

twrp-3.2.3-0-X00T-20190115
  • ADB sideload fixed for everyone
  • f2fs-tools v1.12.0
  • Disabled Synaptics' firmware update driver entirely
  • Removed qcacld-3.0 from kernel
  • TWRP upstream changes

twrp-3.2.3-0-X00T-20190108
  • Removed ntfs-3g from recovery
  • Included several extra recovery keys
  • Updated kernel to S338-based
  • Disabled Synaptics' startup firmware update
  • TWRP upstream changes

twrp-3.2.3-0-X00T-20181231
  • Updated platform security patch override to 2018-11-01 (matches 338 firmware)

twrp-3.2.3-0-X00T-20181226
  • Imported more proprietary blobs from stock 337 firmware
  • TWRP upstream changes

twrp-3.2.3-0-X00T-20181224
  • Allow wiping vendor partition
  • 2nd CPU target set to Cortex-A73
  • Initial import of proprietary blobs from stock 337 firmware
  • Updated kernel to S337-based
  • TWRP upstream changes

twrp-3.2.3-0-X00T-20181215
  • Removed texfat and tntfs stock modules
  • Enabled DT2W

twrp-3.2.3-0-X00T-20181214
  • Rebased to shakalaca's tree
  • CPU target set to kryo
  • Updated platform security patch override to 2018-10-01 (matches 337 firmware)
  • Switched to my rebased kernel
  • TWRP upstream changes (android-9.0 branch)

twrp-3.2.3-0-X00TD-20181024
 
Last edited:

krasCGQ

Inactive Recognized Contributor
Apr 13, 2015
5,436
4,954
23
Kendari
kud.my.id
Xiaomi Mi 9 SE
Notes
  • "fastboot boot" command isn't supported by our bootloader. Don't ever try that. (blame ASUS/Huaqin)
  • I'll try to always keep this recovery updated especially when ASUS releases firmware update that also updates AOSP security patch. Security patch set in TWRP needs to match stock firmware used so TWRP can decrypt data partition. This isn't possible with current state as the bump is useless. :(

Unmodified Stock Firmware Support
With introduction of unmodified stock firmware support, I need to clear up some confusions you've if any. Notes below are copy-pasta from my post elsewhere:
Code:
Starting this build, recovery supports flashing stock firmware without modifying the updater-script. In order for it to be possible, ro.product.device has to be set to ASUS_X00TD.
This, however, breaks flashing of custom ROMs that check for either X00TD or X00T.
Simply supporting it doesn't mean that you can flash stock firmware directly; you need to be at least on stock when you flash the recovery, so required properties can be exported to /persist which then will be set on every recovery boot up.

Still not sure though, as some ROMs check for ro.product.device and then fallback to ro.build.product for matching devices.

Flashing incremental OTAs are supported but not recommended, since you'll most likely flash verity disabler at the minimum and get the flashing failed upon patching boot.

In plain text:
  1. The recovery has ro.product.device set to ASUS_X00TD that may break custom ROM flashing.
  2. You need to be on stock before booting the recovery for the first time, then afterwards you can flash any stock firmware. 21 June 2020 UPDATE: Now not required, as it's now hardcoded in the script itself and since touching persist is never a good idea to begin with.
  3. If you modify your system in any ways and don't have any system backup to restore, don't flash incremental OTAs. This also includes TWRP tampering system to prevent stock recovery from overwriting TWRP.

Verifying released builds
This was originally posted on KudProject's Telegram channel and copy pasted here with minor edits for easier access.

Following TeamWin's stance about unofficial TWRP downloads here, all release builds from KudProject will start to be signed using my GPG key to ensure that you get a copy of legitimate builds directly from me.

You can download both of my currently active public keys here. Importing from PGP keyserver will be made available in the future.

To import on Linux:
Code:
gpg --import krascgq.gpg

To verify builds on Linux:
Code:
gpg --verify <build-name>.sig <build-name>

Windows users will need to search for compatible tools.
 
Last edited:

Tianhe

Senior Member
Mar 16, 2011
676
168
I have been using official TWRP 3.2.3.0 since last 2-3 FW updates and haven't faced any problem. However, it's good to have a specific updated TWRP for 601KL.
 

Ak-64

Senior Member
Feb 10, 2017
212
42
First of all thank you for updating the twrp. Could you make something clear.
Is it synaptic only twrp if not can it be flashed over the older twrp?
Will it be supporting encryption?
 

krasCGQ

Inactive Recognized Contributor
Apr 13, 2015
5,436
4,954
23
Kendari
kud.my.id
Xiaomi Mi 9 SE
First of all thank you for updating the twrp. Could you make something clear.
Is it synaptic only twrp if not can it be flashed over the older twrp?
Will it be supporting encryption?
1. It's not a Synaptics' exclusive version, and well you can override any installed TWRP versions.
2. Not tested on my side since my data isn't encrypted, but I try to keep the platform patch inline with latest firmware so feel free to test.

Sent from my ASUS_X00TD using XDA Labs
 
  • Like
Reactions: Ak-64

VivekAarav

Senior Member
Jun 6, 2016
87
11
Thank you very much for your amazing work..❤️.. hope this TWRP will get the official tag soon??
 

gebcruz06

Senior Member
Dec 1, 2016
82
44
@krasCGQ Have you been able to fix the adb sideload function that doesn't work in the older twrp builds? Thanks. Otherwise, this is good as official. Thanks for your hardwork!
 

vladlp

Member
Jan 30, 2006
15
6
2. Not tested on my side since my data isn't encrypted, but I try to keep the platform patch inline with latest firmware so feel free to test.
Hi,
you have to overwrite init.recovery.vold_decrypt.keymaster-3-0.rc in /recovery/root/ (like in shakalaca version), because the name of ven_keymaster-3-0 service is android.hardware.keymaster@3.0-service-qti with "-qti" at the end. Than encrypted data will work. I already test it.
 

krasCGQ

Inactive Recognized Contributor
Apr 13, 2015
5,436
4,954
23
Kendari
kud.my.id
Xiaomi Mi 9 SE
Hi,
you have to overwrite init.recovery.vold_decrypt.keymaster-3-0.rc in /recovery/root/ (like in shakalaca version), because the name of ven_keymaster-3-0 service is android.hardware.keymaster@3.0-service-qti with "-qti" at the end. Than encrypted data will work. I already test it.
I pushed a test build on selected Telegram device testing groups with several init files replaced. I'll make it available for public today or tonight.

ADB sideload has been fixed on that build, BTW.

Sent from my ASUS_X00TD using XDA Labs
 

SlamDec

Member
Dec 30, 2017
35
3
sorry for noob question, if i flash this new twrp it wipe my current OS or replacing twrp only? tyvm
 

krasCGQ

Inactive Recognized Contributor
Apr 13, 2015
5,436
4,954
23
Kendari
kud.my.id
Xiaomi Mi 9 SE
I pushed a test build on selected Telegram device testing groups with several init files replaced. I'll make it available for public today or tonight.

ADB sideload has been fixed on that build, BTW.
And... ~24 hours late from expectations, lol.
It's up for public now.

Sent from my ASUS_X00TD using XDA Labs
 
  • Like
Reactions: LabLab...28

Top Liked Posts

  • There are no posts matching your filters.
  • 63
    This is basically a tl;dr thread.
    I don't want to make a thread that everyone will lazy to read.

    Team Win Recovery Project 3.x, or twrp3 for short, is a custom recovery built with ease of use and customization in mind. 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.

    Disclaimer
    Code:
    /*
    * Your warranty is... still valid?
    *
    * I am not responsible for bricked devices, dead SD cards,
    * thermonuclear war, or you getting fired because the alarm app failed. Please
    * do some research if you have any concerns about features included in this RECOVERY
    * before flashing it! YOU are choosing to make these modifications, and if
    * you point the finger at me for messing up your device, I will laugh at you.
    */

    Requirements
    • ASUS ZenFone Max Pro (M1) ZB601/2KL (of course)
    • Unlocked bootloader, in either ways (official, unofficial)
    • Some knowledge on how to deal with your device... and patience.

    Flashing Instructions
    I assume you've done (very) basic steps on preparing to flash your device.
    1. Reboot device to bootloader. If device is powered off, press and hold Power + Volume Up button until ASUS logo with "FASTBOOT MODE" message appears.
    2. Under same directory as TWRP image and ADB/Fastboot executables (if ever required), type this command:
      Code:
      fastboot flash recovery twrp-3.x.x_9-<kernel>-y-KudProject-X00T.img
      Where:
      • x and y are version of TWRP you're going to flash.
      • kernel: k4.4 - stock firmware or custom ROMs with FDE encryption; and k4.14 - FBE for custom ROMs with FBE encryption.
    3. IMPORTANT: After flashing, immediately press and hold Power + Volume Down for about 10 seconds button to reboot to recovery.
    4. Swipe the option to allow modifications. This way, you'll trip Android Verified Boot (AVB) and it's required to flash no verity zip in order to be able to boot stock ROM.

    Downloads
    Webserver | MEGA
    Old releases only: OSDN | AndroidFileHost

    Known Issues
    • k4.4: Due to QTI keymaster's behavior, only specific stock firmware as well as custom ROMs with same platform security patch level that can only be decrypted by TWRP. Applicable versions will be indicated explicitly in the changelog.
    • k4.14: Recovery may start with very low vibration level. You can adjust vibration intensity in settings later.
    • k4.14: Recovery can only decrypt userdata partition encrypted using AES-256-XTS algorithm. Only ROMs using Qualcomm's Inline Crypto Engine (ICE) with 4.14 kernel may also be decrypted by the recovery as well. This can be assumed an intended behavior since implementation of fscrypt_ice on msm-4.14 and msm-4.19 kernels are completely different. Tell ROM maintainers wanting to switch to FBE to use AES-256-XTS instead.

    Special Thanks
    • Dees_Troy and everyone behind TWRP
    • shakalaca - base device tree used for older releases
    • Ankit Gourav - his work on whyred
    • Shivam Kumar Jha - person who kickstarted ZenFone Max Pro (M1) development
    • Everyone involved in testing numbers of test builds.

    Sources
    26
    Some stuffs...
    Another TWRP thread? Why?
    I like to keep discussions about my builds separate. Moreover, the existing TWRP that already available on XDA before doesn't seem to be maintained anymore.

    I flashed via fastboot but it always fails.
    Check or change your cable, use other USB slot (especially 2.0 one if 3.0+ doesn't work), or if needed try to flash recovery with USB connected to a hub.

    Changelogs
    twrp-3.5.2_9-1-KudProject-X00T
    • Merged TWRP source changes up to 25 April 2021 (UTC+8)
    • Builds are now splitted for devices running FDE (targetting stock, running 4.4 kernel) and FBE encryption (targetting custom ROMs, running 4.14 kernel, only works with ROMs using AES-256-XTS encryption)
    • FDE: Can decrypt 16.2017.2009.087 stock firmware and any custom ROM with 5 September 2020 security patch
    • Restored ability to backup system and vendor partition (images backup for these partitions are recommended)
    • Switched to build system libraries from source
    • Added persist partition backup support
    • Added support for NFC availability check in recovery
    • Added support for formatting asusfw partition in GUI
    • Updated set_version script to match up Android 10's system-as-root behavior
    • FBE: Updated crypto blobs from 17.2017.2012.438 stock firmware

    twrp-3.4.0-0-KudProject-X00T
    • Merged TWRP source changes up to 11 June 2020 (UTC+8)
    • Can decrypt 16.2017.2005.082 stock firmware and any custom ROM with 5 May 2020 security patch
    • Switched f2fs-tools to latest AOSP master
    • Only allow user to backup system and vendor images
    • set_version script doesn't longer touch persist partition; script now has hardcoded SKU and version instead in case ASUS props can't be found
    • Updated prebuilt kernel based on S082 source drop
    • F2FS kernel driver updated to 5.3-rc1 with backports up to 5.7-rc1 from 4.9
    • Switched to arter97's fork of exFAT
    • Switched from NTFS kernel driver to FUSE ntfs-3g due to incomplete write support

    twrp-3.3.1-0-X00T-20190526
    • Fixed stock ROM flashing due to missing prop
    • Fixed FDE decryption

    twrp-3.3.1-0-X00T-20190525
    • Updated F2FS on kernel to 5.2-rc1
    • TWRP 3.3.1 + upstream changes

    twrp-3.3.0-0-X00T-20190513
    • Updated base to android-9.0
    • Updated blobs from 16.2017.1903.050
    • Support for flashing unmodified stock firmware (please read notes!)
    • Rebased kernel to S050 source drop
    • Updated F2FS on kernel to 5.1-rc1
    • TWRP 3.3.0 + upstream changes

    twrp-3.2.3-0-X00T-20190217
    • Now based on whyred official TWRP tree
    • Reverted kernel to stock-based as-released (S339) with F2FS upstream and sdFAT included
      (this should fix USB-OTG support while retaining support with latest f2fs-tools)
    • TWRP upstream changes

    twrp-3.2.3-0-X00T-20190118
    • Pick more patches from LineageTWRP project
    • Updated f2fs-tools to latest development branch
    • Slight cleanup
    • TWRP upstream changes

    twrp-3.2.3-0-X00T-20190115
    • ADB sideload fixed for everyone
    • f2fs-tools v1.12.0
    • Disabled Synaptics' firmware update driver entirely
    • Removed qcacld-3.0 from kernel
    • TWRP upstream changes

    twrp-3.2.3-0-X00T-20190108
    • Removed ntfs-3g from recovery
    • Included several extra recovery keys
    • Updated kernel to S338-based
    • Disabled Synaptics' startup firmware update
    • TWRP upstream changes

    twrp-3.2.3-0-X00T-20181231
    • Updated platform security patch override to 2018-11-01 (matches 338 firmware)

    twrp-3.2.3-0-X00T-20181226
    • Imported more proprietary blobs from stock 337 firmware
    • TWRP upstream changes

    twrp-3.2.3-0-X00T-20181224
    • Allow wiping vendor partition
    • 2nd CPU target set to Cortex-A73
    • Initial import of proprietary blobs from stock 337 firmware
    • Updated kernel to S337-based
    • TWRP upstream changes

    twrp-3.2.3-0-X00T-20181215
    • Removed texfat and tntfs stock modules
    • Enabled DT2W

    twrp-3.2.3-0-X00T-20181214
    • Rebased to shakalaca's tree
    • CPU target set to kryo
    • Updated platform security patch override to 2018-10-01 (matches 337 firmware)
    • Switched to my rebased kernel
    • TWRP upstream changes (android-9.0 branch)

    twrp-3.2.3-0-X00TD-20181024
    15
    Notes
    • "fastboot boot" command isn't supported by our bootloader. Don't ever try that. (blame ASUS/Huaqin)
    • I'll try to always keep this recovery updated especially when ASUS releases firmware update that also updates AOSP security patch. Security patch set in TWRP needs to match stock firmware used so TWRP can decrypt data partition. This isn't possible with current state as the bump is useless. :(

    Unmodified Stock Firmware Support
    With introduction of unmodified stock firmware support, I need to clear up some confusions you've if any. Notes below are copy-pasta from my post elsewhere:
    Code:
    Starting this build, recovery supports flashing stock firmware without modifying the updater-script. In order for it to be possible, ro.product.device has to be set to ASUS_X00TD.
    This, however, breaks flashing of custom ROMs that check for either X00TD or X00T.
    Simply supporting it doesn't mean that you can flash stock firmware directly; you need to be at least on stock when you flash the recovery, so required properties can be exported to /persist which then will be set on every recovery boot up.
    
    Still not sure though, as some ROMs check for ro.product.device and then fallback to ro.build.product for matching devices.
    
    Flashing incremental OTAs are supported but not recommended, since you'll most likely flash verity disabler at the minimum and get the flashing failed upon patching boot.

    In plain text:
    1. The recovery has ro.product.device set to ASUS_X00TD that may break custom ROM flashing.
    2. You need to be on stock before booting the recovery for the first time, then afterwards you can flash any stock firmware. 21 June 2020 UPDATE: Now not required, as it's now hardcoded in the script itself and since touching persist is never a good idea to begin with.
    3. If you modify your system in any ways and don't have any system backup to restore, don't flash incremental OTAs. This also includes TWRP tampering system to prevent stock recovery from overwriting TWRP.

    Verifying released builds
    This was originally posted on KudProject's Telegram channel and copy pasted here with minor edits for easier access.

    Following TeamWin's stance about unofficial TWRP downloads here, all release builds from KudProject will start to be signed using my GPG key to ensure that you get a copy of legitimate builds directly from me.

    You can download both of my currently active public keys here. Importing from PGP keyserver will be made available in the future.

    To import on Linux:
    Code:
    gpg --import krascgq.gpg

    To verify builds on Linux:
    Code:
    gpg --verify <build-name>.sig <build-name>

    Windows users will need to search for compatible tools.
    13
    A fixed build, that also fixes FDE decryption has been pushed. Enjoy.
    8
    As I've given X00T to my father and due to lack of testing on my further limited-testing builds, I decided to stop all further updates to the recovery.

    I'll still keep this thread open for further discussion of my and Alex builds.

    Sorry if this sounds disappointing but I've no further choice.

    Sent from my MI 9 SE using XDA Labs