How to Manually Install or Update the OS on Your Brax Device

Ok so since I didn’t want to wait for a reply from someone about the flash.bat (flashing on windows) file I had chatgpt create one (not flashing the preloader.img so I don’t brick the phone I think):

@echo off
echo === Flashing Lunar OS via Fastboot ===
echo Make sure your phone is in fastboot mode and connected!

pause

fastboot flash connsys_bt_a connsys_bt.img
fastboot flash dpm_a dpm.img
fastboot flash gz_a gz.img
fastboot flash lk_a lk.img
fastboot flash logo_a logo.img
fastboot flash mcf_ota_a mcf_ota.img
fastboot flash mcupm_a mcupm.img
fastboot flash md1img_a md1img.img
fastboot flash pi_img_a pi_img.img
fastboot flash scp_a scp.img
fastboot flash spmfw_a spmfw.img
fastboot flash sspm_a sspm.img
fastboot flash tee_a tee.img
fastboot flash vcp_a vcp.img

fastboot flash boot boot.img
fastboot flash dtbo dtbo.img
fastboot flash init_boot_a init_boot.img
fastboot flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img
fastboot flash vbmeta_vendor vbmeta_vendor.img
fastboot flash vendor_boot vendor_boot.img

fastboot flash super super.img
fastboot flash odm_dlkm odm_dlkm.img
fastboot flash userdata userdata.img

echo === Flashing complete! ===
echo Rebooting…
fastboot reboot

pause

This script had this output:

