[RECOVERY] Henk's TWRP Recovery - OnePlus 3 & 3T Cross Device Development

DISCLAIMER
Code:
The usual disclaimer with an extra warning, this recovery
WILL automatically modify your phone on first boot.
While this should be an entirely safe modification
it is always possible your phone is in a broken state
either on a software or hardware level causing further problems.
This recovery should under no circumstances be flashed
for the first time on a bricked phone
as the automatic changes might damage it further.
ONLY FLASH THIS ON A PHONE IN GOOD CONDITION!
By flashing this recovery you consent to a vendor partition
being created and to take full personal responsibility of any damage
the usage of this recovery may cause rather than blaming it on me.
ABOUT
This modified TWRP is the recovery image i have been using on my personal OnePlus 3T for the past month, with the increasing popularity of system-as-root roms and the issues this causes for older zip files (Such as Google Apps not flashing with wrong arm version errors) i have decided that it would be worth sharing with the community. This recovery image is a ramdisk modification of the TWRP supplied by the LineageOS Unofficial Treble Port Project (Similar to how SHRP is a ramdisk modification of existing TWRP images). Because this is not a source modification (and neither has TWRP been compiled from source) you can find the original source code in their topic. I hope this recovery will be useful to those who often flash multiple kinds of roms and want one recovery that does it all. It has been tested on the Oxygen OS 4, 5 and 9 firmwares and should have great compatibility with all of them.
Included Features
Automatic Vendor Partition Creation and full Treble support
WARNING: Because this recovery will automatically create the vendor partition it should exclusively be used on devices in good conditions. In the very rare case that bricks occur you can revert the change using the MSMDownloadTool (This can only be used on healthy hardware). If you are unsure about the condition of your device or if your device is currently in a bricked state it is best to use another recovery. I am not responsible for further damage to your phone.
Originally the TWRP image provided by the Treble project needs you to type in the 'treblize' command followed by manual reboots, I have automated this process. From the moment you first boot this recovery the vendor partition will automatically be created and the recovery reboots automatically in a new recovery session (This is not a crash and only happens once). If vendor partition has been detected you will be able to see /treblized as a directory on your phone (This is done in RAM and only visible during your recovery session). The vendor partition does not conflict in any way, you can use and pass safetynet on regular roms at will as it is invisible to a rom using a non treble kernel. Before flashing GSI roms please first flash a proper vendor partiton (This can be done by flashing the LineageOS treble rom the regular way).
/system and /system_root hybrid for maximum compatibility!
This is one of my main reasons for sharing this recovery publicly, i have modified the /etc/fstab file to be able to both mount to /system and to /system_root. This means that older zips that expect /system now work again without breaking compatibility with newer system as root or GSI roms. This is one recovery that can do it all! Inside the root folder you will find a flashable zip called Mount-System.zip. This can be used before incompatible zips to mount the /system partition correctly. This tool will automatically detect system-as-root if present and mount /system to /system_root/system, if not present it mounts /system to /system_root. You should prefer this method over the mounting options found in the menu, these should only be used for unmounting system. Keep in mind that by doing this you are messing around with scenario's the original developers have not foreseen and while flashing these previously broken zips is now possible you cause issues in your ROM. Always flash these previously incompatible zips with care and make a backup first! Do not use this Mount-System.zip to flash new roms, those are best flashed in an unmounted state. The same applies for Magisk and any other system-as-root compatible zips. If you are flashing regular roms my fstab changes will be enough and mount-system will not be needed.
Magisk + Magisk Manager on the ramdisk
In the / directory alongside the other zip files you will find Install-Magisk.zip and Manage-Magisk.zip, these can be used to both install and recovery from Magisk related issues. You no longer need to worry about keeping a copy of Magisk at hand after wiping the data or when you are in need of a downgrade, with this a copy of Magisk and a GUI management tool is always available to you directly from the recovery's root folder.
Persist Backup Tool
It is very important that you keep a spare backup of your persist partition, even the MSMDownloadTool will not be able to repair this as it is unique to your device. In addition devices with persist issues (Sensors, LTE, IMSEI, Wifi, not working / blank) should not use the MSMDownloadTool at all since it can leave you with an unbootable phone. Flash the Backup-Persist.zip file (Found in the recovery's root directory) to automatically create a copy of your persist partition stored on your sdcard so you can easily back this up to a secure location. Persist is even more important than backing up the EFS! An EFS backup alone will NOT recover your phone in the case of persist corruption!
Download
Modified Files
This project contains work from
TWRP Base Image and original Treblize scripts : The Unofficial LineageOS Treble Project
Install-Magisk.zip : Magisk
Manage-Magisk.zip : Magisk Manager Recovery Tool
Known issues
Before uploading i did extensive testing, in some scenario's i managed to cause a hard crash of the recovery image, this is not related to any of the included tweaks but seems to be an issue with flashing a rom when you have just formatted partitions. I advice to always reboot after a partition format or before flashing a system rom to ensure that everything is in a state it can be properly mounted. If you did trigger this white light crash do not fear, your device is not bricked (Unless whatever you flashed bricked it). You should be able to turn it off using the power button after which it will boot up just fine and you can try flashing again.
​

<deleted>

henk717 said:
Before uploading i did extensive testing, in some scenario's i managed to cause a hard crash of the recovery image, this is not related to any of the included tweaks but seems to be an issue with flashing a rom when you have just formatted partitions. I advice to always reboot after a partition format or before flashing a system rom to ensure that everything is in a state it can be properly mounted. If you did trigger this white light crash do not fear, your device is not bricked (Unless whatever you flashed bricked it). You should be able to turn it off using the power button after which it will boot up just fine and you can try flashing again.
Click to expand...
Click to collapse
Might not be restricted to just your recovery.
This happens to me on official TWRP as well, when I restore a system image from a backup. It gets stuck on a white light, and I have to hard reset it. The restore does seem to work though.

I flashed the backup persist but did not found the file it should create. Where is it located? Thanks in advance

It should be located in the main directory of your storage and be called persist.img.
However when i just did another test i noticed the zip gives a 255 error that does not happen on the zip on my gitlab.
I am unsure how this difference happened but generated a new img file where i tested and verified all the zip's manually, if you run into the 255 error please redownload and reflash.

Related

[GUIDE] [Q&A] [TREBLE] From Stock to Treble - everything you need to know!

Here I will share all the info you need to know about using Treble on the Mi A1. Everyone is more than welcome to ask questions and clarification here, I am happy to answer and will update this thread over time. Thanks!
Contents
0. Key Terms
1. Restoring to Stock
-- 1.1. Requirements
-- 1.2. Full-device backup
-- 1.3. Stock restore process
2. "Treblize" (repartition) the device
3. Your first Treble ROM install
4. Installing AIO's, GSI's, Vendors and More
-- 4.1. Install a Treble AIO
-- 4.2. Install a Treble GSI
-- 4.3. Install/update a Vendor Pack
-- 4.4. Install a non-Treble ROM
-- 4.5. Restore a TWRP backup
5. Mods and Extras [Gapps, Magisk, custom kernels, etc.]
6. FAQ and Troubleshooting
----------------------------------------------
0. Key Terms
Throughout your Treble adventures, you may see lots of new terms. Here I will explain them all. This is essential reading!
Treble
Treble is the broad term of a new Android architecture model of splitting the system into two partitions:
System: where the Android OS goes, i.e. Oreo or later operating system;
Vendor, where the device-specific files go, such as drivers.
Before Treble, both the Android OS and device-specific files would live together on system. See below for a more detailed description of Vendor.
"Treblizing"
May also be called Treble-enable, Treble-conversion or some variation of that. This is the process of converting a non-Treble device to a Treble-capable one, unofficially, by changing the partition map of the device. This involves shrinking an existing partition - such as userdata or system in the case of the Mi A1 - in order to create a new vendor partition - or two vendor partition in the case for our Mi A1, one for each slot. Treblizing is just the preparation stage - you still need an AIO installation (see AIO below) before you are actually able to use a Treble ROM.
Vendor
Also known as Vendor Pack or Vendor Image. In the context of Treble, this is a standalone vendor image (either as a ZIP or usually as an IMG) that can be flashed to your Treble-enabled device for it to be compatible with a Treble system/ROM. These are similar to a kernel in the way that they are flashed to their own partition on your device and are compatible with many Treble ROM's. They are also similar to a kernel in that they are made specifically for one device to provide the low-level functionality of the system. It mostly includes drivers, but can also include apps and overlays that are automatically added at runtime to the Android OS that's living on System.
Treble developers for the Mi A1 may release standalone "vendor.img" for use on other ROM's - usually GSI's (see description of GSI below) but they are also part of an AIO (see description of AIO below).
GSI
Stands for "Generic System Image". This concept, introduced and developed by @phhusson is the creation of a System image that is device-agnostic - that is, it is a ROM that is designed to work with an existing Treble device, as long as the device has a GSI-compatible Vendor and kernel installation. For devices with official Treble support, phhusson makes the effort to try and adapt his GSI system for compatibility - but for unofficial Treble device like the Mi A1, it's our (tissot developers) responsibility to make a Vendor/Kernel that is as GSI-compatible as possible.
AIO
Stands for "All In One". This is a Treble firmware that includes a Kernel, System and Vendor image in the one ROM ZIP. This provides an all-in-one Treble experience through a device-specific Treble ROM. AIO's are designed to work well with their own ROM but should also strive to be compatible with a GSI.
An explanatory chart of Key Terms
{
"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"
}
Click here for full size image.
Ignore this spoiler (coded link to thumbnail because XDA thread edit breaks the IMG link)
Code:
https://img.xda-cdn.com/ic22y2zu5yi9EClrY11FS8FU5C0=/https%3A%2F%2Fimg.xda-cdn.com%2FU8u8IdA66PAFHOM4PsKNQbFHwSA%3D%2Fhttps%253A%252F%252Fimg.xda-cdn.com%252Fo1fMEJDyu5x7pv2B9KB323i8_IA%253D%252Fhttps%25253A%25252F%25252Fthumbs2.imgbox.com%25252Fd7%25252Fc2%25252FDxa93pOz_t.png
----------------------------------------------
1. Restoring to Stock
For the sake of consistency, I highly recommend everybody revert to a clean stock state. This ensures that as many of us are coming from the same place to eliminate inconsistency with reported bugs. If you're impatient or experienced though, feel free to skip this - but if you have issues, be sure to try again from here before asking for help.
Note that this will also restore you to the stock partition map, i.e. before "Treblizing".
1.1. Requirements
Unlocked bootloader and EDL access/drivers. See FAQ at bottom of this post for details on EDL.
Modern fastboot binary - it needs the "--set-active" option. Check with fastboot --help to see if it's listed in the usage.
Latest/recent official firmware package. Recommended "V.9.5.10.0.ODHMIFA" only because it's what I used, if you're not sure - but anything newer should be fine too.
Recent MiFlash version. I used 7.4.25 which can be downloaded from here.
1.2. Full-device backup
HIGHLY RECOMMENDED. While all this is relatively safe (as safe as device modding can be), I cannot be held responsible for any data loss or bricks. You can make a Low-Level backup with my tool here. You can use the "skip-systems-and-userdata" partition list to save time, since those can be backed up in TWRP anyway. This is here mostly as a failsafe.
Also backup your internal storage files. The Treblizing process may wipe your internal storage.
1.3. Stock restore process
Flash latest firmware (V.9.5.10.0.ODHMIFA at time of writing) in EDL mode with MiFlash. This will wipe your device (including Internal Storage) and restore stock partition map. This could take a while.
Optional: If Wifi is broken (you can check by booting ROM), flash the "tissot_images_V.9.5.10.0.ODHMIFA___persist-only" in MiFlash under EDL, attached. Just extract the ZIP and browse to the folder in MiFlash. You can replace the persist.img from official V.9.5.10.0.ODHMIFA or another ROM if you want to be sure it's genuine. Credits to @AlexAiS for discovering this.
Remember - you backed up your original persist.img in step 1 anyway, so this is not risky.
I am not sure how this works exactly. It seems MiFlash in EDL is able to re-build a MAC address while flashing the persist. I don't know where this MAC comes from though.
----------------------------------------------
2. "Treblize" (repartition) the device
If you looked at the chart, you'll know that this is just the first step. You will need to actually install an AIO ROM after this part. This is a ONE TIME PROCESS for getting Treble capability on your device.
Repartitioning is relatively painless ever since I created TWRP with Treble Manager. Read on for a walkthrough.
Fastboot boot to TWRP with mohancm's recovery img (i.e. recovery-3.2.1-1) if you don't already have TWRP installed. Do not get the installer - we're using the one with Treble Manager instead.
Install the latest TWRP with Treble Manager (v1.2 at time of writing, but of course latest version is best) then Reboot Recovery to actually load it. Be sure to read about TWRP with Treble Manager in that thread to understand how it works. If you have any questions specifically about the TWRP and Treble Manager, please ask in that thread.
Format Data in Wipe menu (to remove Stock encryption), then Reboot Recovery again (maybe not necessary but it can't hurt).
In TWRP, go to Advanced > Treble Manager and repartition the device by following the wizard. Userdata shrink is recommended, as per the in-menu description explaining this. Just try the Treble Manager and see yourself - it will ask you one last time before repartitioning so don't worry about it wiping without warning. Alternatively, you can just check the screenshots.
After finished it will reboot TWRP. You are now ready for installing a Treble AIO (and then a GSI, if desired), but be sure to still read on, especially the next section below (there is a known issue that you need to work around - otherwise a bootloop will occur).
----------------------------------------------
3. Your first Treble ROM install
THERE IS AN IMPORTANT STEP THAT MUST BE FOLLOWED HERE WHEN INSTALLING YOUR FIRST TREBLE ROM. FAILURE TO FOLLOW THESE INSTRUCTIONS WILL RESULT IN A BOOTLOOP.
Make a note of the current slot (in Reboot menu). If you followed this guide from Section 1, you should be in Slot A. If you're not, just swap any mention of Slot A and B in these steps.
Download a Treble AIO ROM (such as RR Treble Experimental) and flash in TWRP. This is required even if you want to use a GSI, since it has the required Vendor Pack and Kernel.
Immediately install TWRP with Treble Manager again, as you usually do, to re-inject TWRP into the new ROM boot image.
Reboot Recovery, NOT SYSTEM.
Confirm in Reboot menu that the device has successfully switched to Slot B. If it is still stuck in Slot A, this is a one-time bug that must be solved now - if you do not fix this then you will just bootloop.
If it is still stuck in Slot A, you must reboot to fastboot (make sure you have a current version, as explained in Section 1.1. "Requirements") and manually run the command:
Code:
fastboot --set-active=b
...after doing this once, slot switching should work fine in TWRP again. You should never have to do this again (unless you go back to stock then re-Treblize again).
In case you didn't know, all ROMs for our Seamless device actually install into the *other* slot that isn't currently active - that's why you always need to Reboot Recovery first before installing Magisk or Gapps and such.
I advise users from now on to keep an eye on their Slot switching whenever you install an AIO ROM to make sure it worked. If it happens again after these steps, please report it to me with as much details as possible (we're still trying to figure out this bug).
After following these steps, you should be able to flash Treble ROM's just as you would a normal ROM from now on. Your Treble transformation is complete. But read on for more help and walkthroughs if you need it.
----------------------------------------------
4. Installing AIO's, GSI's, Vendors and More
Assuming you followed Section 3 above, you are now ready to install anything as usual. But some users have expressed confusion about what they can and can't do from this point, so I will give you some example choices here.
4.1. Install a Treble AIO
At the time of writing this guide, currently the only Treble AIO is the RR Experimental build. If or when others come along, you can just install them like normal ROMs. We already did this in Section 3 above, but here is a simplified summary of that process:
Flash the AIO ROM in TWRP with Treble Manager 1.2+ - do NOT reboot
Immediately reflash TWRP with Treble Manager 1.2+ so you get the Treble-compatible TWRP back
Factory Reset if it's a different ROM, as you usually would in this case.
Make a note of which slot you are on right now
Reboot recovery
Make sure your device has now swapped to the other slot by checking the reboot menu. If it has not, you will need to repeat the fastboot --set=active step as explained in Section 3. (I don't know if this is necessary again - but I just want to warn users to be aware of this known bug)
Now that the slot has changed, you can install Gapps, Magisk and/or whatever other compatible additional mods you want.
4.2. Install a Treble GSI
You may remember from earlier that the Treble GSI's are just System images that use your existing Vendor and Kernel. We already have a Treble kernel and Vendor from an AIO (Section 3 or Section 4.1. above), so this is quite simple:
Download any GSI/Phh-Treble ROM's from the Treble-Enabled Device Development section and copy the IMG to device
Make sure your current slot is a Treble ROM slot (i.e. existing AIO or GSI working). Unlike AIO/ROM ZIP flashing, image flashing installs it to the CURRENT slot.
Flash the IMG to "System Image" in TWRP with Treble Manager 1.2+
Factory Reset if you're changing ROM's
Install any other mods (Gapps, GSI-compatible Magisk [i.e. 16.4 beta or later], etc.). You may need to boot the ROM once before installing any mods - this varies per GSI. Some existing mods may also be outright incompatible with the GSI.
Reboot
Note that since this is only a System image, there is no need to reinstall TWRP or Reboot Recovery.
4.3. Install/update a Vendor Pack
While you're on a current and working AIO or GSI slot, you can flash a vendor.img to update the driver/device level stuff for that ROM. This could be done to e.g. fix the Camera. This is useful if you're running a GSI.
Download a vendor.img from your AIO or Vendor Pack provider (e.g. RR AIO Experimental) and copy the IMG to device
Make sure your current slot is a Treble ROM slot (i.e. existing AIO or GSI working). Unlike AIO/ROM ZIP flashing, image flashing installs it to the CURRENT slot.
Optionally make a TWRP backup of Vendor (or more) if you want to be careful and it's your daily (I always do).
Flash the IMG to "Vendor Image" in TWRP with Treble Manager 1.2+
Reboot
Note that since this is only a System image, there is no need to reinstall TWRP, Reboot Recovery or install any Mods (Gapps, Magisk, etc) UNLESS it's a Vendor mod (as of time of writing, no Vendor mods exist yet).
4.4. Install a non-Treble ROM
This is simple, same as you're used to before Treblizing. But do note that this is only possible if you chose to resize Userdata when repartitiong with Treble Manager.
Download the ROM to your device
Optional - make sure the active slot is one with a Treble AIO/GSI ROM already - remember that ROM ZIPs install to the OTHER slot, not the currently active one; so this way you can easily switch back to the Treble ROM just by doing a Factory Reset (or TWRP restore of Data) and slot switch.
Factory reset
Install the ROM as per usual procedure (Install ZIP, reflash TWRP with Treble Manager 1.2+, reboot recovery to allow slot switch, install Gapps + Magisk + Mods, etc., reboot).
4.5. Restore a TWRP backup
There is nothing special about restoring a backup. Even if your backup was from a non-Treble ROM, you can restore that backup on a Treblized device. Obviously, though, any Treble ROM backup can only be restored on a Treblized device.
----------------------------------------------
5. Mods and Extras [Gapps, Magisk, custom kernels, etc.]
After you have confirmed that TWRP is booting in to the correct slot (see Section 3), you're ready to install other ROMs (see Section 4) followed by mods. I did briefly go over mods in Section 4, but I'll go into more detailed info about compatibility here.
Any usual Gapps should work fine, just as long as you flash after the slot is correctly set. Note that RR Camera (GCam) requires Gapps to be installed. I used Nano, they worked fine.
Also note that some GSI's will require you to boot the system first before installing Gapps.
Custom kernels must be marked Treble compatible for our device. Specifically (info for kernel developers) this means adding slotselect flag to vendor entry in DTB, and disabling dm-verity (so we can inject vendor changes to system).
It is reported that standard Magisk will work in RR Treble ROM, but it does NOT work on GSI. You need Magisk 16.4 beta or later for GSI's. Also see the FAQ section at the end for more info on the Magisk situation.
Some other ZIP's might need updating for Treble, really unsure. Experimentation is welcome. Just be sure you make TWRP backups before testing anything, of course!
--------------------------------
6. FAQ and Troubleshooting
Q) I get "cannot receive hello packet" in MiFlash
A) Just reboot EDL mode and try again. Usually only happens if you try to flash in EDL twice in a row. See the Low-level Backup/Restore/Unbrick toolkit thread for more info about EDL.
Q) How to Magisk with Treble? What is the TWRP and Magisk interaction?
A) Best to use Magisk 16.4 beta or later, it's reported as working on GSI's. Also note that Magisk is installed to the boot ramdisk (the same place as where TWRP goes) and this has the following implications:
Whenever you flash the TWRP installer, you will need to reinstall Magisk *after* you Reboot Recovery
TWRP installer will flash to BOTH slots, but Magisk will only flash to the CURRENT slot. So if you flash TWRP installer, it may erase any Magisk install on the inactive slot.
TWRP survival (in my recent TWRP builds) backs-up and restores the whole ramdisk. This will include Magisk, if it was already on the boot slot that it backs up.
Q) EDL mode? Eh?
A) EDL mode, or "Emergency DownLoad" mode, is a low-level mode for flashing devices. It is entered by the command:
Code:
fastboot oem edl
EDL mode is used to read/write to the eMMC more directly. It is used by this tool, as well as flashing with MiFlash.
Other important notes:
You will need good QDLoader drivers. These drivers gave me the best results.
You can exit EDL mode by holding Power button for ~10 seconds. Hold with VolDn to reboot into fastboot again, as one might expect.
Make sure you use a good USB-C cable.
Sometimes the flashing process can freeze. It will always report success when done. If it freezes, you need to reboot EDL mode. Try a different USB port or cable if you keep experiencing freezes.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
can i use this persist.zip inorder to solve the wifi issue in stock rom as well as some of custom rom too?
parasnarkhede said:
can i use this persist.zip inorder to solve the wifi issue in stock rom as well as some of custom rom too?
Click to expand...
Click to collapse
Yup. Just flash a stock persist.img in EDL mode. But backup your original in case, it could erase or change your BT MAC too.
@CosmicDan thank you so much for your work on this. Quite impressive if you ask me.
Tell me just something, every time you talk about "...do this or that in EDL mode..." you mean that we have to use your backup/restore tool, right?
I'm sorry for the noob question but, despite I'm quite familiar with Android, this is my first time using a device that has "slots" and that needs to boot to TWRP in order to flash it... there's some differences from all devices I had in the past and that's making doubt some stuff.
So, anyway, I'm currently using official BETA leaked by Xiaomi (Oreo 8.1 - OPM1.171019.019.8.5.11) so do I really need to reflash stock as you suggest? I mean...it's stock, beta but stock and I've never flashed any other custom ROM (since I've read that by doing it I could have issues with WiFi after returning to stock). So, what do you think? Is it really necessary to reflash stock? My partitions are all the original ones...the only thing different is system, right?
Thank you for your time and work.
Typhus_ said:
@CosmicDan thank you so much for your work on this. Quite impressive if you ask me.
Tell me just something, every time you talk about "...do this or that in EDL mode..." you mean that we have to use your backup/restore tool, right?
I'm sorry for the noob question but, despite I'm quite familiar with Android, this is my first time using a device that has "slots" and that needs to boot to TWRP in order to flash it... there's some differences from all devices I had in the past and that's making doubt some stuff.
So, anyway, I'm currently using official BETA leaked by Xiaomi (Oreo 8.1 - OPM1.171019.019.8.5.11) so do I really need to reflash stock as you suggest? I mean...it's stock, beta but stock and I've never flashed any other custom ROM (since I've read that by doing it I could have issues with WiFi after returning to stock). So, what do you think? Is it really necessary to reflash stock? My partitions are all the original ones...the only thing different is system, right?
Thank you for your time and work.
Click to expand...
Click to collapse
EDL mode is like fastboot mode, but even lower-level.
You enter into it with:
Code:
fastboot oem edl
It is needed by my backup tool yes, but it's also used to flash in MiFlash.
Will update the guide and FAQ with this info.
How to flash the persist file attached in the op in mi flash ?
You mean replace it with the one in the stock rom fastboot files and flash the whole rom again via mi flash ?
Ahmed Al-Sayed said:
How to flash the persist file attached in the op in mi flash ?
You mean replace it with the one in the stock rom fastboot files and flash the whole rom again via mi flash ?
Click to expand...
Click to collapse
Just browse to the folder with MiFlash....
CosmicDan said:
Just browse to the folder with MiFlash....
Click to expand...
Click to collapse
Oh, you mean choose only the persist.img file then mi flash will flash it automatically to the right partition ?
Ahmed Al-Sayed said:
Oh, you mean choose only the persist.img file then mi flash will flash it automatically to the right partition ?
Click to expand...
Click to collapse
No, you don't choose the persist.img. You choose the folder. You can't even choose a file in MiFlash, it's a folder browse.
It's the exact same method of flashing anything in MiFlash
CosmicDan said:
No, you don't choose the persist.img. You choose the folder. You can't even choose a file in MiFlash, it's a folder browse.
It's the exact same method of flashing anything in MiFlash
Click to expand...
Click to collapse
Which folder ?
The folder that i extracted the persist.img (attached in the op) in ? Or the srock rom folder after i replace the persist.img (attached in the op) with the one in the rom's folder and execute flash ?
Ahmed Al-Sayed said:
Which folder ?
The folder that i extracted the persist.img (attached in the op) in ? Or the srock rom folder after i replace the persist.img (attached in the op) with the one in the rom's folder and execute flash ?
Click to expand...
Click to collapse
DONT REPLACE PERSIST IN STOCK FIRNWARE. That does LITERALLY nothing, the persist is already from stock ROM!
Just extract the persist-only ZIP, and select it in MiFlash! Don't insert extra steps that I never said!
CosmicDan said:
DONT REPLACE PERSIST IN STOCK FIRNWARE. That does LITERALLY nothing, the persist is already from stock ROM!
Just extract the persist-only ZIP, and select it in MiFlash! Don't insert extra steps that I never said!
Click to expand...
Click to collapse
Thanks !
Dear sir,
I have few questions
1. Do we need any vendor image to flash with it?
2. How to revert back to stock rom (And erase vendor partition) from treble custom rom?
3. Can we revert back to stock partition map through mi flash tool in flastboot mode or edl mode?
Hopefully someone will make video soon, so that it becomes somewhat more easy to understand.
sudipta08sarkar said:
Dear sir,
I have few questions
1. Do we need any vendor image to flash with it?
2. How to revert back to stock rom (And erase vendor partition) from treble custom rom?
3. Can we revert back to stock partition map through mi flash tool in flastboot mode or edl mode?
Click to expand...
Click to collapse
1. I don't understand the question. The vendor image is part of the Treble ROM. You can get vendor from the RR Experimental thread for example.
2. By following Section 1.1.; Step 2 alone
3. By following Section 1.1.; Step 2 alone
CosmicDan said:
2. Flash latest firmware (V.9.5.10.0.ODHMIFA at time of writing) in EDL mode with MiFlash. This will wipe your device (including Internal Storage) and restore stock partition map. This could take a while.
Click to expand...
Click to collapse
Ritik99 said:
Hopefully someone will make video soon, so that it becomes somewhat more easy to understand.
Click to expand...
Click to collapse
Or you could tell us what part you're having trouble with so I can make it more easy to understand?
I don't understand how a video would make it easier. You need to be able to understand the process - not just copy what some guy is telling you to do.
CosmicDan said:
1. I don't understand the question. The vendor image is part of the Treble ROM. You can get vendor from the RR Experimental thread for example.
2. By following Section 1.1.; Step 2 alone
3. By following Section 1.1.; Step 2 alone
Click to expand...
Click to collapse
Ok I understand, but my query is, everytime I will flashing a new treble rom, will it flash vendor partition itself?
Congratulations, can't wait to test it on my a1.
One question, how about google play certified device status? Is still verified or not?
If i choose to shrink data partition, how much left for data? My a1 have 64 gb storage.
CosmicDan said:
Or you could tell us what part you're having trouble with so I can make it more easy to understand?
I don't understand how a video would make it easier. You need to be able to understand the process - not just copy what some guy is telling you to do.
Click to expand...
Click to collapse
Yup.. that what make people say "i do it the same as instruction and bricked my devices." It is because u just copy what other ppl do and dont know what exactly u do lol... Fir me, what in text is more worth.. because it explain everithing. And the video just a guidline of what u read.
sudipta08sarkar said:
Ok I understand, but my query is, everytime I will flashing a new treble rom, will it flash vendor partition itself?
Click to expand...
Click to collapse
Yes. Well, depends.
RR Treble has Vendor included, because it needs it. GSI's are just a system image that use your existing vendor.
squallbayu said:
Congratulations, can't wait to test it on my a1.
One question, how about google play certified device status? Is still verified or not?
If i choose to shrink data partition, how much left for data? My a1 have 64 gb storage.
Click to expand...
Click to collapse
If you.can tell me exactly what "Play Certified" actually is, then I might be able to answer that question.
The TWRP with Treble Manager tells you the size change.

