[GUIDE] Root and keeping root options

Search This thread
I can't help you with that. If you can't fix it, you'll need to use one of the other methods, including looking for a thread that's posted the bit image you need.
Thanks Bill, just edited my post as you responded here. I did find the boot image and am back in business. Thanks for your prompt response and all the documentation you have done here!
 
  • Like
Reactions: BillGoss

rmroot

Senior Member
Sep 20, 2018
65
3
Bill I was using crdrod 7.14 (oneplus 8t) and I updated the rom to 7.18 using the internal updater (in system options) but at first boot I get a crdroid logo bootloop, I don't know why but it happens everytime I flash/install/update crdroid (this is the only rom I ever used in 8t). I had magisk installed. Do you know what could be the problem? I also disabled pin before upgrading. I don't know if it's a rom problem or I miss something, I flashed roms for years but since I got oneplus8t, I have custom rom installations/upgrading problems most of the times.

Edit: I switched slot and I rebooted to old 7.14 system but I'd like to know where is the problem
 
Last edited:

moordi

Member
Apr 10, 2008
32
15
Seattle
Apologies for being a bit OT, but I've encountered a very odd situation upon upgrading from 11.0.13.13 to 11_C.33 that I thought might be of interest here.

At the start, I was already unlocked and rooted, and enjoying the ever present warning message at every reboot. However, and this is the strange part, after the upgrade to 12.1, the unlocked bootloader warning message is gone. My phone is still unlocked, rooted and passes all safetynet checks. In fact, after sorting out the inevitable issues caused by switching from OOS11 to OOS12, everything works as expected.

Has anyone ever heard of this happening before? As far as the warning message is concerned, my phone thinks it's locked.

To get back more on topic, I didn't do anything special with Magisk before the upgrade from 11 to 12. I had downloaded a copy of the full upgrade package and forced a local upgrade, but that was the only unusual step I took. Obviously, I lost root when it rebooted, but it's easy enough to re-root with Magisk.

FYI, there was no "reboot" option at the end of the local upgrade. Instead, it merely went through an "extraction" and then offered me the option to "install." However, upon clicking the "install" button, the phone immediately rebooted. So, I assume it had actually already installed. I probably should have ignored the "install" step to avoid rebooting the phone in order to go back to Magisk and follow the instructions in the OP.
 

BillGoss

Senior Member
Sep 2, 2010
5,455
4,814
Sydney
OnePlus 8T
Bill I was using crdrod 7.14 (oneplus 8t) and I updated the rom to 7.18 using the internal updater (in system options) but at first boot I get a crdroid logo bootloop, I don't know why but it happens everytime I flash/install/update crdroid (this is the only rom I ever used in 8t). I had magisk installed. Do you know what could be the problem? I also disabled pin before upgrading. I don't know if it's a rom problem or I miss something, I flashed roms for years but since I got oneplus8t, I have custom rom installations/upgrading problems most of the times.

Edit: I switched slot and I rebooted to old 7.14 system but I'd like to know where is the problem
Unfortunately I can't help you. I've not used custom ROMs on my 8T other than to do some early testing of TWRP 11 last year.
I would hope that you could get the necessary help with this in the crdroid thread.
 
  • Like
Reactions: rmroot

BillGoss

Senior Member
Sep 2, 2010
5,455
4,814
Sydney
OnePlus 8T
Apologies for being a bit OT, but I've encountered a very odd situation upon upgrading from 11.0.13.13 to 11_C.33 that I thought might be of interest here.

At the start, I was already unlocked and rooted, and enjoying the ever present warning message at every reboot. However, and this is the strange part, after the upgrade to 12.1, the unlocked bootloader warning message is gone. My phone is still unlocked, rooted and passes all safetynet checks. In fact, after sorting out the inevitable issues caused by switching from OOS11 to OOS12, everything works as expected.

Has anyone ever heard of this happening before? As far as the warning message is concerned, my phone thinks it's locked.

To get back more on topic, I didn't do anything special with Magisk before the upgrade from 11 to 12. I had downloaded a copy of the full upgrade package and forced a local upgrade, but that was the only unusual step I took. Obviously, I lost root when it rebooted, but it's easy enough to re-root with Magisk.

FYI, there was no "reboot" option at the end of the local upgrade. Instead, it merely went through an "extraction" and then offered me the option to "install." However, upon clicking the "install" button, the phone immediately rebooted. So, I assume it had actually already installed. I probably should have ignored the "install" step to avoid rebooting the phone in order to go back to Magisk and follow the instructions in the OP.
The "missing" unlocked warning is normal for OOS 12, so there's nothing to worry about there. You can still check the unlock status by booting into bootloader mode.
If you restore your phone back to OOS 11 the unlocked warning will be back.
 

moordi

Member
Apr 10, 2008
32
15
Seattle
I just wanted to confirm that the "new" OOS12 process for updating, following B.2.1 logic with the built-in system update app, has changed slightly. There is no option to reboot after installation. Instead, the option is to "install," which appears after extraction and verification. I suppose the terminology makes sense in a A/B world, since OOS12 is extracting the update to the inactive slot and won't be "installed" until one reboots to that slot.

