At first I faced many bootloops but i finally figured out what was going on. Formatting user data through TWRP is not enough because after booting the device, encryption is still there. This happens because the kernel encrypts the device when booting up. Simply modifying the boot.img file to remove file encryption also doesn't work because you still boot into an already encrypted stock user data. So the answer was pretty obvious by now.
The trick is to format data using TWRP AND THEN boot to bootloader to flash a modified boot without encryption. So let's get to it.
How to create a modified boot.img without file encryption/dm-verity
1. Find and download your current firmware from Huawei Firmware Finder Dtabase (Team MT), or from a source that you trust. (Using a firmware with different cust version or a different update will most likely not work).
2. Download Huawei Update Extractor and use it to extract the stock boot.img file from UPDATE.APP
3. Download ASSAYYED_KITCHEN.
4. Place your stock boot.img file in the "WORK" folder of ASSAYYED_KITCHEN.
5. Launch ASSAYYED and select the 12th option (KERNEL/RECOVERY MENU) and then the 1st one (Unpacking Kernel).
6. The ASSAYYED options don't work for me so i did it manually. Go to your work folder and open the folder boot_unpacked\ramdisk.
7. You will see a file named "fstab.qcom", open it using WordPad.
8. Find the line:
/dev/block/bootdevice/by-name/userdata /data f2fs nosuid,nodev,noatime,discard,inline_data,inline_xattr wait,check,fileencryption
/dev/block/bootdevice/by-name/userdata /data f2fs nosuid,nodev,noatime,discard,inline_data,inline_xattr wait,check
/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait, verify /dev/block/bootdevice/by-name/vendor /vendor ext4 ro,barrier=1 wait, verify /dev/block/bootdevice/by-name/product /product ext4 ro,barrier=1 wait, verify
10. Save the file.
11. Launch ASSAYYED and select the 12th option (KERNEL/RECOVERY MENU) and then the 2nd one (Packing Kernel).
12. Follow the instructions below to properly flash your modified boot.img and get rid of encryption.
Removing file encryption/dm-verity from the device
1. Unlock your device.
2. Flash this TWRP on AGS-W09 or the appropriate custom recovery for your device.
3. Boot to TWRP and FORMAT user data (note that it is very important to format data and not just wipe it). •WARNING• this will delete all your data!
4. Go back to the reboot menu of TWRP and select reboot booloader (it's important to not allow your device to boot into system yet).
5. Using fastboot, flash your modified boot.img that you created earlier.
6. Reboot your device (you might get a bootloop on the first boot but force rebooting your device again by holding the power button will fix that).
7. After booting up, your device should not be encrypted anymore.
8. You can now use the root method that you like to root your device and internal storage should be visible on TWRP. TWRP backup should also work normally.
How to fix Magisk modules not showing up on Magisk Manager (! /data/adb/magisk_merge.img mount failed error)
I am not going to get into the technical staff you can find more info here
Edit: As of Magisk 19.0, the following method becomes obsolete. Magisk modules should now work as expected without issues. This method now concerns those who want to stick to an older version of Magisk
1. Download f2fsfix-2018.9.2.zip provided by VR25 on the thread above.
2. Download all the magisk modules that you need to flash and place them on your device.
3. Download the latest Magisk uninstaller along with the latest installer.
4. Boot to TWRP and flash Magisk uninstaller. (If you don't have Magisk already installed, skip this step)
5. Wipe Davlik Cache.
6. Install the latest Magisk.
7. Wipe Davlik Cache.
8. Flash the "f2fsfix-2018.9.2.zip" immediately followed by your modules.
9. Reboot (it should take more than usual).
10. Open Magisk Manager and check your Modules. Hopefully they'll show as installed and function correctly.
Note: This method should also work on similar devices. Just make sure you know how to recover your device in case something goes wrong.