Fail to permanent install and access TWRP due to encryption

Recently I just downgraded my Mi Mix 2s to MIUI V9.6.4.0.ODGMIFD via Miflash and planning to stay on this (global) rom. However, after flashing the latest twrp from the official link (v3.1.1-1) it did not ask for the lockscreen password upon entering the interface and my files just showed up with random filenames.
After some reading, I suppose my device is encrypted and twrp did not let me to decrypt it (without asking for lockscreen password). The random filenames still happens even I remove the lockscreen password before flashing twrp meaning the device is still encrypted. Before I could do anything else (flashing zip files, making backups, etc) I must format data to remove the encryption, but twrp will disappear after I booted into system and did the initial phone configuration. Tried different versions (from 3.2.3-0 to 3.3.1-1) but to no avail. The only way I can retain twrp after booting into system is to flash Magisk zip right after formatting data, but if I enter twrp again the filenames are still in random characters as before and I couldn't do anything in it.
So my question is how can I properly install twrp into my device without having the encryption issues? Could it be the rom that caused the problem or did I missed out any steps that fails to disable the encryption? Thanks for your attention.
WannaFly3721 said:
Recently I just downgraded my Mi Mix 2s to MIUI V9.6.4.0.ODGMIFD via Miflash and planning to stay on this (global) rom. However, after flashing the latest twrp from the official link (v3.1.1-1) it did not ask for the lockscreen password upon entering the interface and my files just showed up with random filenames.
After some reading, I suppose my device is encrypted and twrp did not let me to decrypt it (without asking for lockscreen password). The random filenames still happens even I remove the lockscreen password before flashing twrp meaning the device is still encrypted. Before I could do anything else (flashing zip files, making backups, etc) I must format data to remove the encryption, but twrp will disappear after I booted into system and did the initial phone configuration. Tried different versions (from 3.2.3-0 to 3.3.1-1) but to no avail. The only way I can retain twrp after booting into system is to flash Magisk zip right after formatting data, but if I enter twrp again the filenames are still in random characters as before and I couldn't do anything in it.
So my question is how can I properly install twrp into my device without having the encryption issues? Could it be the rom that caused the problem or did I missed out any steps that fails to disable the encryption? Thanks for your attention.
Click to expand...
Click to collapse
Guess I've found a workaround for this by installing the OrangeFox recovery project (ofrp). For those who stuck at the same issue as mine this is what I did:
1. Flash twrp img through adb fastboot.
2. Format data to remove encryption.
3. Paste ofrp zip file into the device and flash it via twrp, which boots the phone into ofrp interface.
4. Paste the recovery zip file into the device and flash it via ofrp. Under setting - MIUI OTA it should show 'enabled' (for android 9 and above might need to uncheck disable dm-verity first according to ofrp page, but my rom is at android 8 so I left it checked as default before flashing).
5. Reboot to system and complete the initial configuration.
6. Reboot to recovery again and ofrp should remain installed. From there I was then able to perform a backup.
Btw, under phone settings it says my device is still encrypted although I can access to ofrp without having the encryption issue as in twrp (random filenames, cannot transfer files or create backups, etc). Anyhow I now have a working custom recovery on the stock rom, cheers.