Nevertheless, it may be confusing/frustrating to users trying to follow the instructions, since there is no longer any step where you obviously DO NOT REBOOT. Instead, the instruction to those using this method should be DO NOT INSTALL. Everything else works exactly as described under B.2.1.

As an aside, I was notified of an available update (for C.35) from the Oxygen Updater app and went ahead and downloaded the full, not incremental, update zip. Then, soon after that, OOS12 notified me of the same update. When I checked the "About device" status it offered an incremental OTA update, which I thought was odd, but decided to check it out anyway. It went through the download and extraction steps, but failed somewhere along the way and dropped the phone into recovery mode. That wasn't too surprising, since my phone is rooted, but it was surprising that OOS12 thought it could get away with an incremental update anyway. In the past, it would detect root and force a full update. Interestingly, after reverting back to the previous install and re-rooting with a copy of the Magisk patched boot image, the OTA update offer vanished. It said I was up to date with C.33. I guess Oneplus thought better about updating my phone again. In any case, I already had the full update zip and proceeded with the local install, as described above.

Hopefully, my experiences will save someone else from losing root and having to re-root the long way.
 
  • Like
Reactions: rage302

BillGoss

Senior Member
Sep 2, 2010
5,455
4,814
Sydney
OnePlus 8T
@BillGoss
Now I have much more straightforward OTA method to keep root as well as keep the kernel up to date in case Magisk is unable to revert on next update.
Revert boot using Magisk uninstall option. You should keep the stock boot just in case you cannot revert. You just have to "patch" the current stock boot once and revert again.
Run OTA and observe.
After OTA has been finished, DO NOT REBOOT NOR USING MAGISK OTA INSTALLATION!
Failure to do in result in bootloop or error!
Instead, do the following steps:
1. Check for inactive slot if you don't know it
Code:
adb shell getprop ro.boot.slot_suffix
2. Grab updated boot.img from "inactive slot"
Code:
adb shell su -c dd if=/dev/block/by-name/boot<inactive slot suffix> of=/sdcard/oos-ota-boot.img
If #1 returned _a, <inactive slot suffix> is "_b"
If #1 returned _b, <inactive slot suffix> is "_a"
3. The boot.img is in root of /sdcard/. Before patching, make sure ANY "magisk_patched.img" is deleted to avoid confusion.
4. Patch ota-boot.img with Magisk, and copy the magisk_patched.img back to host PC
5. Reboot the phone to fastbootd with the following
Code:
adb reboot fastboot
6. Flash magisk_patched.img
Code:
fastboot flash boot
Press space once, drag-and-drop the magisk_patched.img onto the command window, and press enter.
(optional) wipe cache in recovery mode
Reboot.
This method also works with other OnePlus phones I have (N10, N20, N200)
I've been waiting for an update so that I could try your method.
Unfortunately, it doesn't work for me. And the reason is that when I reboot into fastbootd (step 6), I'm still on the same slot as I started. I should have ended up on the updated slot.
 

BillGoss

Senior Member
Sep 2, 2010
5,455
4,814
Sydney
OnePlus 8T
I just wanted to confirm that the "new" OOS12 process for updating, following B.2.1 logic with the built-in system update app, has changed slightly. There is no option to reboot after installation. Instead, the option is to "install," which appears after extraction and verification. I suppose the terminology makes sense in a A/B world, since OOS12 is extracting the update to the inactive slot and won't be "installed" until one reboots to that slot.

Nevertheless, it may be confusing/frustrating to users trying to follow the instructions, since there is no longer any step where you obviously DO NOT REBOOT. Instead, the instruction to those using this method should be DO NOT INSTALL. Everything else works exactly as described under B.2.1.

As an aside, I was notified of an available update (for C.35) from the Oxygen Updater app and went ahead and downloaded the full, not incremental, update zip. Then, soon after that, OOS12 notified me of the same update. When I checked the "About device" status it offered an incremental OTA update, which I thought was odd, but decided to check it out anyway. It went through the download and extraction steps, but failed somewhere along the way and dropped the phone into recovery mode. That wasn't too surprising, since my phone is rooted, but it was surprising that OOS12 thought it could get away with an incremental update anyway. In the past, it would detect root and force a full update. Interestingly, after reverting back to the previous install and re-rooting with a copy of the Magisk patched boot image, the OTA update offer vanished. It said I was up to date with C.33. I guess Oneplus thought better about updating my phone again. In any case, I already had the full update zip and proceeded with the local install, as described above.

Hopefully, my experiences will save someone else from losing root and having to re-root the long way.
You might want to go back and read B.2.1 carefully. Specifically, you do NOT use the system update on OOS 12, but the My Application2 app.
And you do install the update and you don't reboot once the installation has finished.
Also B.2.1 is a subsection of B.2, so I suggest you read it again, starting from B.2.
 

moordi

