I compiled the official kernel for Realme X2 Pro but how do I install them? - Realme X2 Pro Questions & Answers

I was able to compile the realme X2 Pro's official kernel release from https://github.com/realme-kernel-opensource/realmeX2pro-X3-AndroidR-kernel-source and I got 3 files generated in arch/arm64/boot folder.
They are:
Image
Image-dtb
Image-dtb-hdr
I just wanted to know how to move further to be able to flash just this kernel (I have a GSI image flashed on /system from TWRP).
Based on the partitions I saw from TWRP, the ones I feel relevant are: Boot partition, Dtbo partition, Vendor Image partition. Which one is it and how do I package the kernel/device tree blob file above to be able to flash to one of these via fastboot? Is that even a valid operation?
I don't want to risk a trial and error approach and possibly screw up further (I have backups of these partitions, but still I'd love to get some insights from the community who might've done this before)
Thanks!

Related

How do you unpack and repack boot.img?

NOTE: Unfortunately I've had to remove links from this post because I'm a new user. I'll add them back in once I have enough posts.
I've been trying to edit a file in boot.img from the CyanogenMod 12.1 (huashan) nightlies but I'm experiencing some issues finding the right tools/methods for the job.
Most scripts I've found expect an Android Magic number at the beginning of the file but this simply isn't there. It seems there is no header at all that matches the specification from bootimg.h (missing link) though I did discover the cmdline argument at the end of the file with a hex editor.
After searching and experimenting for hours I found a script here (missing link) which enabled me to extract the kernel and ramdisk images despite the missing header but now I don't know how to repack the files into a boot.img of the same structure.
I've tried the following but it results in a boot.img that is about 40% larger than the orginal (despite me only adding one line of code) and has an entirely different structure (with an Android Magic number, etc.).
Code:
mkbootimg --base 0x00200000 --pagesize 2048 --kernel boot.img-kernel.gz --ramdisk newramdisk.cpio.gz -o newboot.img
I found this resource (TWRP, missing link) which mentions that Xperia devices have special boot images (or something like that, I didn't understand all of it) - this might explain why the boot.img structure is so different - but I can't find any further documentation on this or instructions on how to deal with the format.
The Xperia devices have a recovery-in-boot arrangement. This means that the recovery is booted using the regular kernel / boot image in the device. Team Win has worked with the FreeXperia device maintainers to come up with a way to extract the ramdisk from the FOTAKernel partition and use the ramdisk from that partition instead of the recovery that is included in the boot image of your device. This means that if you install current CM nightlies and flash TWRP to the FOTAKernel partition, you will be able to use TWRP instead of the CWM or CM recovery that normally comes in a CM boot image. Other boot images including stock kernels can be repacked to include this extraction utility to allow you to use TWRP from the FOTAKernel partition. This setup allows you to choose what recovery you want to have installed and allows you to update your recovery more easily. Unfortunately this setup requires that the boot image that you have installed include the ramdisk extraction utility.
Click to expand...
Click to collapse
So now I'm at a loss at how to continue. I would much appreciate any pointers, ideas or help in general.
@infernalpostcard , hopefully this tool made by @Adrian DC will help you out.
https://github.com/AdrianDC/android_huashan_bootimg_editor
Raienryu said:
@infernalpostcard , hopefully this tool made by @Adrian DC will help you out.
https://github.com/AdrianDC/android_huashan_bootimg_editor
Click to expand...
Click to collapse
Thanks. This looks really promising. I'm trying it out now...
EDIT: It worked! This is exactly what I needed. Unfortunately what I was actually trying to achieve (apply a fix to break a boot-loop my phone gets in, due to an encrypted filesystem) didn't work so I'll have to come up with new ideas.

[Recovery] Official TWRP for the ZTE Axon 7

Team Win Recovery Project 3.1.1-0
This is for the A2017, A2017U, and A2017G.
WARNING: The ZTE Axon 7 stock boot image has dm-verity, which prevents you from booting if you swipe to enable system modifications!
SOLUTION: Follow the full rooting steps below in order to allow system modifications without the risk of a boot loop!
WHAT IS TWRP?
Oh come on, you know what it is - don't try to fool me!
In case you're serious, though...
Team Win Recovery Project is a custom recovery for Android devices.
It allows you to back up and restore your data, flash custom ROMs to your device, repair broken file systems, and root your device.
Read more about TWRP here: https://twrp.me/about/
DOWNLOAD
You can find the device page here:
http://teamw.in/devices/zteaxon7.html
There is a download link there, as well as instructions on how to flash it.
You can find up to date fastboot & adb binaries here!
UNLOCKING YOUR BOOTLOADER
WARNING: Unlocking your bootloader will erase all userdata on the device! Your device will be completely reset to factory defaults!
A2017U or A2017 users can simply unlock from EDL mode using MiFlash here.
I do not have a method for A2017G, there may be other threads on XDA to guide you through the process.
FULL STEPS FOR OBTAINING ROOT
Follow these instructions until someone nice comes along and makes a video from them (without ads):
Unlock your bootloader! See above!
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Download TWRP for the ZTE Axon 7.
Reboot your device into fastboot mode. To do this, select reboot from the power menu and hold the [Volume Up] button while your device reboots or boots from power off.
Once you're in fastboot with your bootloader unlocked, you're ready to flash TWRP. To do this, run the command (replacing twrp.img with the actual image name):
fastboot flash recovery twrp.img
Once the image is flashed, you should use your volume keys to navigate to RECOVERY and the press the power key to select it.
At this point, you will reach the screen asking you if you want to allow system modifications.
By swiping right, you will trigger dm-verity, and if you don't follow the next step you will be unable to boot!
If you are going to root your device and follow the rest of these steps, then it is safe to swipe right and enable modifications.
If you want to be rooted with SuperSU:
Download the latest SuperSU stable by Chainfire.
Without exiting TWRP, transfer the SuperSU zip to your device over MTP* and flash it using [Install] in TWRP.
---or (not both) ---
If you want to be rooted with Magisk:
Download the latest Magisk stable by topjohnwu.
Without exiting TWRP, transfer the Magisk zip to your device over MTP* and flash it using [Install] in TWRP.
---or (not both) ---
If you want to be rooted with something else or just want a bootable system:
Download the latest dm-verity and forced encryption disabler zip.
Without exiting TWRP, transfer the no-verity-opt-encrypt zip to your device over MTP* and flash it using [Install] in TWRP.
This will also allow you to use [Format Data] to completely disable your encryption if desired.
Go to [Reboot] -> [System].
Wait 2-5 minutes for your device to finish setting itself up. (SuperSU will reboot you a few times)
* MTP, known as Media Transfer Protocol, is the same way you transfer files from your PC to your device when booted into system.
UPDATING TWRP
To update TWRP, simply download the new twrp.img on your phone, then boot into your current TWRP and flash it.
To flash a twrp.img, navigate to [Install] -> [Flash Image] -> select your twrp.img -> [x] Recovery -> Flash!
After that, just use [Reboot] -> [Recovery] to reboot into the updated TWRP.
CHANGES
v3.1.1-0 (twrp.me) - See release details here!
v3.1.0-0 (twrp.me) - See release details here!
v3.0.4-1 (build.nethunter.com) - Fix crash on selecting reboot with an empty data partition, add Data backup warnings
v3.0.4-0 (build.nethunter.com) - Capability restoration for Nougat, F2FS backport support, EXT4 decryption support
v3.0.3-1 (twrp.me) - Use crypto libraries from ROM (Nougat support). Fix USB OTG and Fast Charging. Reduce boot times.
v3.0.3-0 (twrp.me) - Renamed to ailsa_ii, Persist merged with EFS, Modem no longer mounted, Backup/Restore/Flash Bluetooth/System Image added. LA.HB.1.3.1.c1-19500-8x96.0 + Linux 3.18.45.
v3.0.2-0 (twrp.me) - Initial release.
FEATURES
MTP support
USB OTG storage support
Legacy USB Mass Storage mode support - use your phone like an SDCard reader or flash drive!
Hardware Qualcomm-based full-disk encryption support
f2fs file system support (read, write, format, backup & restore)
exFAT file system support (read, write, format)
NTFS file system support (read, write, format)
ADB root
Full SELinux support
Built in android 6.0 tree
Allows ZTE full OTA flashing (only for A2017U firmware)
KNOWN ISSUES
F2FS takes a long time to boot, see below.
WHY DOES F2FS MAKE TWRP SO SLOW?
When TWRP boots up or wipes partitions and a few other scenarios, it checks each partition to see how much disk space is used. Ext4 handles disk usage calls quite efficiently and will finish this very fast. F2FS on the other hand is very slow when it comes to checking disk usage. We're unsure why this is. Every file on the F2FS formatted partition adds a little more time, and a device that is 30 GB full could take up to 10 minutes to boot TWRP!
I suggest switching your data partition to ext4 - all the f2fs hype is merely from benchmarks that don't actually represent real world use (ie. you're not writing thousands of files per second)
For someone who doesn't do lots of write access to their data partition, ext4 can actually be advantageous (it has faster access times and reads!)
HOW DO I GET LOGS SO WHEN I COMPLAIN I'M NOT COMPLETELY IGNORED OR SHAMED BY OTHER USERS?
To get logs while in TWRP, you should connect your device to your PC and use adb.
adb pull /tmp/recovery.log
adb exec-out dmesg > dmesg.log
This will create 2 files in the directory your shell is currently in, recovery.log and dmesg.log. You will need to upload these somewhere such as a pastebin or Google Drive. You can also attach it to your XDA post (recommended!)
If you are having an operating system boot issue, you should gather a ramoops log instead. Do this while in TWRP after the failed boot:
adb exec-out "tar c /sys/fs/pstore 2>/dev/null" > pstore.tar
CONTACT & SUPPORT
You can find us on IRC at #twrp on chat.freenode.net.
You can also post in this thread and I will attempt to answer any questions you may have.
SOURCE CODE
TWRP: https://github.com/omnirom/android_bootable_recovery (android-7.1)
Device tree: https://github.com/TeamWin/android_device_zte_ailsa_ii (android-6.0)
Kernel: https://github.com/jcadduono/android_kernel_oneplus_msm8996 (twrp-6.0)
CONTRIBUTIONS
Gerrit for TWRP: http://gerrit.omnirom.org/
Gerrit for officially supported devices: http://gerrit.twrp.me/
XDA:DevDB Information
Team Win Recovery Project for the ZTE Axon 7, Tool/Utility for the ZTE Axon 7
Contributors
jcadduono, Team Win
Source Code: https://github.com/TeamWin/android_device_zte_ailsa_ii
Version Information
Status: Stable
Current Stable Version: 3.0.4-1
Stable Release Date: 2017-02-08
Created 2016-12-09
Last Updated 2017-11-25
Link does not work is there a typo?
lokissmile said:
Link does not work is there a typo?
Click to expand...
Click to collapse
Nope, bigbiff is just taking long time to hit the go button on jenkins to build the device and rebuild twrp.me lol
I think he fell asleep
You can use this for now: https://build.nethunter.com/test-builds/twrp/zte/twrp-3.0.2-0-a2017u.img
Downloaded and installed although not sure how this differs from the one in the unlock thread. Made a backup everything seems OK. Thanks!
lafester said:
Downloaded and installed although not sure how this differs from the one in the unlock thread. Made a backup everything seems OK. Thanks!
Click to expand...
Click to collapse
It shouldn't be any different, or any differences there are should be minimal.
One (and maybe only) notable difference might be that it uses ZTE's USB configuration rather than Google's.
It also supports legacy mass storage. (accessing sdcard like a flash drive, instead of MTP)
I should also add that it's pretty much 1/3 of the size too lol.
UnjustifiedDev's unofficial TWRP is 3.0.2-2. I recall people were having issues with restoring some partitions (mostly EFS), so he backported the bugfix from the 7.0 TWRP code, which seemed to have fixed the issues. Does this official build include that bugfix?
Is there any technical reason why this version shouldn't be installed on A2017G?
xtermmin said:
UnjustifiedDev's unofficial TWRP is 3.0.2-2. I recall people were having issues with restoring some partitions (mostly EFS), so he backported the bugfix from the 7.0 TWRP code, which seemed to have fixed the issues. Does this official build include that bugfix?
Click to expand...
Click to collapse
That bug was fixed in September on the 6.0 branch.
_phk_ said:
Is there any technical reason why this version shouldn't be installed on A2017G?
Click to expand...
Click to collapse
I don't have any technical reason, just from what I've read it won't boot. You can try it, let me know what happens. Actually please do, because if it does boot it would be quite pleasing and I'd end up unifying them.
Is this TWRP using the stock B29 kernel or your custom Kernel?
I was building my own TWRP for the Axon-7 the other day. Mainly to include more partitions for backup purpose while working on CM and back to stock. (Especially persist).
As far as I saw the CM rom messes with persist (creates folders and files in persist).
Should ZTE release Android 7.0 in January I want to be able to go back using the backup created of B29 and simply run the OTA.
If CM messes with persist and one goes back to B29 to upgrade to Android 7. The OTA partitions check before upgrade will probably fail with checksum errors. And the upgrade will fail.
One would have to go all the way back to factory B20 then =>B27 =>B29=>Android 7.
Correct me if I'm wrong.
But shouldn't we include at least those partitions that CM touches in TWRP for proper restore possibilities? And future upgrades of Stock?
celoxocis said:
...If CM messes with persist and one goes back to B29 to upgrade to Android 7. The OTA partitions check before upgrade will probably fail with checksum errors. And the upgrade will fail...
Click to expand...
Click to collapse
So far, none of the OTAs (at least for the US model) have done a check of persist, but who knows if they will for Nougat.
celoxocis said:
Is this TWRP using the stock B29 kernel or your custom Kernel?
I was building my own TWRP for the Axon-7 the other day. Mainly to include more partitions for backup purpose while working on CM and back to stock. (Especially persist).
As far as I saw the CM rom messes with persist (creates folders and files in persist).
Should ZTE release Android 7.0 in January I want to be able to go back using the backup created of B29 and simply run the OTA.
If CM messes with persist and one goes back to B29 to upgrade to Android 7. The OTA partitions check before upgrade will probably fail with checksum errors. And the upgrade will fail.
One would have to go all the way back to factory B20 then =>B27 =>B29=>Android 7.
Correct me if I'm wrong.
But shouldn't we include at least those partitions that CM touches in TWRP for proper restore possibilities? And future upgrades of Stock?
Click to expand...
Click to collapse
It uses a custom very minimal kernel configuration with modifications to make it more compatible with TWRP.
Why does modification of persist matter? Persist can't affect OTAs as it's meant to be modified, it's only a firmware/calibration cache.
If it ever had an issue you could simply type:
make_ext4fs /dev/block/bootdevice/by-name/persist
CM should not modify any partitions that are meant to be static.
The only partitions that will need to be fixed to take OTAs should be: boot, system, recovery, modem (NON-HLOS.bin)
The only reason modem needs to be fixed is because it's used in TWRP and I can't enable both backup and read-only at the same time.
Update: I'll just make two entries, backup/restore for raw modem emmc, and read-only mount for decrypt. (should be safe to do this with mounttodecrypt unmounting it)
xtermmin said:
So far, none of the OTAs (at least for the US model) have done a check of persist, but who knows if they will for Nougat.
Click to expand...
Click to collapse
They will not. There is no logical reason to check a partition that is designed to be modified.
In fact, I'll add Persist (calibration data) to the Wipe page!
jcadduono said:
It uses a custom very minimal kernel configuration with modifications to make it more compatible with TWRP.
Why does modification of persist matter? Persist can't affect OTAs as it's meant to be modified, it's only a firmware/calibration cache.
If it ever had an issue you could simply type:
make_ext4fs /dev/block/bootdevice/by-name/persist
Click to expand...
Click to collapse
Thanks for the clarification. I just remember when I was dirty flashing CM13 months ago when doing one of my devices bring-up. TWRP would complain with error 7 (I think?).
When I run a diff of the partitions it touched (I checked all init.rc's) I found the difference in persist. Reverting back the persist with DD (I always do a DD backup of my untouched devices, on all partitions before messing with them and store them on my NAS). The dirty flash went fine. Ever since that I include persist in my TWRP's.
I don't mind not having it in TWRP. I can bake my own anytime
celoxocis said:
Thanks for the clarification. I just remember when I was dirty flashing CM13 months ago when doing one of my devices bring-up. TWRP would complain with error 7 (I think?).
When I run a diff of the partitions it touched (I checked all init.rc's) I found the difference in persist. Reverting back the persist with DD (I always do a DD backup of my untouched devices, on all partitions before messing with them and store them on my NAS). The dirty flash went fine. Ever since that I include persist in my TWRP's.
I don't mind not having it in TWRP. I can bake my own anytime
Click to expand...
Click to collapse
I just replaced the -0 version, new one has modem read only and persist shows up in wipe page as "Persist (calibration data)" so people know what they're wiping.
There's a lot of partitions that seem scary and screw up your device when they're corrupt but you can just either format them (in the case of persist) or dd zeros to them (in the case of misc, modemst1, modemst2, efsg, and efsc) and the OS/firmware will regenerate everything on boot like you just took it out of the box.
any reason to flash this version of TWRP over the one UnjustifiedDev's made?? I can just flash the twrp.img file right?
celoxocis said:
Is this TWRP using the stock B29 kernel or your custom Kernel?
I was building my own TWRP for the Axon-7 the other day. Mainly to include more partitions for backup purpose while working on CM and back to stock. (Especially persist).
As far as I saw the CM rom messes with persist (creates folders and files in persist).
Should ZTE release Android 7.0 in January I want to be able to go back using the backup created of B29 and simply run the OTA.
If CM messes with persist and one goes back to B29 to upgrade to Android 7. The OTA partitions check before upgrade will probably fail with checksum errors. And the upgrade will fail.
One would have to go all the way back to factory B20 then =>B27 =>B29=>Android 7.
Correct me if I'm wrong.
But shouldn't we include at least those partitions that CM touches in TWRP for proper restore possibilities? And future upgrades of Stock?
Click to expand...
Click to collapse
I was under the impression that you couldn't install OTAb updates with an unlocked bootloader anyway. Is this not true?
abdi7451 said:
I was under the impression that you couldn't install OTAb updates with an unlocked bootloader anyway. Is this not true?
Click to expand...
Click to collapse
Bootloader status hasn't been checked by the OTAs so far (on the US model anyway). I've been able to go from a bootloader unlocked B20 -> official B27 OTA -> TWRP+CM13 -> Restore my B27 backup in TWRP + reflash stock recovery -> official B29 OTA -> reflash TWRP+CM13. As long as you are completely stock besides the bootloader, you can apply OTAs fine. (you can check the updater script in the OTA files for specifics on what it checks and what it patches)
xtermmin said:
Bootloader status hasn't been checked by the OTAs so far (on the US model anyway). I've been able to go from a bootloader unlocked B20 -> official B27 OTA -> TWRP+CM13 -> Restore my B27 backup in TWRP + reflash stock recovery -> official B29 OTA -> reflash TWRP+CM13. As long as you are completely stock besides the bootloader, you can apply OTAs fine. (you can check the updater script in the OTA files for specifics on what it checks and what it patches)
Click to expand...
Click to collapse
I am rooted and unlocked bootloader. How do apply the stock recovery in order to receive OTA updates?
Just wanna clarify this... B20 bootloader allows the fastboot OEM unlock command, and once you're unlocked, you can flash any bootloader you want. Flashing B29 bootloader does not lock you, once unlocked, always unlocked. Unless you relock it yourself. You can even go older than B20 bootloader. Feel free to play around with BL versions. I like B20 because no stupid 5 second warning thing.
If I already have the unofficial version for TWRP should I install this one over it or is it really the same thing?
@jcadduono, I think most people would find it helpful if you could list what's different between the now official version and @Unjustified Dev's version, as I know they've been developed semi in parallel.

[RECOVERY] [TREBLE] [RETIRED] TWRP with Tissot Manager (Treble & Dual boot support)

RETIRED! No longer supported or being developed. @Giovix92 is now the lead dev, please use his TWRP for full compatibility with modern kernels/ROM's - https://forum.xda-developers.com/mi-a1/development/recovery-twrp-3-3-1-0-tissot-manager-t3976117
Old thread below:
-----------------------------------
About
This is a TWRP Installer ZIP and bootable IMG with extra capability such as Treble-izing, Dual boot repartitioning and other power-user tools with integrated Aroma Installer-powered GUI screens that I call Tissot Manager.
HIGHLY recommended reading and guide for everyone new to Treble - [TREBLE][GUIDE] From Stock to Treble - everything you need to know!. It also has some general protips hidden within there, for example the seamless/slot system interactions and nuances, so it's worth reading for anyone who wants to be a master of the Android flashing domain
Features:
TWRP fully Treble-ready with dual-boot ROM patcher;
Maintained with latest TWRP version;
Fully compatible with non-Treble devices - can be used as normal without Treble partitioning;
USB-OTG fixed
Has 'TWRP survival' function for automatically re-installing TWRP recovery when installing ROMs and kernels;
Option to install a payload ROM in the current slot, rather than the inactive one;
Option to ignore Payload<>Recovery certificate failures (fix for newer LOS-based ROMs);
Adds a "Tissot Manager" Aroma GUI to TWRP Advanced Menu (bottom-right button), which is the tool used to repartition the device for Treble and Dual boot, as well as some other nifty stuff:
Has the option to shrink System OR Userdata to create Vendor partitions. All relevant partitions will be resized and formatted in one go.
If you shrink System, you will keep max size Userdata - however it will be incompatible with non-Treble ROM's (they will crash on installing with Error 28 due to System being too small). It will Erase system, requiring you to reinstall a ROM or restore a ROM backup.
If you shrink Userdata, it will ERASE DATA AND INTERNAL STORAGE COMPLETELY - but your device will stay compatible with all existing non-Treble ROM's
Dual boot requires Userdata shrink and works by splitting into userdata_a and userdata_b. The partition split size is customizable during the repartition process.
Adds a "Patches" section with the following current options:
Patch the current Vendor for dual-boot capability (only required if automatic patching wasn't possible). See the 'About Dual-boot' section below for more information.
Enable an insecure ADBD on boot for the current slot (i.e. enable debugging and remove authentication requirement). Useful for ROM hackers/porters.
Patch the current slot to enable/disable forced userdata encryption
All of this info is detailed inside the Tissot Manager GUI.
See screenshots in post 2.
Instructions
Optionally boot the boot-recovery.img to get a temporary TWRP if you don't have it installed, unzipped from TWRP-boot.img-3.2.1-with-Tissot-Manager-x.x.zip:
Code:
fastboot boot boot-recovery.img
Warning - do not EVER flash this img - hotboot it only.
Flash the TWRP Installer. Any slot, any ROM, any existing Recovery - it doesn't matter - it will be installed to both slot kernels.
Reboot Recovery
Optional - Use the "Advanced > Tissot Manager" option for repartition options and other advanced ROM patches (Aroma Installer powered GUI - a fully guided and interactive process).
If you opted to repartition for Treble, you are ready to flash a Treble ROM/Vendor pack. Reminder - check out my full guide for learning and instructions on all things Treble.
About TWRP survival
TWRP survival is a simple hook that detects if a boot.img will be installed and restores TWRP after it's flashed. This only works if you have booted TWRP with Tissot Manager 2.0 from a real recovery boot - NOT from a recovery 'hot boot' (fastboot boot method).
You will see in the install log if a TWRP survival attempt is successful in the flash text output.
Automatic TWRP survival works when:
Flashing a ROM ZIP (or AIO) with TWRP
Flashing a boot.img in TWRP "Install Image" mode
Automatic TWRP survival does NOT work when:
Flashing a boot.img via fastboot
Restoring boot in a TWRP backup
Any other way of flashing a boot.img
In these cases, be sure the use the TWRP Installer immediately after flashing or restoring a backup - otherwise you may get the device into a confused state (especially if you restore a non-TWRP boot then try to install an AIO ROM without installing a new TWRP first).
About Dual-boot
Dual-boot on this device is relatively simple. As you know we have Slots - boot_a and _b, system_a and _b and vendor_a and _b (for Treble). This repartition splits userdata into userdata_a and _b too. You can simply change your Slot in TWRP reboot menu to change which ROM to boot.
This is designed for developers and testers - NOT for daily use. There are some significant issues with dual boot systems:
Any kind of security lock (PIN, fingerprint, etc.) set on one ROM will cause the other ROM to believe it has security too, but constantly fail with unlocking. This is reportedly because security info is stored on persist, which is shared between each slot (and not compatible with differing ROM's).
Because Userdata is split, so is Internal Storage. In TWRP, when changing slots, the MTP will remain mounted to the old slot - it must be manually disabled and renabled (Mounts menu) to update to the new slot.
I will not fix these issues - dual-boot is not designed to be for general/daily use and there may be more minor issues that I don't know about. It's intended for developers only.
In order for a ROM to be dual-boot compatible, the fstab file (information given to Android about partitions to mount) needs a small modification. This TWRP can try to do this patching automatically when you install a ROM, or it can be done manually in Tissot Manager's Patches menu (as well as single-boot patch to e.g. revert a ROM backup from a dual-boot state).
You will see in the install log if a dual-boot patch attempt is successful in the flash text output.
Automatic dual-boot patch occurs only if necessary when:
Flashing an AIO Treble ROM ZIP with TWRP
Flashing a vendor.img in TWRP "Install Image" mode
Automatic dual-boot patch does NOT work when:
Flashing a vendor.img via fastboot
Restoring vendor in a TWRP backup
Any other way of flashing a vendor
In any of these cases, you can manually patch Vendor for Dual Boot in Tissot Manager's Patches menu. You can also remove dualboot support the same way. It will detect the dualboot state of the current Vendor slot and present the available option. If you find that it doesn't actually change after patching, the Vendor is incompatible (please report it to me). RR AIO Vendor is tested OK.
Download
All downloads (and source code) always at:
https://github.com/CosmicDan-Android/android_device_xiaomi_tissot/releases
...or via DevBB Downloads section.
Additional sources not able to be listed in DevBB:
Modified update_engine: https://github.com/CosmicDan-Android/android_system_update_engine_tissotmanager-mod
What's next?
See [TREBLE][GUIDE] From Stock to Treble - everything you need to know! for detailed instructions and learning on how to Treble like a pro.
FAQ
Q) After I flash TWRP, I get kicked into a Recovery loop when trying to boot the ROM!
A) This is probably because you have a kernel that does not disable dm-verity. To fix this, flash Magisk. The void kernel included in RR AIO does not have this problem and can therefore be safely used without Magisk (for e.g. GSI compatibility).
Q) After I flash TWRP, I get kicked into fastboot when trying to boot the ROM!
A) Your kernel is not Treble-compatible.
Q) How do I update TWRP?
A) Just flash the ZIP installer again, then Reboot Recovery. Note that this will erase Magisk on BOTH slots if you have it installed to either, requiring you to reflash it to one/both slots. See my Treble guide FAQ section for more info on Magisk interaction.
Q) My PC can't see the MTP (storage) device from TWRP!
A) For dualboot compatibility, MTP is automatically disabled at various points. Just enable it manually in the Mounts menu to get access.
Q) If I shrink Userdata for Treble, will stock and OTA work?
A) I have heard varying results on this. It does for some, not for others. Please assume that this will NOT work. It will definitely not work if you have shrunk system.
Q) Can I restore a non-Treble TWRP backup after I repartition for Treble? And the other way around?
A) Yes! In fact, this is the easiest way for...
...using stock ROM on Treble repartition (requires Userdata shrink ONLY). May also require a custom kernel with dm-verity disabled (see Questions above regarding fastboot kick and recovery loop).
...using a non-treble ROM if you shrunk System instead of Userdata since you cannot install non-Treble ROM ZIPs with a shrunk System (see next Q)
Q) I get some Error 28 when trying to install a ROM when repartitioned
A) You have shrunk System and are trying to install a non-Treble ROM. This is not possible AT ALL because the ROM ZIP expects a stock-size System. Use Userdata shrink mode instead if you want to be able to use non-Treble ROM's easily.
Q) I see "Failed to mount '/system' (Device or resource busy)" red error in TWRP after flashing a ROM
A) You can safely ignore it. You just need to reboot recovery before you can flash anything else (like Gapps) to this ROM.
Credits and Thanks
- @mohancm for the original TWRP port, I used some flags from his DT
- @ghpranav and @mountaserhalak for the RR device tree that this is built with (and random help)
XDA:DevDB Information
TWRP with Tissot Manager (Treble & Dual boot support), Tool/Utility for the Xiaomi Mi A1
Contributors
CosmicDan
Source Code: https://github.com/CosmicDan-Android/android_device_xiaomi_tissot
Version Information
Status: Stable
Created 2018-05-29
Last Updated 2019-11-24
Reserved
Screenshots (click for slightly larger non-cropped version)
Screenshot of new TWRP button:
_______________
Main menu (stock partition map detected):
_______________
Repartition choice type when coming from stock:
_______________
Repartition wipe warning/disclaimer if chosing to shrink Userdata for Treble:
_______________
Main menu (Shrunk Userdata type Treble partition map detected):
_______________
Repartition wipe warning/disclaimer if chosing to restore Stock from Shrunk Userdata Treble mode:
_______________
Example of Repartition processing screen:
Good job! :good:
Nice work!
Did you tested treble roms with this? Aex now have treble support
Omg, you are the best man. @mohancm also huge thanks to u man, great devs in our XDA.
I have never seen this kind of detailed, kind guide in XDA. You guys are awesome! Thanks for all this work!
One question : If I choose to shrink /userdata instead of /system,
1. Will I be able to flash stock rom by using MiFlash?
2. If I can, will I be able to get OTA and install them w/o issues?
3. Can I restore a TWRP backup that was made before repartitioning?(because of data on /data)
I think lots of people will be wondering about #3. If you think so too, then please add it in OP!
Thanks to all of you devs again!
Chikoow1 said:
Nice work!
Did you tested treble roms with this? Aex now have treble support
Click to expand...
Click to collapse
This is just the repartition part, one step of Treble. You still need a Vendor pack. But yes, this enables Treble ROMs and the ROMs require repartition.
ddaggebi said:
I have never seen this kind of detailed, kind guide in XDA. You guys are awesome! Thanks for all this work!
One question : If I choose to shrink /userdata instead of /system,
1. Will I be able to flash stock rom by using MiFlash?
2. If I can, will I be able to get OTA and install them w/o issues?
3. Can I restore a TWRP backup that was made before repartitioning?(because of data on /data)
I think lots of people will be wondering about #3. If you think so too, then please add it in OP!
Thanks to all of you devs again!
Click to expand...
Click to collapse
1. If you do, it will wipe partition map back to stock. So you will need to repartition with Treble Manager TWRP again. But you can make a backup of stock ROM in TWRP and just restore it after the repartition. It should work.
2. Don't know. Needs testing.
3. Yes! I forgot to add this to the FAQ.
Has this tpwr f2fs support and working?
Since Los support It i would like ti have
@CosmicDan
Thank you so much for your effort. I'm currently on stock and want to retain stock compatibility, so I'm going to wait until this becomes more polished before trying. I understand that Treble is not meant to be compatible with stock, so I realize my question might be out of place. Still, my question is:
Will you also release the .img file for Treble TWRP for those of us who don't want a permanent custom recovery?
Filip013;76586434 [user=1844875 said:
@CosmicDan[/user]
Thank you so much for your effort. I'm currently on stock and want to retain stock compatibility, so I'm going to wait until this becomes more polished before trying. I understand that Treble is not meant to be compatible with stock, so I realize my question might be out of place. Still, my question is:
Will you also release the .img file for Treble TWRP for those of us who don't want a permanent custom recovery?
Click to expand...
Click to collapse
It's indeed not intended to be compatible with stock ROM, but your mileage may vary, and as @CosmicDan said, it might work good enough or it won't. You can only try to see the results yourself.
This whole Treble thing is meant mainly for custom ROMS, since stock will never be Treble compatible (still, anything could happen)
I've just updated the TWRP with Treble Manager to 1.1 which fixed a semi-important bug.
Also, I've released a guide for those who find the Treble conversion/install process confusing - check it out. If you can, keep TWRP and Treble Manager specific questions in this thread, but ask your general questions and help over there - I will update the guide as I get feedback
CosmicDan said:
FAQ
Q) If I shrink Userdata for Treble, will stock and OTA work?
A) Untested. Please report your results. But Treble is really not about Stock, you will likely encounter more problems down the line or it may turn out to be completely incompatible.
Q) Can I restore a non-Treble TWRP backup after I repartition for Treble? And the other way around?
A) Yes! In fact, this is the easiest/only way for...
...using stock ROM on Treble repartition (requires Userdata shrink ONLY). May also require a custom kernel with dm-verity disabled (untested - if you get bootloop when using stock, it means you do) or Magisk (also untested, may still get bootloop).
...using a non-treble ROM if you shrunk System instead of Userdata since you cannot install non-Treble ZIP's on ROM's with a shrunk Userdata (see next Q)
Q) I get some Error 28 when trying to install a ROM when repartitioned
A) You have shrunk System and are trying to install a non-Treble ROM. This is not possible AT ALL because the ROM ZIP expects a stock-size System. Use Userdata shrink mode instead if you want to be able to use non-Treble ROM's easily.
Q) I see "Unable to mount '/vendor' (Invalid argument)" red error in this TWRP
A) You can safely ignore it. It just means you have not repartitioned your device for Treble yet, so it can't mount the /vendor image.
Click to expand...
Click to collapse
Ay!
Have just finished testing about OTA on stock after Treblizing!
Result?!?
OTA works perfectly on stock after shrinking data to Treblize! Hurrah! ???
Process I followed:
1) Treblize by shrinking data
2) This is important: flash stock ROM in fastboot using MiFlash! When flashing for the first time, select "clean all and lock"! No other standard options working! I couldn't even boot stock using other options!
I've tested by fastboot flashing April build and then updating it to May OTA!
*** On a note: clean all will erase everything on your phone including your personal data!
If you use "save user data" then stock can't even boot! This may caused by the encryption!
BTW, after everything I just restored my non-Treble RR backup and everything works perfect! Just Treble Check app can't check that it's Treblized!
But don't worry! Treble partition table still remains! Fastboot flash can't touch that and can't recognize that it actually exists! Which to me is a good thing!
@CosmicDan, give me a thanks buddy! I deserve this!
SomratMJX said:
-snip-
Click to expand...
Click to collapse
Don't quote the whole OP and please use a smaller font size.
Change slot doesn't work... Others are okay as far as i have seen
dback31 said:
Don't quote the whole OP and please use a smaller font size.
Click to expand...
Click to collapse
Just thought it's too important to highlight! Nothing else!
Rakibboss said:
Change slot doesn't work... Others are okay as far as i have seen
Click to expand...
Click to collapse
Reboot to fastboot and change the slots with
fastboot set_active b
Rakibboss said:
Change slot doesn't work... Others are okay as far as i have seen
Click to expand...
Click to collapse
Use the latest TWRP 1.1! Works fine for me!
SomratMJX said:
Just thought it's too important to highlight! Nothing else!
Click to expand...
Click to collapse
Then please atleast remove the OP quote. It's a pain for mobile users to scroll through this
dback31 said:
Then please atleast remove the OP quote. It's a pain for mobile users to scroll through this
Click to expand...
Click to collapse
Ha ha ha! It's related to OP buddy!
Anyways, I am too lazy to quote a certain part of the OP!

