[Red Magic 8 pro] amiruls:
The only way to update via root is you need to unroot your device first. Another way is if you are having issues like me of not able to update

via ota or local files try my method here. Tedious but it works. It can also resolved issues if u cant boot your device and only be able to boot via fastbootd or recovery.

1st method via magisk -

Go to updater in system settings

Proceed with downloading and installing the OTA. DO NOT HIT REBOOT WHEN IT IS DONE OR IT WILL MESS EVERYTHING UP!!!

Once installation is all done and it asks you to reboot, close out of the updater and open magisk

Hit the install button beside "magisk" there will be two install buttons it will be the top one.

Hit "install to inactive slot (after OTA)

Hit "let's go"

Once complete touch reboot on the bottom right

2nd Method -

1. The other way will be via local files which you can get by grabbing the ota .zip via logcat

2. Before updating you need to make sure your init_boot.img is stock not a magisk init_boot.img so

on your computor/pc via adb flash the stock init_boot.img

3.

fastboot flash init_boot_a init_boot.img

fastboot flash init_boot_b init_boot.img

4. This is to flash the stock init_boot to both partition .

5. After reboot update as usual and reboot device thereafter you can flash your magisk_patch_boot.img

3rd method - This the most tedious but works if you having issues with your rom itself or updating and cant boot your device , only can boot via fastbootd or recovery.

Use payload dumper to extract payload.bin.

You can grab payload_dumper from here (Windows and macOS), here (linux), or here (github, any OS).

For the download link from github, make sure you're running python 3.6 or higher. Run payload dumper with:

python payload_dumper.py payload.bin

The image files will be extracted to a folder named output.

You can start flashing from the standard bootloader or fastbootd. The first three lines below will flash the stock recovery then reboot into fastbootd.

Code:

fastboot flash recovery recovery.img

fastboot flash boot boot.img

fastboot flash dtbo dtbo.img

fastboot reboot fastboot

fastboot flash --slot=all recovery recovery.img

fastboot flash --slot=all boot boot.img

fastboot flash --slot=all dtbo dtbo.img

fastboot flash --slot=all abl abl.img

fastboot flash --slot=all aop aop.img

fastboot flash --slot=all bluetooth bluetooth.img

fastboot flash --slot=all cmnlib64 cmnlib64.img

fastboot flash --slot=all cmnlib cmnlib.img

fastboot flash --slot=all devcfg devcfg.img

fastboot flash --slot=all dsp dsp.img

fastboot flash --slot=all featenabler featenabler.img

fastboot flash --slot=all hyp hyp.img

fastboot flash --slot=all imagefv imagefv.img

fastboot flash --slot=all keymaster keymaster.img

fastboot flash --slot=all modem modem.img

fastboot flash --slot=all multiimgoem multiimgoem.img

fastboot flash --slot=all qupfw qupfw.img

fastboot flash --slot=all tz tz.img

fastboot flash --slot=all uefisecapp uefisecapp.img

fastboot flash --slot=all xbl_config xbl_config.img

fastboot flash --slot=all xbl xbl.img

fastboot flash --slot=all aop_config aop_config.img

fastboot flash --slot=all cpucp cpucp.img

fastboot flash --slot=all devcfg devcfg.img

fastboot flash --slot=all init_boot init_boot.img

fastboot flash --slot=all multiimgqti multiimgqti.img

fastboot flash --slot=all odm odm.img

fastboot flash --slot=all shrm shrm.img

fastboot flash --slot=all system_dlkm system_dlkm.img

fastboot flash --slot=all uefi uefi.img

fastboot flash --slot=all vendor_boot vendor_boot.img

fastboot flash --slot=all vendor_dlkm vendor_dlkm.img

fastboot flash --slot=all xbl_ramdump xbl_ramdump.img

This next section will clear the super partition (contains odm, system, system_ext, vendor and product). It's absolutely necessary. Clearing the super partition will help avoid the following error, which can come up if you had manually flashed ROMs on both slots previously.

Code:

Resizing '<partition name>' FAILED (remote: 'Not enough space to resize partition')

Example: Resizing 'product' FAILED (remote: 'Not enough space to resize partition')

Before deleting, you can check the names of the logical partitions on your phone using fastboot getvar all. Scroll up to the section that looks like this:

Code:

(bootloader) is-logical: odm_a:yes

(bootloader) is-logical: product_a:yes

(bootloader) is-logical: system_a:yes

(bootloader) is-logical: system_ext_a:yes

(bootloader) is-logical: vendor_a:yes

or

(bootloader) is-logical: odm_b:yes

(bootloader) is-logical: product_b:yes

(bootloader) is-logical: system_b:yes

(bootloader) is-logical: system_ext_b:yes

(bootloader) is-logical: vendor_b:yes

Delete everything with the commands below:

Code:

fastboot delete-logical-partition odm

fastboot delete-logical-partition system

fastboot delete-logical-partition system_ext

fastboot delete-logical-partition product

fastboot delete-logical-partition vendor

fastboot delete-logical-partition odm_a

fastboot delete-logical-partition odm_b

fastboot delete-logical-partition system_a

fastboot delete-logical-partition system_b

fastboot delete-logical-partition system_ext_a

fastboot delete-logical-partition system_ext_b

fastboot delete-logical-partition product_a

fastboot delete-logical-partition product_b

fastboot delete-logical-partition vendor_a

fastboot delete-logical-partition vendor_b

All logical partitions can be deleted to free up space in the super partition.

Recreate partitions a and b with the commands below.

Code:

fastboot create-logical-partition odm_a 100000

fastboot create-logical-partition odm_b 100000

fastboot create-logical-partition system_a 100000

fastboot create-logical-partition system_b 100000

fastboot create-logical-partition system_ext_a 100000

fastboot create-logical-partition system_ext_b 100000

fastboot create-logical-partition product_a 100000

fastboot create-logical-partition product_b 100000

fastboot create-logical-partition vendor_a 100000

fastboot create-logical-partition vendor_b 100000

Flash the rest of the images.

Code:

fastboot flash odm odm.img

fastboot flash system system.img

fastboot flash system_ext system_ext.img

fastboot flash product product.img

fastboot flash vendor vendor.img

fastboot flash --slot=all vbmeta vbmeta.img

fastboot flash --slot=all vbmeta_system vbmeta_system.img

Assuming everything flashes with no errors, return to recovery, do a factory reset and reboot.

Thereafter update via ota as per normal and then just flash your patch magisk_init_boot.img

Edit: Another way to update via kernelSu KernelSu Root Method thanks to @nathandrake

Whenever theres an update this should be clear up to everyone whose rooted and needs help updating.

Attached is V340

https://drive.google.com/file/d/1AtQO5jON31aG815sH-NdXfTZaqwu5M39/view?usp=drivesdk - Link FOR v440 CREDITS TO @borygo77