Member
Apr 10, 2008
32
15
Seattle
You might want to go back and read B.2.1 carefully. Specifically, you do NOT use the system update on OOS 12, but the My Application2 app.
And you do install the update and you don't reboot once the installation has finished.
Also B.2.1 is a subsection of B.2, so I suggest you read it again, starting from B.2.
I think my comment may have mislead you. I followed the logic/steps you supplied in B.2.1, but I used Oneplus' built-in method for updating via a local install. The procedure works perfectly well and is much simpler than the rather involved approach you outlined in B.1. I'm not suggesting there's anything wrong with the procedure in B.1 and, in fact, it may be the only reliable approach for some setups. I only wanted to note that the built-in Oneplus system update tool worked extremely well with your B.2.1 instructions, with the lone exception that I did not tap "install" before executing the steps for patching the boot image via Magisk.

I don't know anything about the My Application2 app. I'm perfectly aware that you recommend using it with your B.2.1 procedure. However, I personally found it unnecessary. I took the route I did because the Oxygen Updater app sort of pushed me in that direction after I downloaded the C.35 update. I'll admit I did what I did, in part, because I'm lazy. However, I am very good at reading and following instructions. I understood exactly what I was doing and took a small risk. The fact that it worked pleased me enough to share my experience here.

To be perfectly clear, I think you've done an incredible job of summarizing the various paths to safely update under OOS11 and OOS12, and the community of 8T users is in your debt. Nothing I've described should be construed as anything but complimentary and complementary to your good work. I'm certainly not suggesting you need to emend anything.
 

BillGoss

Senior Member
Sep 2, 2010
5,455
4,814
Sydney
OnePlus 8T
I think my comment may have mislead you. I followed the logic/steps you supplied in B.2.1, but I used Oneplus' built-in method for updating via a local install. The procedure works perfectly well and is much simpler than the rather involved approach you outlined in B.1. I'm not suggesting there's anything wrong with the procedure in B.1 and, in fact, it may be the only reliable approach for some setups. I only wanted to note that the built-in Oneplus system update tool worked extremely well with your B.2.1 instructions, with the lone exception that I did not tap "install" before executing the steps for patching the boot image via Magisk.

I don't know anything about the My Application2 app. I'm perfectly aware that you recommend using it with your B.2.1 procedure. However, I personally found it unnecessary. I took the route I did because the Oxygen Updater app sort of pushed me in that direction after I downloaded the C.35 update. I'll admit I did what I did, in part, because I'm lazy. However, I am very good at reading and following instructions. I understood exactly what I was doing and took a small risk. The fact that it worked pleased me enough to share my experience here.

To be perfectly clear, I think you've done an incredible job of summarizing the various paths to safely update under OOS11 and OOS12, and the community of 8T users is in your debt. Nothing I've described should be construed as anything but complimentary and complementary to your good work. I'm certainly not suggesting you need to emend anything.
Wow! If you used the system updater and were able to use the Magisk install to inactive slot, then things have changed!
It used to be that doing it that way would create a mess. If that's no longer the case, then we might be able to collapse B1 and B2.
I'll have to test this out.
Thanks for clarifying what you did.
 

BillGoss

Senior Member
Sep 2, 2010
5,455
4,814
Sydney
OnePlus 8T
@moordi So I went back to C.33 and then updated to C.35 using the system update and then installed Magisk to the inactive slot.
And...
I ended up unable to boot the phone.
So my process in B.2.1 is still the correct process.

It may be that you can get away with using the system update if the update is a full image update. But it won't work on incremental updates.
The last full image update (for KB2005) was C.11 and every update since then has been incremental.
 

moordi

Member
Apr 10, 2008
32
15
Seattle
@moordi So I went back to C.33 and then updated to C.35 using the system update and then installed Magisk to the inactive slot.
And...
I ended up unable to boot the phone.
So my process in B.2.1 is still the correct process.

It may be that you can get away with using the system update if the update is a full image update. But it won't work on incremental updates.
The last full image update (for KB2005) was C.11 and every update since then has been incremental.
Yeah, that makes sense. I used the full image C.35 update from Oxygen Updater. In the past, OOS would detect root and force a full image update. This time around it attempted the incremental, but the "extraction" failed at some point, and the offer to update disappeared. I'm running the KB2003 model, though I don't know why that should make a difference.
 

Ma61187

New member
Sep 28, 2022
4
0
Over the weekend upgraded from 11.0.13.13 to C.33. Downloaded the update from OP Updater. Update was fine. I used the payload dump, magisk patched the boot.img and it booted to it without issue. Then like before, I did a direct install of Magisk while booted into the patched image. After reboot the phone hard bricked and would only boot to the Qualcomm Crash Dump screen. I was using a bit of an older version of Magisk (24.0). What did I do wrong here? Was it as simple as I was using to old of a version of Magisk? My googling did pull up too many results of exactly what occurred.

Thanks in advanced.
 

BillGoss

