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

Search This thread

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.

    * 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.

    • 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:
      fastboot flash recovery twrp-3.x.x_9-<kernel>-y-KudProject-X00T.img
      • 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.

    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.

    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.

    • 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

    • 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

    • Fixed stock ROM flashing due to missing prop
    • Fixed FDE decryption

    • Updated F2FS on kernel to 5.2-rc1
    • TWRP 3.3.1 + upstream changes

    • 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

    • 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

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

    • 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

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

    • Updated platform security patch override to 2018-11-01 (matches 338 firmware)

    • Imported more proprietary blobs from stock 337 firmware
    • TWRP upstream changes

    • 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

    • Removed texfat and tntfs stock modules
    • Enabled DT2W

    • 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)

    • "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:
    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:
    gpg --import krascgq.gpg

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

    Windows users will need to search for compatible tools.
    A fixed build, that also fixes FDE decryption has been pushed. Enjoy.
    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