[TWRP] TWRP 3.4-0-0 For Blu G90 G0310WW [MT6765][Android 10]

First released twrp for BLU G90 phone.
Whats working:
Adb
Mtp
USb-OTG
MicroSD
Flash Image
Mount System , Vendor, product (contents of SUPER).... mount allows reading the partitions, but was not able to write to them
Back-Up/Restore to/from usb (or micro sdcard).... Due to size of super.img needed to format card ext4
Logcat
Screenshot
Known bug:
**Solved with new tree file**--data decryption is not working, so not able to read or backup internal storage.--
Built with Minimum Manifest _branch 10.0 :
https://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni
Kernel source :
https://github.com/mrmazakblu/Blu_G90_G0310WW_stock_kernal
Device Tree :
New
GitHub - mrmazakblu/device_PBRP_BLU_G90_G0310WW at TWRP
Contribute to mrmazakblu/device_PBRP_BLU_G90_G0310WW development by creating an account on GitHub.
github.com
Download :
Releases · mrmazakblu/device_PBRP_BLU_G90_G0310WW
Contribute to mrmazakblu/device_PBRP_BLU_G90_G0310WW development by creating an account on GitHub.
github.com
Old
https://github.com/mrmazakblu/device_TWRP_BLU_G90_G0310WW
Download : https://github.com/mrmazakblu/device_TWRP_BLU_G90_G0310WW/releases
ADB Sideload is also broken.
Shananiganeer said:
ADB Sideload is also broken.
Click to expand...
Click to collapse
Most likely due to no able to read/ write to /data there is no place to temp store the zip.
Working on alternative options at the moment, as I am having trouble getting build correct to make decrypt.
Alternative is a modified /vendor.img, so device is not encrypted. But this of course is less secure.
I reformatted /data so it was unencrypted, but still couldn't use adb sideload. I was able to use adb push to put files onto the phone, but that didn't end up mattering as without rw to /system I can't install gapps XD. I'll have some time this weekend to take a look at things and try and help debug the decryption.
Appearently, this build is only missing data decryption.
Spoke with TWRP maintainer, they said this is working as intended. Super.img partitions are not currently meant to be mounted as r/w.
After I asked about flashing GApps, I was informed that there might be changes to TWRP source to allow mounting as r/w sometime sooner or later.
mrmazak said:
Appearently, this build is only missing data decryption.
Spoke with TWRP maintainer, they said this is working as intended. Super.img partitions are not currently meant to be mounted as r/w.
After I asked about flashing GApps, I was informed that there might be changes to TWRP source to allow mounting as r/w sometime sooner or later.
Click to expand...
Click to collapse
so it may seem we are waiting on how to affectively be able to modify the dynamic partitions before we can see a fully successful root. I am fairly new to these things so might be looking at it wrong.
Ivisibl3 said:
so it may seem we are waiting on how to affectively be able to modify the dynamic partitions before we can see a fully successful root. I am fairly new to these things so might be looking at it wrong.
Click to expand...
Click to collapse
To modify it "live" yes maybe.
You can modify the extracted system, as I did , using linux mount, and flash the system back modified, just like a gsi rom.
But for root, can't say.
On the latest build, was able to mount /system r/w. And successfully change the contents of it.
The patches in twrp source is not finished yet, so normal zip installs are not coded. But using adb shell (or TWRP terminal ) seem to be working.
This New build to be uploaded on github device source, as release "test build 9"
I have the G90 Pro and would love to be able to edit the build.prop file... the phone has a ridiculously low number of volume steps for media, 7.
Is there any way to boot into TWRP temporarily and edit the file, just to see if that will increase the steps? (by adding ro.config.media_vol_steps=30 for example)
johnsag49 said:
I have the G90 Pro and would love to be able to edit the build.prop file... the phone has a ridiculously low number of volume steps for media, 7.
Is there any way to boot into TWRP temporarily and edit the file, just to see if that will increase the steps? (by adding ro.config.media_vol_steps=30 for example)
Click to expand...
Click to collapse
Well, the first thing I'm concerned with here is , I'm not sure if THIS TWRP will work on the g90 pro.
But it might be possible. I was able to mount system as r/w on my g90 in TWRP.
You would need to fastboot flash --disable-verity vbmeta and vbmeta_system to prevent red state bootloader lockout.
Ok I've found one potential bug and have a question you may be able to answer. With your build of TWRP I cannot access fastbootd. Running adb/fastboot reboot fastboot just puts me back into recovery. To change images I've been doing the following:
1. Enter bootloader and flash stock recovery you provided in your other G90 thread
2. Enter fastbootd and flash the image
3. Re-enter bootloader and flash twrp
The question I have is, how can the super partition be increased? I tried to flash the LOSQ build with gapps, but the image is > half the size of the super partition. I want to take 1GB away from the userdata partition and add it to the super partition instead. Do I mount the stock super.img in Linux and modify it to be 5GB, adjust the partitions on the eMMC so the new img will fit, flash the new super.img from bootloader, and then go into fastbootd and flash LOSQ? Where does modifying BoardConfig.mk with the new size fit in? If you don't know or don't wanna bother answering that's cool, I've been doing some digging trying to get to the bottom and I'm just not understanding how to adjust the new dynamic partition scheme.
Shananiganeer said:
Ok I've found one potential bug and have a question you may be able to answer. With your build of TWRP I cannot access fastbootd. Running adb/fastboot reboot fastboot just puts me back into recovery. To change images I've been doing the following:
1. Enter bootloader and flash stock recovery you provided in your other G90 thread
2. Enter fastbootd and flash the image
3. Re-enter bootloader and flash twrp
The question I have is, how can the super partition be increased? I tried to flash the LOSQ build with gapps, but the image is > half the size of the super partition. I want to take 1GB away from the userdata partition and add it to the super partition instead. Do I mount the stock super.img in Linux and modify it to be 5GB, adjust the partitions on the eMMC so the new img will fit, flash the new super.img from bootloader, and then go into fastbootd and flash LOSQ? Where does modifying BoardConfig.mk with the new size fit in? If you don't know or don't wanna bother answering that's cool, I've been doing some digging trying to get to the bottom and I'm just not understanding how to adjust the new dynamic partition scheme.
Click to expand...
Click to collapse
The stock /product partition is not needed in non stock roms. Google gsi flashing guide tells show to delete logical partition product.
Code:
fastboot delete-logical-partition product
This is probably what is needed.
Don't know about your plan to increase stock super.img. no idea about why you mention boardconfig.mk
This TWRP is before the patch for TWRP fastbootd, so it is not included. I have resynced source, and will see if new build works, or not. If it does will post new release.
I mentioned BoardConfig.mk because the size of the super partition is listed there, but you were totally right about the product partition and I was able to flash LOSQ+gapps after deleting it. Thanks for the assist, and your work on porting TWRP to this awesome device! Will continue to keep an eye on your work as TWRP finalizes their support for Android 10.
Will this work for the G90 Pro? My guess is not but figured I'd ask
KryptekKnight said:
Will this work for the G90 Pro? My guess is not but figured I'd ask
Click to expand...
Click to collapse
I assume not. But if you send device stock recovery, I can try to bring it up. But cannot test it, I don't have the device.
mrmazak said:
I assume not. But if you send device stock recovery, I can try to bring it up. But cannot test it, I don't have the device.
Click to expand...
Click to collapse
Would you be able to compile a Gcam pretty for this phone? I would be willing to supply you with whatever is within my means to provide
KryptekKnight said:
Would you be able to compile a Gcam pretty for this phone? I would be willing to supply you with whatever is within my means to provide
Click to expand...
Click to collapse
I have no idea about gcam
johnsag49 said:
I have the G90 Pro and would love to be able to edit the build.prop file... the phone has a ridiculously low number of volume steps for media, 7.
Is there any way to boot into TWRP temporarily and edit the file, just to see if that will increase the steps? (by adding ro.config.media_vol_steps=30 for example)
Click to expand...
Click to collapse
Sorry OP.....
I need to get 01 post of your topic to report on custom recoveries on the G90 Pro.
For new users, you should know about the Android 10 permission structure.
In TWRP or PBRP, through the File Manager, it is not possible to copy files to the superpartition. But you can copy files from the superpartition to the internal SD card.
Therefore, to modify files from the super partition, it will be necessary to extract the super partition and extract system-product-vendor to then carry out the modifications and repackage.
Using Havocv3.11 the volume issue dissapears...........
Well all, thanks to @lopestom , we may soon have a new device tree to build recovery from , and data decryption is working on first test img. New recovery would be pbrp instead of twrp.