Senior Member
Sep 2, 2010
5,455
4,814
Sydney
OnePlus 8T
Over the weekend upgraded from 11.0.13.13 to C.33. Downloaded the update from OP Updater. Update was fine. I used the payload dump, magisk patched the boot.img and it booted to it without issue. Then like before, I did a direct install of Magisk while booted into the patched image. After reboot the phone hard bricked and would only boot to the Qualcomm Crash Dump screen. I was using a bit of an older version of Magisk (24.0). What did I do wrong here? Was it as simple as I was using to old of a version of Magisk? My googling did pull up too many results of exactly what occurred.

Thanks in advanced.
I use Magisk 25.2 (latest stable) and have never had an issue with it. So, it may well be an issue with using the old version of Magisk.

You should be able to get back to bootloader mode and then flash the stock boot image to get the phone working again.
Power+Vol up should get you out of Crash Dump then immediately use Power + Vol up + Vol down to get into bootloader mode.
 

mingkee

Senior Member
Over the weekend upgraded from 11.0.13.13 to C.33. Downloaded the update from OP Updater. Update was fine. I used the payload dump, magisk patched the boot.img and it booted to it without issue. Then like before, I did a direct install of Magisk while booted into the patched image. After reboot the phone hard bricked and would only boot to the Qualcomm Crash Dump screen. I was using a bit of an older version of Magisk (24.0). What did I do wrong here? Was it as simple as I was using to old of a version of Magisk? My googling did pull up too many results of exactly what occurred.

Thanks in advanced.
I used alternative method:
Right after update installed, DO NOT reboot nor use Magisk OTA method.
Instead, grab updated boot and patch it with Magisk, and copy (updated) patched boot to host PC
Reboot your phone in fastbootd (do not touch the phone during flashing process)
Flash (updated) patched boot
Reboot
I do this method on N10, N200, 8T (Android R and S) and no problem
 

little_blaine

Member
Mar 18, 2021
8
5
OnePlus 8T
C35 instsalled on top of C33 using B.2.1 without issues. I just wanted to call out that step 2 (copy update file to /sdcard) is not needed when using Oxygen Updater, that's the default download location where the file goes anyway. Thanks Bill!
 
  • Like
Reactions: BillGoss

Krosty'Bat