=== Flashing Lunar OS via Fastboot === Make sure your phone is in fastboot mode and connected! Press any key to continue . . . Warning: skip copying connsys_bt_a image avb footer (connsys_bt_a partition size: 0, connsys_bt_a image size: 4288576). Sending ‘connsys_bt_a’ (4188 KB) OKAY [ 0.107s] Writing ‘connsys_bt_a’ OKAY [ 0.102s] Finished. Total time: 0.255s Warning: skip copying dpm_a image avb footer (dpm_a partition size: 0, dpm_a image size: 148288). Sending ‘dpm_a’ (144 KB) OKAY [ 0.007s] Writing ‘dpm_a’ OKAY [ 0.007s] Finished. Total time: 0.059s Warning: skip copying gz_a image avb footer (gz_a partition size: 0, gz_a image size: 3120128). Sending ‘gz_a’ (3047 KB) OKAY [ 0.080s] Writing ‘gz_a’ OKAY [ 0.073s] Finished. Total time: 0.205s Sending ‘lk_a’ (2596 KB) OKAY [ 0.061s] Writing ‘lk_a’ OKAY [ 0.063s] Finished. Total time: 0.181s Warning: skip copying logo_a image avb footer (logo_a partition size: 0, logo_a image size: 3450064). Sending ‘logo_a’ (3369 KB) OKAY [ 0.089s] Writing ‘logo_a’ OKAY [ 0.090s] Finished. Total time: 0.215s Warning: skip copying mcf_ota_a image avb footer (mcf_ota_a partition size: 0, mcf_ota_a image size: 29999104). Sending ‘mcf_ota_a’ (29296 KB) OKAY [ 0.715s] Writing ‘mcf_ota_a’ OKAY [ 0.696s] Finished. Total time: 1.454s Warning: skip copying mcupm_a image avb footer (mcupm_a partition size: 0, mcupm_a image size: 129920). Sending ‘mcupm_a’ (126 KB) OKAY [ 0.006s] Writing ‘mcupm_a’ OKAY [ 0.006s] Finished. Total time: 0.056s Sending ‘md1img_a’ (70360 KB) OKAY [ 1.556s] Writing ‘md1img_a’ OKAY [ 1.648s] Finished. Total time: 3.470s Warning: skip copying pi_img_a image avb footer (pi_img_a partition size: 0, pi_img_a image size: 31232). Sending ‘pi_img_a’ (30 KB) OKAY [ 0.004s] Writing ‘pi_img_a’ OKAY [ 0.004s] Finished. Total time: 0.048s Warning: skip copying scp_a image avb footer (scp_a partition size: 0, scp_a image size: 2769696). Sending ‘scp_a’ (2704 KB) OKAY [ 0.071s] Writing ‘scp_a’ OKAY [ 0.071s] Finished. Total time: 0.196s Warning: skip copying spmfw_a image avb footer (spmfw_a partition size: 0, spmfw_a image size: 15344). Sending ‘spmfw_a’ (14 KB) OKAY [ 0.003s] Writing ‘spmfw_a’ OKAY [ 0.004s] Finished. Total time: 0.049s Warning: skip copying sspm_a image avb footer (sspm_a partition size: 0, sspm_a image size: 754016). Sending ‘sspm_a’ (736 KB) OKAY [ 0.020s] Writing ‘sspm_a’ OKAY [ 0.020s] Finished. Total time: 0.089s Warning: skip copying tee_a image avb footer (tee_a partition size: 0, tee_a image size: 908240). Sending ‘tee_a’ (886 KB) OKAY [ 0.025s] Writing ‘tee_a’ OKAY [ 0.024s] Finished. Total time: 0.099s Warning: skip copying vcp_a image avb footer (vcp_a partition size: 0, vcp_a image size: 1384288). Sending ‘vcp_a’ (1351 KB) OKAY [ 0.033s] Writing ‘vcp_a’ OKAY [ 0.035s] Finished. Total time: 0.107s Sending ‘boot_a’ (65536 KB) OKAY [ 1.619s] Writing ‘boot_a’ OKAY [ 1.542s] Finished. Total time: 3.209s Sending ‘dtbo_a’ (8192 KB) OKAY [ 0.202s] Writing ‘dtbo_a’ OKAY [ 0.199s] Finished. Total time: 0.439s Warning: skip copying init_boot_a image avb footer (init_boot_a partition size: 0, init_boot_a image size: 8388608). Sending ‘init_boot_a’ (8192 KB) OKAY [ 0.200s] Writing ‘init_boot_a’ OKAY [ 0.194s] Finished. Total time: 0.459s Sending ‘vbmeta_a’ (8 KB) OKAY [ 0.003s] Writing ‘vbmeta_a’ OKAY [ 0.003s] Finished. Total time: 0.040s Sending ‘vbmeta_system_a’ (4 KB) OKAY [ 0.003s] Writing ‘vbmeta_system_a’ OKAY [ 0.003s] Finished. Total time: 0.035s Sending ‘vbmeta_vendor_a’ (4 KB) OKAY [ 0.003s] Writing ‘vbmeta_vendor_a’ OKAY [ 0.003s] Finished. Total time: 0.035s Sending ‘vendor_boot_a’ (65536 KB) OKAY [ 1.568s] Writing ‘vendor_boot_a’ OKAY [ 1.547s] Finished. Total time: 3.172s Sending sparse ‘super’ 1/15 (131068 KB) OKAY [ 3.290s] Writing ‘super’ OKAY [ 3.090s] Sending sparse ‘super’ 2/15 (131068 KB) OKAY [ 3.313s] Writing ‘super’ OKAY [ 3.105s] Sending sparse ‘super’ 3/15 (131068 KB) OKAY [ 3.322s] Writing ‘super’ OKAY [ 3.083s] Sending sparse ‘super’ 4/15 (131068 KB) OKAY [ 3.312s] Writing ‘super’ OKAY [ 3.083s] Sending sparse ‘super’ 5/15 (131068 KB) OKAY [ 3.322s] Writing ‘super’ OKAY [ 3.083s] Sending sparse ‘super’ 6/15 (131068 KB) OKAY [ 3.336s] Writing ‘super’ OKAY [ 3.088s] Sending sparse ‘super’ 7/15 (131068 KB) OKAY [ 3.321s] Writing ‘super’ OKAY [ 3.083s] Sending sparse ‘super’ 8/15 (131068 KB) OKAY [ 3.319s] Writing ‘super’ OKAY [ 3.166s] Sending sparse ‘super’ 9/15 (131068 KB) OKAY [ 3.348s] Writing ‘super’ OKAY [ 3.078s] Sending sparse ‘super’ 10/15 (131068 KB) OKAY [ 3.310s] Writing ‘super’ OKAY [ 3.089s] Sending sparse ‘super’ 11/15 (131068 KB) OKAY [ 3.318s] Writing ‘super’ OKAY [ 3.127s] Sending sparse ‘super’ 12/15 (131068 KB) OKAY [ 3.311s] Writing ‘super’ OKAY [ 3.089s] Sending sparse ‘super’ 13/15 (131068 KB) OKAY [ 3.341s] Writing ‘super’ OKAY [ 3.079s] Sending sparse ‘super’ 14/15 (131068 KB) OKAY [ 3.407s] Writing ‘super’ OKAY [ 3.083s] Sending sparse ‘super’ 15/15 (95448 KB) OKAY [ 2.433s] Writing ‘super’ OKAY [ 2.291s] Finished. Total time: 94.801s Warning: skip copying odm_dlkm image avb footer (odm_dlkm partition size: 0, odm_dlkm image size: 348160). Sending ‘odm_dlkm’ (340 KB) OKAY [ 0.011s] Writing ‘odm_dlkm’ FAILED (remote: ‘partition does not exist’) fastboot: error: Command failed Warning: skip copying userdata image avb footer due to sparse image. Sending ‘userdata’ (123596 KB) OKAY [ 3.014s] Writing ‘userdata’ OKAY [ 3.405s] Finished. Total time: 6.455s === Flashing complete! === Rebooting… Rebooting OKAY [ 0.002s] Finished. Total time: 0.006s Press any key to continue . . .

