[GUIDE] Root and keeping root options

Search This thread

JimDandy68

Senior Member
Sorry if this is answered somewhere in the thread. Search This Thread doesn't seem to work. Any advice for what to do if upgrade went OK (or seemed to) but safetynet checks fail (using USNF 2.3.1 MOD)? I had the original USNF 2.3.1 installed during the upgrade and missed that I needed to use the mod until after rebooting and turning off airplane mode. Thanks
 

Gandalf19

Senior Member
Aug 31, 2012
86
29
OnePlus 8T
Ok.... All right.
If it is useful to others, I will tell my experience

I had android 11.0.13.13.KB05BA on OnePlus 8T EU with root.
I updated following the guide in point B.1.
Updated to C.16. I could not update with automatic update because it was too slow (problem known to Oneplus). So I got the firmware from the only link found on the internet with the complete C.16 EU rom HERE
Then from C.16 to C.20 with built-in System Update tool (Settings>About device>Software update).
Only problem detected with the fingerprint, but I solved it by updating the magisk Universal SafetyNet Fix module to version 2.3.1 HERE

Thanks again to @BillGoss for the work and assistance.

Now the smartphone does not detect any other updates, but I know that the latest version is C.33.
Without waiting, can I download the C.33 full OTA with Oxygen Updater and update always following the guide in point B.1?

Thank you very much
 

Crom4rtie

Senior Member
Dec 24, 2014
138
21
OnePlus 6
Hi, im having trouble understanding the steps. im currently on 11.0.13.13 unlocked bootloader and rooted. if i want to upgrade to 12 i download the full zip (C33) from oxygen updater and follow the steps b.2.1 right?
 

Crom4rtie

Senior Member
Dec 24, 2014
138
21
OnePlus 6
I tried updating with the full zip c33 through local upgrade and followed the steps exactly as in b.2.1 after rebooting i was still in android 11 rooted. i checked fastboot which slot im on and tried booting the other slot without success -> i always got back to my origin slot (in this case b) Any ideas?

EDIT: i was stupid, was using a very old version of magisk which apparently wasnt compatible with android 12. i Upgraded to the latest magisk stable and it worked well (b.2.1) thanks for the help
 
Last edited:

BillGoss

Senior Member
Sep 2, 2010
5,458
4,815
Sydney
OnePlus 8T
I tried updating with the full zip c33 through local upgrade and followed the steps exactly as in b.2.1 after rebooting i was still in android 11 rooted. i checked fastboot which slot im on and tried booting the other slot without success -> i always got back to my origin slot (in this case b) Any ideas?
That's odd!
I would try using MyApplication2 (the OOS 12 local installer linked in B.2.1) - something I've not done previously (using MA2 on OOS 11).
But you'll be on your own at that point and if it all goes wrong you'll have to use MSM to get back to a working phone. And that process is OT in this thread.
 
  • Like
Reactions: Crom4rtie

Gandalf19

Senior Member
Aug 31, 2012
86
29
OnePlus 8T
Hi.
Only for information.
If you are on C.20 and you perform a local update (Settings>About device>Software update>Local install) of C.33 using full OTA image, downloaded with Oxygen Updater, you loose root because at the end of update, smartphone reboot independently and you cannot do anything.
But I re-rooted the phone following the guide in point A.1.2. (y)

Thank you again @BillGoss
 
  • Like
Reactions: BillGoss

mingkee

Senior Member
Hi.
Only for information.
If you are on C.20 and you perform a local update (Settings>About device>Software update>Local install) of C.33 using full OTA image, downloaded with Oxygen Updater, you loose root because at the end of update, smartphone reboot independently and you cannot do anything.
But I re-rooted the phone following the guide in point A.1.2. (y)

Thank you again @BillGoss
Regaining root is pretty easy.
All you can do is
1. extract boot.img from ROM
2. transfer boot to the unit, patch the boot with Magisk, and transfer back to host computer.
3. reboot in fastbootd (adb reboot fastboot)
4. flash patched boot
5. reboot and done
 
  • Like
Reactions: Gandalf19

Top Liked Posts

  • There are no posts matching your filters.
  • 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]
    1
    Hi.
    I updated to Android 13 F.13 with method B.2.1 with MyApplication2 app.
    Now, when I boot, I see this message:


    With Magisk modules, I pass SafetyNet test


    How can I solve ?

    Thank's
    You can't. Just like we used to get the unlocked bootloader warning in OOS 11 and it disappeared in OOS 12, it's now back in OOS 13.
    1
    Hi Bill, I've always used B.2.1 Local Install, I will use the same to OOS13. After that do you suggest to add the OrangeFox recovery?
    Given that on OOS 13 TWRP doesn't work (touch screen isn't working) and OF works well, then what option do you have?
    But I'm not recommending that you install a custom recovery - that's entirely up to you.
  • 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!