Magski replacing patched recovery (a70)

finally.... I got Odin to behave - (sadly) no idea what I did it just started working!
What I've ended up with is a fully working magski capable of installing modules and a debloated stock rom - gosh what a horrible user experience Samsung make for there users!
I'd rather not have to rely on the chopped down official recovery though, feeling much more secure with the extra tools available with twrp.
if I dd twrp I'll loose magski, so my question is, can magski patch a twrp img file and will dd'ing this to the recovery partition work, ie will I have twrp while retaining magski
Is there a "better" way to do this (twrp + magski) ?
TIA
Typically Magisk gets installed via TWRP and not the other way around.
AFAIK Magisk creates a new magisk.img partition in phone’s root directory, it also places necessary files in /cache and /data partition, but it does NOT patch /recovery partition. It's TWRP what completely replaces / removes phone's stock /recovery. But I may err as always ...
jwoegerbauer said:
Typically Magisk gets installed via TWRP and not the other way around.
AFAIK Magisk creates a new magisk.img partition in phone’s root directory, it also places necessary files in /cache and /data partition, but it does NOT patch /recovery partition. It's TWRP what completely replaces / removes phone's stock /recovery. But I may err as always ...
Click to expand...
Click to collapse
Samsung user are somewhat force to flash Magisk on recovery partition hence they have to choose between having rooted via Magisk or installing TWRP
But can magski patch a twrp image, for both ?
codifies said:
But can magski patch a twrp image, for both ?
Click to expand...
Click to collapse
After further research it turns out magski's patching is rather sophisticated. Throw an odin tar or raw image at it and it just gets and does the job right.
If like me you didn't want to leave the recovery with a dangerously crippled stock "recovery" it is possible to patch a raw img of twrp, which you can then dd (but please don't guess and DO go by the by-name path !)
I honestly don't know if patching twrp and using it with odin right from the get go is possible I had a nightmare getting windows/drivers/odin talking so I was relieved just getting the patched stock firmware to flash....
Its also a relief to be finally rooted, debloated, degoogled with a proper recovery, of course if samsungs UX wasn't so horrible I might not have bothered (providing all bloat could actually be disabled)... still at least it feels like I own what I bought now....
@ineedroot69 never managed to get twrp to flash on its own with odin, with unlocked bootloader saying it would only install official software... A70 seems to have a few extra layers of security...