Which resulted in a boot loop. After a few boot loops it gave the option to factory reset which I did then it booted into “userdebug” mode of Lunar OS. After a restart, Lunar OS was up and running.

Chat GPT said this about the failure:

:magnifying_glass_tilted_right: What Happened

  • The first boot failed because of a userdata mismatch (old data structure from your previous ROM vs. new Lunar OS).
  • That’s why you got stuck in recovery.
  • Once you did a factory reset (which wipes /data and rebuilds it for the new OS), the device was able to boot normally.

This is actually expected behavior when switching between ROMs — most ROM installation guides explicitly say to wipe userdata after flashing for exactly this reason.


:white_check_mark: Is it safe now?

Yes. If you’re booted into Lunar OS and it runs fine:

  • You don’t need to re-flash.
  • The one-time recovery boot was just the system asking you to wipe.
  • The missing odm_dlkm flash line is not harmful — it just means your phone doesn’t use that partition.

As long as you didn’t flash preloader (you didn’t, which is good — flashing that wrong can brick), you’re safe.

ChatGPT gave an updated flash.bat which I haven’t tried yet:

@echo off
echo === Flashing Lunar OS via Fastboot ===
echo Make sure your phone is in fastboot mode and connected!
pause

REM — Peripherals / MTK partitions (A slot on this device) —
fastboot flash connsys_bt_a connsys_bt.img
fastboot flash dpm_a dpm.img
fastboot flash gz_a gz.img
fastboot flash lk_a lk.img
fastboot flash logo_a logo.img
fastboot flash mcf_ota_a mcf_ota.img
fastboot flash mcupm_a mcupm.img
fastboot flash md1img_a md1img.img
fastboot flash pi_img_a pi_img.img
fastboot flash scp_a scp.img
fastboot flash spmfw_a spmfw.img
fastboot flash sspm_a sspm.img
fastboot flash tee_a tee.img
fastboot flash vcp_a vcp.img

REM — Core Android/AVB —
fastboot flash boot boot.img
fastboot flash dtbo dtbo.img
fastboot flash init_boot_a init_boot.img
fastboot flash vbmeta vbmeta.img
REM If you hit a verified-boot loop, use the next line instead of the one above:
REM fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img
fastboot flash vbmeta_vendor vbmeta_vendor.img
fastboot flash vendor_boot vendor_boot.img

REM — System image (dynamic partitions) —
fastboot flash super super.img

REM — Wipe data if switching ROMs —
fastboot flash userdata userdata.img

echo === Flashing complete! Rebooting… ===
fastboot reboot
pause

So in conclusion flash to Lunar OS worked. I will see if everything works and if I can change IMEIs now.

Edit: Red text “userdebug” is stuck in the upper left corner of the screen always no matter what screen I’m on.

1 Like

Now all we need to do is figure out how to use Arch Linux distros on the Brax3?

1 Like

No response, so I have to develop this on my own? RPM instead of .tar.gz Tarballs are considered ancient among Linux users. Yum (Yellowdog Updater Modified) and Pacman ( Package Manager) are more expressive. $ sudo yum update and $ sudo pacman ~Syu replace tarballs as package managers.

Brax SM, “Smart Manjaro” anyone?

[Help] SP Flash Tool Error: “flash.xml is not exist”

Hi,

I’m trying to flash my Brax3 with SPFlashToolV6, but I get this error message:

“c:\users\plament\Downloads\brax3-beta6\brax3\download_agent\flash.xml is not exist”

There is no download_agent folder nor a flash.xml on my computer (Windows 11).

There is a step I’m missing, but I can’t figure out what it is.

Does anyone know what step I might be missing or where to get the missing files?

Thanks!

2 Likes

Hey there.
You are probably missing the spflash OS build, which includes the flash.xml file.

Currently available builds for flashing:

2 Likes

Thank you! Really appreciate it.

Exciting news! Thank you.

I can’t get it to boot the recovery image, how exactly did you press the buttons (order and duration)?

Once it booted with “Power + Vol-” but it stayed displaying “brax”, only for some seconds I saw at the bottom left corner “=> Factory mode”

1 Like

A post was merged into an existing topic: BraX3 delivery updates