[Oukitel (All phone models)] calfax:
**** 02/03/2021: Well wouldn't you know it, they released an update....so maybe not do this right away*******

Guide to rooting the Oukitel WP10.

disclaimer: I have tried to make the steps straightforward yet detailed. This is a high-risk activity with a high probability of failure.​

Prologue: This guide assumes basic familiarity with ADB, fastboot, sideloading, and booting into your recovery. Please note ADB, fastboot commands will vary slightly depending on your installation, and whether you are a PC, a Mac or a Linux box.

Preplanning: inevitability screwing up your phone.

i. Back up, copy over and otherwise remove any valuable data from your phone. This process will delete all your old data.

ii. Obtain a copy of the stock rom. At the time of writing it is: OUKITEL_WP10_EEA_V10-R11 .zip which is hosted on Mega. You can find it at the Oukitel site -> Downloads.

iii. To reflash the stock rom you apparently need a tool called SPMDT. I am not familiar this tool and the instructions from Oukitel are all in Chinese so this will not be covered here at this time. It may be easier to do all of this using SPMDT. Review chinese Oukitel instructions on how to swap checksums and how to use SPMDT to restore your phone.

1. Install Magisk Manager - this is the tool we will use to root this phone. A more detailed explanation about how it works is here. Download directly on your phone and install or download to your computer and sideload using ADB.

adb install MagiskManager-v8.0.7.apk

2. Open Magisk Manager and verify that you can install Magisk. This phone does have a ramdisk, is encrypted but does not have a/b partitioning. There are 3 options: At this time, I can't find a TWRP custom recovery and do not yet know how to make one so downloading a zip to load with TWRP is not possible. A direct install seems to be for updating a previous Magisk installation? I am not sure and available information seems ambiguous. This leaves option 2: patch the stock boot image.

-2a. On your computer, open the stock rom and extract the boot.img file. Using ADB, upload it to your phone:

adb push boot.img /sdcard

This should send it to the users default directory. The /sdcard part may vary.

-2b. Open Magisk Manager on your phone and select option 2. Choose the boot.img file and Magisk will give it the clap.

-2c. Download the file to your desktop. Can probably open "Android Storage" in your file system and copy it over or use the following ADB command:

adb pull /sdcard/Download/magisk_patched_mzhsO.img ~/Desktop

Again, the *.img name and your preferred directory may vary and adjust command syntax for your OS.

3. Unlock the bootloader. You must first enable developer tools on your phone and then go to Settings ->System ->Advanced ->Developer Options -> OEM unlocking (turn slider on). This does not unlock the bootloader. It just allows you to unlock the bootloader. To unlock the bootloader, plug your phone into your computer using the USBc cable, make sure USB debugging is on and reboot your phone into fastboot by holding down the vol up and power buttons as the phone reboots. In the bootloader menu, choose fastboot by using the volume up to cycle through the menu options and then the volume down key to start fastboot. When all is ready:

fastboot flashing unlock

and a teeny-tiny prompt will pop up asking if you really want to do that. Use volume keys to navigate.

To relock the bootloader later (not now):

fastboot flashing lock

will button it up again. You might not need this ever.

4. I can't remember if it forces you to reboot at this point but if it does, just boot into fastboot again. Do not try to install the modified boot img file yet. If you do, you will send it into a fastboot bootloop (soft bricking your phone). This happened to me. I then learned that this phone, and I assume, most android phones past Android 8 are protected by Android Verified Boot which is part of a system that verifies that the firmware you are running is legit. In this case, it causes the bootloader to verify the boot and recovery partitions. We have to disable it to install the modified boot img. I borrowed the following commands from these threads here and here and here

-4a. vbmeta.img apparently contains checksums of the boot, recovery and maybe system partitions. The guy from the first link installed a custom vbmeta.img using the command below. I do not know whether this is generic vbmeta, whether it is vendor specific so I did not use the custom vbmeta he created.

-4a. Since I didn't know whether to use a vbmeta.img from another phone, I poked around until I found the 3rd link above which stated that I could just use a dummy vbmeta.img generated by using a python script AVBtool

I cloned it into Pycharm (or your preferred IDE...or you can rawdog it from the command line) from Google's github and ran the script as below:

avbtool make_vbmeta_image --flags 2 --padding_size 4096 --output vbmeta_disabled.img

-4b. I installed the vbmeta_disabled.img using fastboot.

fastboot --disable-verity --disable-verification flash vbmeta vbmeta_disabled.img

-4c. I then installed the modified boot.img (as discussed above):

fastboot flash boot magisk_patched_mzhsO.img

-4d. and rebooted: fastboot reboot

5. The system rebooted into the modified stock rom and I reinstalled everything I had backed up earlier. I confirmed Magisk had given me root access. HOWEVER: SafetyNet failed the ctsProfile check! There seems to be a fix for it here but since I don't know what it means or what it does and since the phone appears to be working, it will have to wait for later.

Epilogue. I am happy to report, that, after a bit of fiddling around, Magisk's Quickswitch module coupled with a very dodgy alpha Lawnchair2 apk I got from APKmirror through their Telegram group has resulted in a mostly functional rom! I now have an app drawer and gestures mostly works with the Lawnchair 2 launcher. Widgets still need to be reinstalled if you reboot. So...it now sucks a lot less.

Gentle reminder: this guide is rough and the result of only 1 pass through. And I screwed it up.