Samsung devices (2) stuck in system boot splash

HI,
I have 2 Samsung devices with TWRP installed, and I can access the TWRP recovery menu. When I install the flash ROM and try to boot, devices are stuck in system boot forever.
Device 1: SM-T800, with LineageOS 14.1 previously. I opened an email and the device got hacked, so I did a factory reset (which failed), then re-flashed the latest TWRP and recovered rescue mode. Now when I flash the Lineage ROM (from TWRP) the device does not boot to system but keeps showing the splash screen. I think the hack might have placed immutable files under system. could I format this partition to zero it out via ADB? What other choices are there?
<EDITED>
Device 2: Galaxy S3 GT-I9300 - I solved this so i removed this section.
Thank you for any help.
Beeblebrox-BSD said:
HI,
I have 2 Samsung devices with TWRP installed, and I can access the TWRP recovery menu. When I install the flash ROM and try to boot, devices are stuck in system boot forever.
Device 1: SM-T800, with LineageOS 14.1 previously. I opened an email and the device got hacked, so I did a factory reset (which failed), then re-flashed the latest TWRP and recovered rescue mode. Now when I flash the Lineage ROM (from TWRP) the device does not boot to system but keeps showing the splash screen. I think the hack might have placed immutable files under system. could I format this partition to zero it out via ADB? What other choices are there?
Device 2: Galaxy S3 GT-I9300, with working TWRP. This device is giving a "Failed to mount /efs (Invalid argument)" error. The previous setup was shared storage with sdcard and encryption on both internal and sdcard. The sdcard got corrupted, hence the error. This post suggests running
Code:
dd if=/dev/zero of=/dev/block/bootdevice/by-name/modemst1
but the device does not have identifiable boot device under /dev/block. I think this might work if I can identify the boot partition name?
Thank you for any help.
Click to expand...
Click to collapse
Flash a custom ROM for i9300 via TWRP. Download a custom ROM for i9300 and the appropriate Gapps to go with the ROM, store them on external sdcard. When you are in TWRP, before you flash your ROM, select the "Wipe" option, then select "advanced wipes", on the next menu, choose the system partition, data partition, cache partition and dalvik cache partition then swipe the slider to wipe. Then go back to home screen in TWRP and choose the "Install" option, then choose your ROM file and your Gapps file then swipe to flash. When the flash is finished, select the "Reboot system" option and see if it boots into system.
If that doesn't work, we will take some steps further back and try starting from the beginning.
Keep in mind that some of the custom ROMs for i9300 may have a different partition structure and partition sizes than the stock firmware for i9300 has and may require resizing certain partitions such as the system partition by flashing a custom PIT file like the Galaxy S2 had to do before it flashed certain custom ROMs.
Hi, thanks for the input.
* I had already solved the GT-I9300 issue before your post (I should have added to thread rather than edit the original post). I solved issue with that device by including system partition in the wipe.
* For the SM-T800, I used a LineageOS-14.1 that I had stored somewhere. That also did not work, until I only flashed Lineage and did not include any GApps. If I really need it, I can always flash later. I assume the latest GApps 7.1 build conflicts with older ROMs.
An unexpected problem was the lack of current ROMs for the 2 devices. SM-T800 has nothing other than last build Lineage-14-1-20190205. The I9300 has several unofficial ROMs floating around for newer Android versions, but they are all debug/dev builds with enabled options that drain the battery very quickly.
If anyone comes across a decent ROM for either of these devices please LMK. Thanks.

Categories

Resources