[RECOVERY][TREBLE] TWRP Recovery for Zenfone 3

This is a TWRP fully Treble-ready with "Treble enabler" option in order to repartition safely the device.
Features:
TWRP fully Treble-ready;
Maintained with latest TWRP version;
Fully compatible with non-Treble devices - can be used as normal without Treble partitioning;
USB-OTG fixed
Has 'TWRP survival' function for automatically re-installing TWRP recovery when installing ROMs and kernels;
Adds a "Treble enabler" option that allows you to repartition your device in order to support Treble.
Has the option to shrink userdata to create Vendor partitions. All relevant partitions will be resized and formatted in one go.
If you shrink Userdata, it will ERASE DATA AND INTERNAL STORAGE COMPLETELY - but your device will stay compatible with all existing non-Treble ROM's
Instructions
Flash the recovery.
Reboot Recovery
Optional - Use the "Advanced > Treble enabler" option for repartition option.
If you opted to repartition for Treble, you are ready to flash a Treble ROM/Vendor pack.
About TWRP survival
TWRP survival is a simple hook that detects if a boot.img will be installed and restores TWRP after it's flashed. This only works if you have booted TWRP with Tissot Manager 2.0 from a real recovery boot - NOT from a recovery 'hot boot' (fastboot boot method).
You will see in the install log if a TWRP survival attempt is successful in the flash text output.
Automatic TWRP survival works when:
Flashing a ROM ZIP (or AIO) with TWRP
Flashing a boot.img in TWRP "Install Image" mode
Automatic TWRP survival does NOT work when:
Flashing a boot.img via fastboot
Restoring boot in a TWRP backup
Any other way of flashing a boot.img
In these cases, be sure the use the TWRP Installer immediately after flashing or restoring a backup - otherwise you may get the device into a confused state (especially if you restore a non-TWRP boot then try to install an AIO ROM without installing a new TWRP first).
Download
https://zenfone3-dev.gitlab.io/recovery/twrp-treble/
FAQ
Q) After I flash TWRP, I get kicked into fastboot when trying to boot the ROM!
A) Your kernel is not Treble-compatible.
Q) How do I update TWRP?
A) Just flash the ZIP installer again, then Reboot Recovery. Note that this will erase Magisk on BOTH slots if you have it installed to either, requiring you to reflash it to one/both slots. See my Treble guide FAQ section for more info on Magisk interaction.
Q) My PC can't see the MTP (storage) device from TWRP!
A) For dualboot compatibility, MTP is automatically disabled at various points. Just enable it manually in the Mounts menu to get access.
Q) If I shrink Userdata for Treble, will stock and OTA work?
A) I have heard varying results on this. It does for some, not for others. Please assume that this will NOT work.
Q) Can I restore a non-Treble TWRP backup after I repartition for Treble? And the other way around?
A) Yes!
Q) I see "Failed to mount '/system' (Device or resource busy)" red error in TWRP after flashing a ROM
A) You can safely ignore it. You just need to reboot recovery before you can flash anything else (like Gapps) to this ROM.
Thanks to:
@CosmicDan for his files for Tissot Manager & this thread template
@makorn645, @planet9, @Oki for Party
XDA:DevDB Information
TWRP Recovery for Zenfone 3, Tool/Utility for the Asus ZenFone 3
Contributors
Giovix92, makorn645,
Source Code: https://github.com/Giovix92/android_device_asus_zenfone3/tree/twrp-8.1
Version Information
Status: Stable
Current Stable Version: 20190312
Stable Release Date: 2019-03-12
Created 2019-03-12
Last Updated 2019-03-12
@Giovix92 Does this mean I can use any ROM that is Treble? Or have some restrictions.
dVinsmoke said:
@Giovix92 Does this mean I can use any ROM that is Treble? Or have some restrictions.
Click to expand...
Click to collapse
Just the treble los16 zenfone3 on our forum for now
iamROOTX said:
Just the treble los16 zenfone3 on our forum for now
Click to expand...
Click to collapse
But then I see no difference from a "normal" ROM ported specifically to a device. Should not Treble support be able to use them on several different devices?
For example, should not I be able to go to the AEX Treble download area and use it on ZF3? If it would not be the same as having to wait for a dev port AEX to ZF3.
I'm really confused lol
dVinsmoke said:
But then I see no difference from a "normal" ROM ported specifically to a device. Should not Treble support be able to use them on several different devices?
For example, should not I be able to go to the AEX Treble download area and use it on ZF3? If it would not be the same as having to wait for a dev port AEX to ZF3.
I'm really confused lol
Click to expand...
Click to collapse
What do you expect? It's still in an early stage of porting. Some device specific bits still run from /system. GSI's may work but I doubt anything will work properly.
And I don't plan of supporting GSIs anyway.
makorn645 said:
What do you expect? It's still in an early stage of porting. Some device specific bits still run from /system. GSI's may work but I doubt anything will work properly.
And I don't plan of supporting GSIs anyway.
Click to expand...
Click to collapse
Being sincere I did not expect anything, since I did not understand anything lol This Treble left me was confused lol
So what's the difference of the Lineage Treble for a Lineage normal running in ZF3?
dVinsmoke said:
Being sincere I did not expect anything, since I did not understand anything lol This Treble left me was confused lol
So what's the difference of the Lineage Treble for a Lineage normal running in ZF3?
Click to expand...
Click to collapse
Currently nothing much ( updated proprietary bits + vendor image taken in place )
Maybe in the near future when everything is in place. I'll seperate Vendor image from builds ( noticable smaller updates )
makorn645 said:
Currently nothing much ( updated proprietary bits + vendor image taken in place )
Maybe in the near future when everything is in place. I'll seperate Vendor image from builds ( noticable smaller updates )
Click to expand...
Click to collapse
Also, when vendor img will be split from the ota package, with (if necessary) some adjustments we can flash GSI ROMs easily.
Great work guys!! Waiting for vendor partition, for some tests!
Williknot said:
Great work guys!! Waiting for vendor partition, for some tests!
Click to expand...
Click to collapse
Well, repartition works fine. After repartition a new /vendor partition of 1024mb will be made.
Although, you'll loose your data (apps+personal). So make sure to do a full backup of your device.
Feedback:
* HAVE A BACKUP. This tool messes with your partition table and is still unstable. Your data partition can be resized to the wrong size.
Will come back after a few months to provide more feedback. Appreciate the work guys.
Works fine for me, data is correctly resized even with multiple changes from normal to treble and back...
Can't seem to wipe /cache partition.
Anyone knows why?
[QS said:
;79165451]Works fine for me, data is correctly resized even with multiple changes from normal to treble and back...
Can't seem to wipe /cache partition.
Anyone knows why?
Click to expand...
Click to collapse
A bugfix release will be coming along with the next LineageOS build.
fcbn98 said:
Feedback:
* HAVE A BACKUP. This tool messes with your partition table and is still unstable. Your data partition can be resized to the wrong size.
Will come back after a few months to provide more feedback. Appreciate the work guys.
Click to expand...
Click to collapse
Well, that's normal.
Since you're going to make a new /vendor partition of about 1024mb, /data should be deleted & recreated in order to give some space to the new partition.
Also, what do you mean with "can be resized to the wrong size"?
The tool is pretty stable tho. Can you give more info such as model (ex. ZE552KL 4/64), script version (ex. 4.3b) & other?
Thanks.
I've successfully installed this tool, although attempting to install the new LOS 16 Android 9 ROM we have on this forum results in an error: 7, "Failed to mount '/vendor' (Invalid argument)"
From what I've perused so far in my research, that error mostly crops up on non-treble builds of TWRP, yet I definitely used the latest version from your website. I also redownloaded the latest version of LOS just to recheck, and yep, nothing's changed.
Any clue about what's going on here? I don't know much about Treble ROMs, or custom ROMing to be all honest.
EDIT: I have found the enable Treble option. Even when enabled and installed, after reboot, the /vendor partition cannot be read. It seems that after doing this too, I can't load files over USB, or mount my SD Card. I'm getting pretty confused as to what's happening. I can't boot into system, and fastboot won't connect to my PC.
Kaisogen said:
I've successfully installed this tool, although attempting to install the new LOS 16 Android 9 ROM we have on this forum results in an error: 7, "Failed to mount '/vendor' (Invalid argument)"
From what I've perused so far in my research, that error mostly crops up on non-treble builds of TWRP, yet I definitely used the latest version from your website. I also redownloaded the latest version of LOS just to recheck, and yep, nothing's changed.
Any clue about what's going on here? I don't know much about Treble ROMs, or custom ROMing to be all honest.
EDIT: I have found the enable Treble option. Even when enabled and installed, after reboot, the /vendor partition cannot be read. It seems that after doing this too, I can't load files over USB, or mount my SD Card. I'm getting pretty confused as to what's happening. I can't boot into system, and fastboot won't connect to my PC.
Click to expand...
Click to collapse
Did you follow these steps properly?
https://zenfone3-dev.gitlab.io/tutorials/repartition
can i flash android q gsi images using treble recovery.
Switching back to stock rom
If I have made the treble partition using this recovery is there any way to go back to stock rom?
Avinash007 said:
If I have made the treble partition using this recovery is there any way to go back to stock rom?
Click to expand...
Click to collapse
Wipe vendor, data, cache, dalvik partition and flash any ROM normally.
Can i flash android Q gsi image using this recovery on ze520kl