New member
Feb 7, 2016
4
1
OnePlus 8T
Hello, C35 update on C33 magisk does not restore the original image because it does not find it. So I found a little tuto to put the image back in place. ( https://forum.xda-developers.com/t/...restore-needs-to-be-put.3845559/post-87259063 )

Unfortunately I found this technique after uninstalling magisk completely. So I reinstalled my phone completely.
I use a translator, because I don't speak English, so I have a hesitation about the tuto you give in B2.1. Do we have to download the C35 credential update or the full 2G+ update?
 

little_blaine

Member
Mar 18, 2021
8
5
OnePlus 8T
Hello, C35 update on C33 magisk does not restore the original image because it does not find it. So I found a little tuto to put the image back in place. ( https://forum.xda-developers.com/t/...restore-needs-to-be-put.3845559/post-87259063 )

Unfortunately I found this technique after uninstalling magisk completely. So I reinstalled my phone completely.
I use a translator, because I don't speak English, so I have a hesitation about the tuto you give in B2.1. Do we have to download the C35 credential update or the full 2G+ update?
I installed the c35 incremental update over c33 and didn't have any problems restoring images.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    I'm not very good with command line, but according to your OP, is this what I need to restore the stock boot.img that I've got?

    dd if=path/to/stock-boot.img of=/dev/block/by-name/boot_a

    I can run this in ADB while the phone is turned ON right?
    is my syntax correct?
    Yes, you have to have the phone running normally.
    Looks good. Just check that your current (active) slot is "_a" by using getprop ro.boot.slot_suffix
    And you will need to run the "dd" command as root by either starting adb as root or using /system/bin/su -c dd if=path/to/stock-boot.img of=/dev/block/by-name/boot_a.
    1
    thanks for the help mate!
    I didnt realise I can run root commands inline like that... i usually do something like:
    adb shell
    su
    <then root commands>
    in windows cmd terminal.

    I'll give this a try today... fingers crossed I don't have to wipe the phone again. :rolleyes:


    --UPDATE--
    Everything went smoothly, restoring factory boot by command line seems to be even quicker than Magisk.

    the only confusion I had was orientation...
    using windows CMD terminal, I assumed my directory "path-to-factory-boot-image" was on the computer, but it has to be on the phone storage.

    So if someone wants to restore factory boot.img by command line, remember that your starting orientation point is the ROOT folder of your phone, and "not" the directory location CMD terminal says.

    when you do:
    Code:
    adb shell
    you will be taken into the phone's root storage.

    rookie mistake on my part.:geek:

    Thanks again @BillGoss for your help.
    1
    Where did you find this? Because it's not mentioned in the OOS 13 open beta post.
    In this post.
    1
    Then follow the instructions in section A.1.1 or A.2.

    If you had read the whole OP you should have known this.
    My Phone is Rooted now Msm tool is working Perfectly Thanks
    1
    ...
    I bet it's this module that is not working on Android 13 again, but to test my theory I have to find aa way to deactivate it, how can I do it?
    fastboot boot <Orange Fox for OOS 13 img>
    Then, in Orange Fox delete /data/adb/modules/<SafetyNet directory>

    Source: https://forum.xda-developers.com/t/...ct-oneplus-8t-9r-18-oct-2022.4391139/[/Icode]
  • 29
    Updated 220513: rewritten and includes OOS 12
    Updated 220518: minor additional details
    Updated 220521: added a note on finding the OTA url
    Updated 220626: added section on using MSM Tool to get the stock boot image; change order of options A.1.1 and A.1.2
    Updated 220628: removed my modified USNF module as the official version now includes the fixes
    Updated 220815: updated A.2 to use TWRP on OOS 12
    Updated 220823: added A.2.1 on how to install TWRP so that incremental OTA updates don't fail; updated B.2.1 to cater for installed TWRP
    Update 221123: also use Displax's USNF Mod module for OOS 13; refer to Play Integrity instead of SafetyNet
    Update 221204: Includes OOS 13; use Orange Fox as well as TWRP

    A. First time rooting​

    OP8T Root options-First time rooting.png

    This process is common across all options

    A.1 Flashing Magisk patched boot image​

    There are two ways to sourcing a copy of the stock boot image (other than using TWRP - See A.2).
    1. Using the MSM Tool readback option to pull a copy of the current boot image from the phone
    2. Using Payload Dumper and a full update zip

    A.1.1 Using MSM Tool ReadBack​

    The MSM Tool has a feature (ReadBack) that allows it to pull copies of partitions from a phone when it is connected in EDL mode to a PC.
    This means that you can pull a copy of your currently running stock boot image directly from the (unrooted) phone and you are not dependent on having access to a full rom installation zip.
    A big thanks to @scottlam1 for this information (see https://forum.xda-developers.com/t/oxygenos-a12-breaks-rooting.4456251/post-87067419 and following). You can get a copy of the MSM Tool from @Some_Random_Username's https://forum.xda-developers.com/t/...ol-to-restore-your-device-to-oxygenos.4180837. I used the one for OOS 11.0.7.9 for KB05AA when testing this process.
    1. Find your current slot by connecting your phone to your PC and running adb shell getprop ro.boot.slot_suffix Note: on OOS 12 when you connect the phone to the PC you must enable "Transfer files" on the phone for ADB to see the device.
    2. Start MsmDownloadTool V4.0.exe
    3. Select User type: Others and click Next
    4. Press F8
    5. Select the appropriate boot partition (boot_a or boot_b based on the getprop result). Note: do NOT select both boot_a and boot_b because ReadBack will only produce one boot.img file and the _b extract will overwrite the _a extracted file.
    6. Enter the password: oneplus and then press OK. You should now see a ReadBack button underneath the Target dropdown list.
    7. Reboot the phone into EDL mode using adb reboot edl . When you see it connected to the MSM Tool - it will show an entry with COM3 (for example) - click on the ReadBack button.
      Warning: Do NOT click on the Start button as this will start the installation process and reset your phone.
    8. MSM will show "ReadBack Complete" (in green) when it has copied the boot image and power off the phone. Close the MSM tool.
    9. Disconnect the phone from the PC, turn on your phone, reconnect it to the PC, and copy the boot image (it's in C:\boot.img) to your phone.
    10. The rest of the process is the same as that in section A.1.2 below, but starting from step 6 in @DroidFreak32's guide as you already have the boot image.

    A.1.2 Using Payload Dumper​

    Notes:
    Follow the instructions detailed in @DroidFreak32's https://forum.xda-developers.com/t/...national-kb2000-kb2001-kb2003-kb2005.4178675/ paying attention to:
    1. You can use the latest stable version of Magisk (my recommendation as of June 2022)
    2. Do NOT use the "To flash" option in step 11 because this causes issues when you get the next OTA update. Use the the "To Temporarily boot into a rooted system (RECOMMENDED!!)" option.
    3. Backup both the stock boot and Magisk patched boot images if you are going to use CLI
    I also recommend that on OOS 11 you install @kdrag0n's Universal SafetyNet Fix Magisk module v2.3.1 or later to pass Play Integrity with an unlocked bootloader on OOS 11 (https://github.com/kdrag0n/safetynet-fix/releases) and on OOS 12 and higher use Displax's modded USNF version (https://forum.xda-developers.com/t/magisk-module-universal-safetynet-fix-2-3-1.4217823/post-87198517)

    A.2 Using TWRP or Orange Fox​

    I will use TWRP throughout the document to mean TWRP or Orange Fox unless indicated otherwise.
    I use the TWRP installer for Orange Fox by replacing the recovery.img file in the TWRP installer zip with the Orange Fox recovery image (the file has to be named recovery.img). The advantage of this is that you can then flash the recovery zip in recovery as well as in Magisk (install it as a module). And the installer zip will flash recovery to both slots.
    Notes:
    1. Boot bootloader
    2. fastboot boot <twrp.img>
    3. Backup current boot
    4. Install Magisk-*.apk
    5. Reboot system
    6. Uninstall Magisk stub
    7. Install Magisk-*.apk
    8. Install on OOS 11 @kdrag0n's Universal SafetyNet Fix Magisk module v2.3.1 or later to pass Play Integrity with an unlocked bootloader (https://github.com/kdrag0n/safetynet-fix/releases) and on OOS 12 and higher use Displax's modded USNF version (https://forum.xda-developers.com/t/magisk-module-universal-safetynet-fix-2-3-1.4217823/post-87198517)
      Note: the TWRP backups of physical partitions (like boot and recovery and so on) are actually image dumps. You could rename the files from *.emmc.win to *.img and install them using TWRP or other methods.

    A.2.1 Keep TWRP​

    If you want to keep TWRP installed then the process is very similar to that described for Magisk. The difference is that this time we backup recovery and install TWRP. You can merge the Magisk process with the TWRP process by: Backing up current boot and recovery; Installing both the Magisk-*.apk and the TWRP installer zip.
    Here's the process for just TWRP:
    1. Boot bootloader
    2. fastboot boot <twrp.img>
    3. Backup current recovery
    4. Install TWRP installer zip
    5. Reboot system

    B. Keeping root during an update​

    OP8T Root options-Keeping root.png

    B.1 System Update downloads and installs the update​

    This is using the built-in System Update tool, which you'll find in:
    • OOS 11: Settings>System settings> System Update
    • OOS 12 and higher: Settings>About device>Software update
    The process is complicated because you cannot use Magisk>Magisk Install>"Install to inactive slot" as this will fail on OOS 11 (for incremental updates) and OOS 12 (for all updates, including the initial update from OOS 11 to OOS 12) and yet to be tested on OOS 13. The following process is courtesy of @osm0sis in https://forum.xda-developers.com/t/...ices-platforms.2239421/page-149#post-84764713 and @rage302 in https://forum.xda-developers.com/t/...ing-root-options.4387977/page-4#post-86830285.
    1. Restore the current stock boot image using Magisk>Uninstall Magisk>"Restore images" and DO NOT reboot
    2. Download and Install the update (and DO NOT reboot) using:
      OOS 11: Settings>System Settings>System Update>Download and Install
      OOS 12 and higher: Settings>About device>Software update
    3. Copy the updated boot image as follows:
      • On PC:Find the inactive slot suffix:
        • adb shell getprop ro.boot.slot_suffix Note: on OOS 12 when you connect the phone to the PC you must enable "Transfer files" on the phone for ADB to see the device.
        • If the result is _a then the inactive slot suffix is _b otherwise it is _a
      • Take a copy of the inactive slot boot image: adb shell su -c dd if=/dev/block/by-name/boot<inactive slot suffix> of=/sdcard/oos-ota-boot.img replacing <inactive slot suffix> with the value you previously determined (_a or _b). Note: Magisk may prompt you (on your phone) to grant root access to Shell - grant it.
    4. On phone: Patch the dumped oos-ota-boot.img using Magisk>Magisk Install>"Select and Patch a File"
    5. Copy /sdcard/Download/magisk_patched*.img to your PC
    6. Restore root to the current slot using Magisk>Magisk Install>"Direct Install (Recommended)". This is so you keep root in case the update somehow fails and you're returned to the current system.
    7. Turn on Airplane Mode to prevent Google Play Services detecting that the phone is bootloader unlocked and making your phone uncertified in Google Play.
    8. Reboot the phone from the System Update dialog; verify that you are now running the updated version
    9. On PC: Reboot to bootloader using adb reboot bootloader
    10. Boot (NOT flash) the patched boot image: fastboot boot <magisk-patched image> where <magisk-patched image> is the patched image you transferred to the PC
    11. On phone: Verify that Magisk shows you are rooted
    12. Make rooting permanent using Magisk>Magisk Install>"Direct Install (Recommended)" and reboot again
    13. Turn off Airplane Mode

    B.2 Manual Install​

    This involves manually downloading the update zip and then installing it using one of the following options.
    It is up to you to download the update (from whichever source you use).

    How I get a copy of the update zip
    Note: I'm running the NA version of OOS. If the URL below for the OTA is different for other OOS versions, please let me know via a PM.
    Once the phone tells me that there's an update available I do the following in Termux (https://f-droid.org/en/packages/com.termux/):
    1. su -c "logcat -d" | grep -Eo "https://android.googleapis.com/packages/ota-api/package/[a-z0-9]*.zip"
      This looks for the the Google OTA server file name in logcat and returns the source address. For example, the KB2005 C.11 full update was https://android.googleapis.com/packages/ota-api/package/435fc808f603bbc8a63ce30fd944676a65a61d6f.zip
      Note 1: You should run these commands as soon as you get a notification that you have the update. If you leave it too long then the log file will roll over and you won't be able find the url.
      Note 2: You could also use adb shell to run the logcat -d | grep ... commands, though I've never done that because I prefer to do everything on my phone, where possible.
    2. wget -O /sdcard/oos-ota-update.zip <source address>
      This pulls a copy of the file to /sdcard.
      Note: You could also just paste the URL into a browser to download the file.

    B.2.1 Local Install​

    This is using:
    1. If you have TWRP installed then reboot recovery, restore the stock OOS recovery (you would/should have taken a copy of it when you installed TWRP as mentioned in A.2.1), and reboot system. Without doing this, an incremental OTA will fail when it checks for the stock recovery.
    2. Move the update zip to /sdcard (NOT a subdirectory of /sdcard)
    3. Magisk>Uninstall Magisk>Restore images - this restores the stock boot image whilst keeping Magisk
    4. Install the update using the appropriate local installer for your version of OOS and DO NOT reboot
      Note that the OOS 13 EU/IN local installer will first extract the update (and update the inactive slot partitions) and then prompt you to Install it. It is IMPERATIVE that you DON'T CLICK on Install at this point as it will finish the installation and reboot without prompting leaving you without root.
    5. Restore root to the current slot using Magisk>Magisk Install>"Direct Install (Recommended)". This is so you keep root in case the update somehow fails and you're returned to the current system.
    6. Root the updated boot image using Magisk>Magisk Install>"Install to inactive slot"
    7. On OOS 13 now tap on Install in the local updater process; on OOS 11 and 12 reboot
    8. To re-install TWRP, follow the process in A.2.1

    B.2.2 Using TWRP (placeholder)​

    There may be a way of using TWRP but I've never tried it.

    B.2.3 Using CLI​

    CLI (command line interface) tools, such as Terminal (I use Termux from https://f-droid.org/en/packages/com.termux/) or ADB shell, allows you to manually download delta updates avoiding the need to wait for full updates or for someone to post a copy of the delta update zip.
    If you use Terminal then you can install updates without the need of a PC (my preferred option).
    Using line commands, at one level, can simplify some processes by avoiding the need to switch out to recovery and back again. On the other hand, they complicate things by requiring knowledge of how to use them.
    The commands you need to be familiar with are:
    • dd to read-from/write-to the partitions in /dev/block/by-name
    • grep to scan the output of a logcat
    • getprop to find out which are the active/inactive slots
    • logcat to read the Android logs
    • su to run commands as root
    1. Get a copy of the update zip
      Note: I'm running the NA version of OOS. If the URL below for the OTA is different for other OOS versions, please let me know via a PM.
      Once the phone tells me that there's an update available I do the following in Termux:
      1. su -c "logcat -d" | grep -Eo "https://android.googleapis.com/packages/ota-api/package/[a-z0-9]*.zip"
        This looks for the the Google OTA server file name in logcat and returns the source address. For example, the KB2005 C.11 incremental update was https://android.googleapis.com/packages/ota-api/package/435fc808f603bbc8a63ce30fd944676a65a61d6f.zip
        Note: You should run these commands as soon as you get a notification that you have the update. If you leave it too long then the log file will roll over and you won't be able find the url.
      2. wget -O /sdcard/oos-ota-update.zip <source address>
        This pulls a copy of the file to /sdcard
        Note: You could also just paste the URL into a browser to download the file
    2. Find the active slot suffix: getprop ro.boot.slot_suffix
      If the result is _a then the inactive slot suffix is _b otherwise it is _a
    3. Restore active slot stock boot/recovery (recovery: only if TWRP is installed) using dd if=<copy of stock boot/recovery> of=/dev/block/by-name/<boot/recovery><active slot suffix>
      Note: you could also use Magisk to restore the stock boot using Magisk>Uninstall Magisk>Restore images - this restores the stock boot image whilst keeping Magisk
    4. Install the update using the appropriate local installer for your version of OOS and DO NOT reboot
      Note that the OOS 13 EU/IN local installer will first extract the update (and update the inactive slot partitions) and then prompt you to Install it. It is IMPERATIVE that you DON'T CLICK on Install at this point as it will finish the installation and reboot without prompting leaving you without root.
      The local installer is:
    5. Backup the new inactive slot stock boot/recovery (recovery: only if TWRP is installed) using dd if=/dev/block/by-name/<boot/recovery><inactive slot suffix> of=<new boot/recovery img>
    6. Restore root to the current active slot dd if=<copy of current Magisk patched stock boot/recovery> of=/dev/block/by-name/<boot/recovery><active slot suffix>. This is so you keep root in case the update somehow fails and you're returned to the current system.
      Note: You could also use Magisk>Magisk Install>"Direct Install (Recommended)"
    7. (ONLY if keeping TWRP) Magisk>Modules>Install from storage: Select <twrp-installer.zip>
    8. Magisk>Magisk Install>"Install to inactive slot" and DO NOT reboot
    9. Backup the new Magisk patched stock boot using dd if=/dev/block/by-name/<boot><inactive slot suffix> of=<new Magisk patched boot img>
    10. On OOS 11 and 12: Reboot. On OOS 13 now tap on Install in the local installer to finish the installation.

    C. A note on Magisk backup folders in /data​

    When Magisk patches the boot image using either Magisk>Magisk Install>"Direct Install (Recommended)" or Magisk>Magisk Install>"Install to inactive slot" it creates a backup of the original stock boot image in a directory named /data/magisk_backup_<SHA1 of stock image>.
    When you use Magisk>Uninstall Magisk>Restore images the backup corresponding to the current patched boot image is used to restore the stock image to the current (active) slot.
    Clearly, if you deleted these magisk_backup directories then Magisk will not be able to restore the stock boot image. You must, therefore, always keep the current backup.
    If you don't delete these backups you can end up with a lot of obsolete backups. So, how to work out which one is the one you need to keep?
    The simplest way is to:
    1. Restore the current stock boot image using Magisk>Uninstall Magisk>Restore images
    2. Delete all the /data/magisk_backup_* directories
    3. Restore the rooted boot image using Magisk>Magisk Install>"Direct Install (Recommended)" - this also creates a new magisk_backup directory (no need to reboot)
    3
    I'm very pleased to announce that I've updated the OP with a significant new process (see section A.1.1) for first time rooting.
    You now no longer need to rely on a full update zip being available as you can use the MSM Tool to pull the stock boot image directly from your phone.
    I'm indebted to @scottlam1 for sharing this feature of the MSM Tool.
    (And, yes, I've tested this)
    3
    Okay I was courious and tried to root my KB2005 (GLO) with incremental Update .C16 (since there is no Full OTA yet).
    I used @BillGoss guide from OP (Update 20220427 WIP) in combination with @osm0sis method (also mentioned in OP and it worked! -> Kudos to both of them.
    These were my steps:

    1. UNROOT current slot in magisk app (=uninstall +restore images) WITHOUT REBOOTING
    2. Download and Install the C16 incremental update from built-in Software Update function WITHOUT REBOOTING
    3. Dump the fresh updated boot_img from the inactive slot (find your active slot with ->
      Code:
      adb shell getprop ro.boot.slot_suffix
      using the command BillGoss mentioned ->
      Code:
      adb shell su -c dd if=/dev/block/by-name/boot_b of=/sdcard/update-boot.img
      (in my case the inactive slot=b please change accordingly refering to your currently inactive slot -> boot_a or boot_b)
    4. patch the dumped update-boot.img with magisk -> "Select and Patch a File"
    5. copy the magisk_patched.img to your PC
    6. Re-root the current slot using the Magisk app direct Install, so in case the update somehow fails you'll be back where you started (rooted on the current slot) (THX to osm0sis for this step)
    7. turn on Airplane Mode
    8. reboot phone from update dialog, let it boot up and check if you are now on the updated slot
    9. reboot to fastboot e.g. using this command ->
      Code:
      adb reboot bootloader
    10. fastboot boot the magisk_patched.img ->
      Code:
      fastboot boot .\magisk_patched.img
    11. boot up and check in magisk app if you are now rooted
    12. in magisk app do a "Direct Install" and reboot again
    13. now you are on the updated slot with persistent magisk root
    14. turn off Airplane Mode and enjoy.
    greetings rage
    3
    @BillGoss Hello, I was in oos11 Root without twrp. In oos11 to make the upgrade, I made installation in local mode, then in magisk I reinstalled the one "after OTA" then reboot. To upgrade to OOS12 I did the same thing. But now, how to make an upgrade C15 -> C16 for example, without brick the phone since there is no more the option to install in local mode (Gear icon) ???
    Install this and you will have local upgrade

    2
    Okay I was courious and tried to root my KB2005 (GLO) with incremental Update .C16 (since there is no Full OTA yet).
    I used @BillGoss guide from OP (Update 20220427 WIP) in combination with @osm0sis method (also mentioned in OP and it worked! -> Kudos to both of them.
    These were my steps:

    1. UNROOT current slot in magisk app (restore images) WITHOUT REBOOTING
    2. Download and Install the C16 incremental update from built-in Software Update function WITHOUT REBOOTING
    3. Dump the fresh updated boot_img from the inactive slot (find your active slot with ->
      Code:
      adb shell getprop ro.boot.slot_suffix
      using the command BillGross mentioned ->
      Code:
      adb shell su -c dd if=/dev/block/by-name/boot_b of=/sdcard/update-boot.img
      (in my case the inactive slot=b please change accordingly refering to your currently inactive slot -> boot_a or boot_b)
    4. patch the dumped update-boot.img with magisk -> "Select and Patch a File"
    5. copy the magisk_patched.img to your PC
    6. Re-root the current slot using the Magisk app direct Install, so in case the update somehow fails you'll be back where you started (rooted on the current slot) (THX to osm0sis for this step)
    7. turn on Airplane Mode
    8. reboot phone from update dialog, let it boot up and check if you are now on the updated slot
    9. reboot to fastboot e.g. using this command ->
      Code:
      adb reboot bootloader
    10. fastboot boot the magisk_patched.img ->
      Code:
      fastboot boot .\magisk_patched.img
    11. boot up and check in magisk app if you are now rooted
    12. in magisk app do a "Direct Install" and reboot again
    13. now you are on the updated slot with persistent magisk root
    14. turn off Airplane Mode and enjoy.
    Brilliant!
    Your steps 10-12 were what I've been missing. Because they enable the simpler method of just using Magisk for later updates.
    Thank you!