[Android Q&A, Help & Troubleshooting] djvinniev77:
So I have done the following (after unlocking bootloader etc):

Start out with a complete flash of your phone with the latest from Needrom or Ulefone's site, ensure you can use the SP flash utility and flash everything so it's bone stock. If you can get your Magisk ZIP file sitting in a micro SD card or USB OTG, do that.

After flash, unplug and reboot device, ensure you hold the volume up button when it reboots, it should try to get into the stock android recovery. When you see the dead android with no commands etc, hold down power and volume up for about 2 seconds and let go, it should get you to the menu selection on the stock recovery. Select reboot to bootloader (volume down to move selector), use the power button to engage selection. It should restart in "fastboot" mode.

In this state, in terminal/command prompt on your PC, ensure you use fastboot command to flash the latest proper TWRP for this device made by Jemmini (props!!)

fastboot flash recovery recovery.img <-whatever this is called... you can rename Jemmini's file to that for simplicity

it should load the new recovery on device.

now at the same prompt do this:

fastboot boot recovery.img (same file you referenced before)

your device should now boot up to the proper TWRP recovery, still unable to read the actual storage so you have no choice but to do:

Select Language - choose yours

hit cancel to get out of the password prompt

get to the main menu of TWRP and wipe the device. Once wiped, you can do the following:

If your microSD card is available, install Magisk zip file from there

If you have the USB-OTG, you can select this storage option from Mount, Select Storage, Select USB-Otg, then try to install Magisk zip file.

Reboot your device.

At this stage, the device should boot, complete with TWRP recovery and systemless root with Magisk. Go ahead and setup your device. :)

Hope that works for you. I've been doing this A LOT lately so hopefully this is a more streamlined way to get around this.

Some items I have found with this:

You can go ahead and complete [MENTION=5404196]sumec100[/MENTION]'s instructions on reassigning the PTT and SOS buttons by changing the actual values on the config files on device. As long as you don't flash the device with stock rom, these changes SURVIVE device wipe because these are what the device thinks are hard coded values. Like I said, I've done this LOTS of times to validate this behavior.

IF you do decide to wipe your device, it retains the modified boot image with the one provided by Magisk during the Magisk zip file process, meaning the modifications on Magisk stay on the device, even though at next setup, you don't see the Magisk apk. Take note NOT to flash Magisk again on in recovery, it is not needed and it WILL cause a boot loop because of this. You can always just install the Magisk apk and test the Magisk config to validate everything works as designed. Like I said.. I've done this LOTS of times... LOL

Finally, if you do have your configuration set just right, you can actually back up the device using TWRP, it should take the key folders it needs for a proper backup (system folder, boot image etc) and theoretically, someone can make a flashable ZIP of this ROM as is. It says it needs a META-INF config, rename the boot image to something else and to take the system compressed files and make it system.ext4.tar. I'm trying to work on this as well. The TWRP backup I made I copied over to my PC and reloaded back when I first made the mistake of wiping again and reflashing the Magisk ZIP which made it bootloop, and it brought me back to where I needed to be.

Hope this helps!

---------- Post added at 01:39 PM ---------- Previous post was at 01:32 PM ----------

I think it's the Systemless Xposed is what triggered the issue wth Safetynet. Big red letters on this page:

https://xdaforums.com/xposed/unofficial-systemless-xposed-t3388268

says does not pass safety net.. :(

So Android Pay vs getting better customization on device like Greenify, Amplify, GravityBox etc...