@ECHO OFF
REM Version: V05
REM Date: 20220804
REM ============== USAGE ==============
REM flashall_FTM.cmd [Format option] [SN number]
REM [Format option]: 1=enable, 0=disable. default=0
REM Format userdata/cache
REM [SN number]: device SN number
REM Support multiple download image
REM ============== setting ==============
cd %~dp0
SETLOCAL
SET LOG=flashall_FTM_%2.log
IF EXIST %LOG% ( del %LOG% )
For /f %%i in ('date /t') do set mydate=%%i
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a:%%b)
ECHO TIMESTAMP : %mydate%_%mytime% >>%LOG%
SETLOCAL EnableDelayedExpansion
REM total image : 26, range : 0~25
SET TOTAL_IMAGE=25
SET "PartitionName=gz_a lk_a tee_a logo_a spmfw_a mcf_ota_a audio_dsp_a pi_img_a dpm_a scp_a ccu_a vcp_a sspm_a mcupm_a gpueb_a apusys_a mvpu_algo_a vbmeta_a vbmeta_system_a vbmeta_vendor_a boot_a vendor_boot_a dtbo_a md1img_a xrom_a super"
SET "ImageName=gz.img lk.img tee.img logo.img spmfw.img mcf_ota.img audio_dsp.img pi_img.img dpm.img scp.img ccu.img vcp.img sspm.img mcupm.img gpueb.img apusys.img mvpu_algo.img vbmeta.img vbmeta_system.img vbmeta_vendor.img boot.img vendor_boot.img dtbo.img md1img_4k.img xrom.img super.img"
ECHO. >>%LOG%
ECHO ################################################################## >>%LOG%
ECHO ########################### OS INFO ############################ >>%LOG%
ECHO ################################################################## >>%LOG%
ECHO. >>%LOG%
ECHO OS_VERSION = %PROCESSOR_ARCHITECTURE% >>%LOG%
IF "%PROCESSOR_ARCHITECTURE%" == x86 (
ECHO We don't support 32bit os environment, exit!
GOTO :EOF
)
IF "%selfWrapped%"=="" (
REM this is necessary so that we can use "exit" to terminate the batch file,
REM and all subroutines, but not the original cmd.exe
SET selfWrapped=true
%ComSpec% /s /c ""%~dp0flashall_FTM.cmd" %*"
GOTO :EOF
)
REM ============== main() ==============
CLS
SET "dataerase=0"
SET "SSN="
SET "para="
IF [%1] EQU [1] ( SET dataerase=1 )
IF NOT [%2] EQU [] ( SET para=-s )
IF NOT [%2] EQU [] (
SET SSN=%2
)
call:flash
EXIT 0
REM ============== flash() ==============
:flash
SET "ERRORLEVEL="
call:fastboot_tool oem device-info 2>project_%SSN%.txt && findstr /C:"(bootloader) MTK_LK2_VER : k6983v1_64" project_%SSN%.txt 1>>%LOG% 2>&1
REM echo ERRORLEVEL=!ERRORLEVEL!
IF !ERRORLEVEL! == 1 (
ECHO Not AI2203 project!
ECHO Not AI2203 project! >>%LOG%
goto END
)
ECHO.
ECHO ##################################################################
ECHO ##################### FLASH ALL IMAGES ########################
ECHO ##################################################################
ECHO.
ECHO ## ERASE DATA: %dataerase%
ECHO ## SSN: %SSN%
ECHO ## TIMESTAMP : %mydate%_%mytime%
ECHO ## PATH : %~dp0
ECHO.
ECHO ==================================================================
ECHO. >>%LOG%
ECHO ################################################################## >>%LOG%
ECHO ##################### FLASH ALL IMAGES ######################## >>%LOG%
ECHO ################################################################## >>%LOG%
ECHO. >>%LOG%
ECHO ## ERASE DATA: %dataerase% >>%LOG%
ECHO ## SSN: %SSN% >>%LOG%
ECHO ## TIMESTAMP : %mydate%_%mytime% >>%LOG%
ECHO ## PATH : %~dp0 >>%LOG%
ECHO. >>%LOG%
ECHO ================================================================== >>%LOG%
fastboot version 1>>%LOG% 2>&1
ECHO ================================================================== >>%LOG%
if exist crc_result.txt (
call:fastboot_tool set_active a 2>>%LOG%
call:fastboot_tool erase misc 2>>%LOG%
REM fastboot flash gpt PGPT_UFS
call:fastboot_tool flash preloader_a preloader_k6983v1_64.bin 2>>%LOG%
call:fastboot_tool flash preloader_b preloader_k6983v1_64.bin 2>>%LOG%
call:fastboot_tool flash gz_b gz.img 2>>%LOG%
call:fastboot_tool flash lk_b lk.img 2>>%LOG%
call:fastboot_tool flash tee_b tee.img 2>>%LOG%
call:fastboot_tool flash spmfw_b spmfw.img 2>>%LOG%
call:fastboot_tool flash mcf_ota_b mcf_ota.img 2>>%LOG%
call:fastboot_tool flash audio_dsp_b audio_dsp.img 2>>%LOG%
call:fastboot_tool flash pi_img_b pi_img.img 2>>%LOG%
call:fastboot_tool flash dpm_b dpm.img 2>>%LOG%
call:fastboot_tool flash scp_b scp.img 2>>%LOG%
call:fastboot_tool flash ccu_b ccu.img 2>>%LOG%
call:fastboot_tool flash vcp_b vcp.img 2>>%LOG%
call:fastboot_tool flash sspm_b sspm.img 2>>%LOG%
call:fastboot_tool flash mcupm_b mcupm.img 2>>%LOG%
call:fastboot_tool flash gpueb_b gpueb.img 2>>%LOG%
call:fastboot_tool flash apusys_b apusys.img 2>>%LOG%
call:fastboot_tool flash mvpu_algo_b mvpu_algo.img 2>>%LOG%
call:fastboot_tool flash dtbo_b dtbo.img 2>>%LOG%
call:fastboot_tool flash APD APD.img 2>>%LOG%
call:fastboot_tool erase xrom_a 2>>%LOG%
call:fastboot_tool erase super 2>>%LOG%
set n=0
for %%a in (%PartitionName%) do (
set PartitionName_vector[!n!]=%%a
set /A n+=1
)
set n=0
for %%a in (%ImageName%) do (
set ImageName_vector[!n!]=%%a
set /A n+=1
)
for /L %%i in (0 1 %TOTAL_IMAGE%) do (
call:fastboot_tool flash !PartitionName_vector[%%i]! !ImageName_vector[%%i]! 2>>%LOG%
call:fastboot_tool oem crc32_!PartitionName_vector[%%i]! 2>crc_temp_%SSN%.txt
findstr " CalculatedCRC" crc_temp_%SSN%.txt 1>crc_ptn_val_%SSN%.txt
findstr /b !PartitionName_vector[%%i]! crc_result.txt 1>crc_img_val_%SSN%.txt
for /f "tokens=4" %%j in ('type crc_ptn_val_%SSN%.txt') do ( set PTN_CRC=%%j )
for /f "tokens=2" %%k in ('type crc_img_val_%SSN%.txt') do ( set IMG_CRC=%%k )
if "!PTN_CRC!" == "!IMG_CRC!" (
ECHO ——————————————————————
ECHO Check !PartitionName_vector[%%i]! CRC PASS
ECHO ——————————————————————
ECHO ################################################################## >>%LOG%
ECHO "Check !PartitionName_vector[%%i]! CRC PASS" >>%LOG%
ECHO ################################################################## >>%LOG%
) else (
ECHO ——————————————————————
ECHO Check !PartitionName_vector[%%i]! CRC FAIL
ECHO ——————————————————————
ECHO ################################################################## >>%LOG%
ECHO "Check !PartitionName_vector[%%i]! CRC FAIL" >>%LOG%
ECHO ################################################################## >>%LOG%
GOTO:EOF
)
)
) else (
ECHO ——————————————————————
ECHO ## ERROR : crc_result.txt not exist
ECHO ——————————————————————
ECHO ################################################################## >>%LOG%
ECHO ## ERROR : crc_result.txt not exist >>%LOG%
ECHO ################################################################## >>%LOG%
GOTO:EOF
)
ping 127.0.0.1 -n 10 > nul
IF %dataerase% EQU 1 (
ECHO.
ECHO ##################################################################
ECHO ########################## WIPE DATA ###########################
ECHO ##################################################################
ECHO.
ECHO. >>%LOG%
ECHO ################################################################## >>%LOG%
ECHO ########################## WIPE DATA ########################### >>%LOG%
ECHO ################################################################## >>%LOG%
ECHO. >>%LOG%
REM call:fastboot_tool -w 1>>%LOG% 2>&1
call:fastboot_tool erase userdata 1>>%LOG% 2>&1
call:fastboot_tool erase metadata 1>>%LOG% 2>&1
call:fastboot_tool flash asdf asdf.img 1>>%LOG% 2>&1
call:fastboot_tool flash ADF ADF.img 1>>%LOG% 2>&1
call:fastboot_tool erase asuskey5 1>>%LOG% 2>&1
)
ECHO. >>%LOG%
ECHO ################################################################## >>%LOG%
ECHO ######################### DEVICE INFO ########################## >>%LOG%
ECHO ################################################################## >>%LOG%
ECHO. >>%LOG%
ECHO BEFORE >>%LOG%
ECHO ================================================================== >>%LOG%
call:fastboot_tool oem device-info 1>>%LOG% 2>&1
ECHO ================================================================== >>%LOG%
call:fastboot_tool reboot-bootloader 1>>%LOG% 2>&1
ping 127.0.0.1 -n 3 > nul
ECHO AFTER >>%LOG%
ECHO ================================================================== >>%LOG%
call:fastboot_tool oem device-info 1>>%LOG% 2>&1
ECHO ================================================================== >>%LOG%
ECHO. >>%LOG%
ECHO ################################################################## >>%LOG%
ECHO ######################### FB_VAR INFO ########################## >>%LOG%
ECHO ################################################################## >>%LOG%
ECHO. >>%LOG%
call:fastboot_tool getvar all 2>>%LOG%
REM ============= adb enable ===============
REM :adb_enable
REM ECHO. >>%LOG%
REM ECHO ################################################################## >>%LOG%
REM ECHO ######################### ADB ENABLE ########################### >>%LOG%
REM ECHO ################################################################## >>%LOG%
REM ECHO. >>%LOG%
REM echo fastboot.exe oem adb_enable >>%LOG%
REM call:fastboot_tool oem adb_enable 2>>%LOG%
OWNLOAD_PASS
ECHO "Download_PASS"
ECHO.
ECHO ##################################################################
ECHO ####################### FLASH COMPLETE. ########################
ECHO ##################################################################
ECHO.
ECHO. >>%LOG%
For /f %%i in ('date /t') do set mydate=%%i
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a:%%b)
ECHO ## TIMESTAMP : %mydate%_%mytime% >>%LOG%
ECHO.
ECHO ################################################################## >>%LOG%
ECHO ####################### FLASH COMPLETE. ######################## >>%LOG%
ECHO ################################################################## >>%LOG%
ECHO. >>%LOG%
GOTO:EOF
REM ============== fastboot_tool() ==============
:fastboot_tool
ECHO [command] : fastboot.exe %~1 %~2 %~3 %~4 %para% %SSN%
fastboot.exe %~1 %~2 %~3 %~4 %para% %SSN%
IF NOT %ERRORLEVEL% == 0 (
ECHO "FAILED, fastboot.exe %~1 %~2 %~3 %~4 %para% %SSN% failure, EXIT!"
EXIT 1
)
ECHO ==================================================================
GOTO:EOF
:END
DEL project_%SSN%.txt
@pause