TWRP-fastboot Precompiled .img files of mine

Hi I Have .img files of precompiled oxygen 10.3.7 OSs that I want to share.
I use a dual boot from Orangefox
The actual firmware came from Oneplus.com
I also used Smurf kernel and xXx NoLimits ☆ for OnePlus
Installation is easy
1. Boot into a twrp
2. Flash Orangefox dual boot (partition I used is a-96gb b-96gb with a C-of 32gb.
3. Flash the .img files to the correct Partitions.
4. Flash orangefox twrp agian updating the filesystem to how you programmed it
5. Enjoy I also recommend updating magisk.
I'll be posting more quick image files of precompiled OSs soon. Mainly off original Oxygen 10.3.7.
Let know if theirs anything to fix or build. This is a quick way to not have to switch slots and get an OS on your phone.
https://mega.nz/folder/qno2HCQa#i9lYlnSOyj7RZe2kNDBCNA
also if you setup Your OS how you want it and make a twrp backup of the data. than you can do the above procedure and also restore your setting and hooks after.
Can You please explain what exactly it is?
spheady said:
Hi I Have .img files of precompiled oxygen 10.3.7 OSs that I want to share.
I use a dual boot from Orangefox
The actual firmware came from Oneplus.com
I also used Smurf kernel and xXx NoLimits ☆ for OnePlus
Installation is easy
1. Boot into a twrp
2. Flash Orangefox dual boot (partition I used is a-96gb b-96gb with a C-of 32gb.
3. Flash the .img files to the correct Partitions.
4. Flash orangefox twrp agian updating the filesystem to how you programmed it
5. Enjoy I also recommend updating magisk.
I'll be posting more quick image files of precompiled OSs soon. Mainly off original Oxygen 10.3.7.
Let know if theirs anything to fix or build. This is a quick way to not have to switch slots and get an OS on your phone.
https://mega.nz/folder/qno2HCQa#i9lYlnSOyj7RZe2kNDBCNA
also if you setup Your OS how you want it and make a twrp backup of the data. than you can do the above procedure and also restore your setting and hooks after.
Click to expand...
Click to collapse
Sorry I the project was not what I expected. Mainly going to make a fastboot installer pakackage for 10.3.7 and another flasher package for if I scew up and get stuck on my bootloader, with the files. I am not able to setup a PC for long right now so it would be wise. The smali thing turned out not working. The twrp can install into The New beta 11 that people are trying to root with boot.img's on another post

Categories

Resources