A summary of a successful flash on a TCL A30:
Needed Software tools:
1. Android Platform tools with adb.
Platform Tools - Upstream Android
Android tools - Arch Linux
2. @malfunction zip file
3. A recent version of mtkclient. Note that in Arch Linux the version of mtkclient (1.52.1) uses an older command syntax to unlock/lock the bootloader. mtkclient-git has the newer syntax and numerous fixes and was used. The Arch linux install does not provide a mtk_gui.
AUR mtkclient-git
It is easier with a _gui but I will provide copy/paste commands for command line syntax. Executing the mtk command and then connecting the powered-off phone to usb consistently established brom mode and executed the command. Once connected in brom mode, additional mtk commands can be run until the instructions call for a phone reboot
Process.
1. Make a backup dump of all partitions:
Note that in Arch linux with a system mtkclient-git you do not need to specify python in the command. "out" is the output directory.
With Arch Linux system wide install, drop [python] on all subsequent commands.
For example the previous command would be
You should see these files:
Code:
boot.bin lk2.bin otp.bin spmfw.bin
boot_para.bin lk.bin para.bin sspm_1.bin
cache.bin logo.bin persist.bin sspm_2.bin
dtbo.bin logs preloader_bangkok_uscc.bin super.bin
efuse.bin md1img.bin proinfo.bin swversion.bin
expdb.bin md_udc.bin protect1.bin tee1.bin
flashinfo.bin metadata.bin protect2.bin tee2.bin
frp.bin nvcfg.bin recovery.bin userdata.bin
gpt_backup.bin nvdata.bin scp1.bin vbmeta.bin
gpt.bin nvram.bin scp2.bin vbmeta_system.bin
gz1.bin oembin.bin sec1.bin vbmeta_vendor.bin
gz2.bin oempersist.bin seccfg.bin vendor_boot.bin
2. Unlock the bootloader
Code:
[python] mtk da seccfg unlock
3. Erase metadata,userdata,md_udc
Code:
[python] mtk e metadata,userdata,md_udc
4. Overwrite all Verified Boot (vbmeta) with the blank vbmeta
Code:
[python] mtk w vbmeta vbmeta.bin
[python] mtk w vbmeta_system vbmeta.bin
[python] mtk w vbmeta_vendor vbmeta.bin
5. Overwrite boot.bin with the first Magisk patched boot file
Code:
[python] mtk w boot 01_magisk_patch_boot.bin
6. Disconnect usb to the phone an reboot. The phone will have no configuration and you essentially need to establish a wifi connection. Once the phone is online, long press the Magisk icon and enable the Magisk app to install additional applications. Relaunch Magisk and follow the prompts to install "Alpha" version of Magisk. Reboot the phone and then power it off.
7. Overwrite the 01_magisk patched boot.bin with 02_magisk_patched-25205_yIaU6.bin
Code:
[python] mtk w boot 02_magisk_patched-25205_yIaU6.bin
disconnect usb and reboot the phone.
8. Launch "Alpha". It now alerts you that a new version of Magisk is available and asks you to install it. It is easiest to not update. If you want to update later, you will need the factory boot.bin on /sdcard/Download and follow the Magisk Install instuctions:
The Magic Mask for Android
topjohnwu.github.io
9. Unpack your super.bin, delete the product and system.bin's. Copy your chosen gsi into the unpacked super.bin and repack it. The instructions are described in this post:
XDA post 87742419
I did not load the factory boot image and did not relock the bootloader.
@malfunction provides a tested repacked super.bin with Cherish Android 11 on his download site. I have two Phh GSI repacks that have been tested but have no download site. The are under 6GB.
10. Erase metadata, md_udc, userdata and write the repacked super.bin over the phones super
Code:
[python] mtk e metadata, md_udc, userdata
[python] mtk w super linsuper.bin
11. Install your apps. Initially, using F-Droid, some of the apks did not fully function. Specifically GeometI've c weather widgets were not available. Instead, download your apks directly from the F-Droid site, and use adb install.
I specifically tested these apps:
Bromite
Bromite System webview
FairEmail
Simple Launcher
Geometric Weather
NewPipe
Organic Maps
Mpv
Barcode Scanner
Termux
Wikipedia