@ECHO OFF
IF [%1] EQU [] GOTO NOPARA1
IF %1 EQU 1 ( SET dataerase=1
) ELSE ( SET dataerase=0
)
GOTO step2
:NOPARA1
SET dataerase=0
:step2
IF [%2] EQU [] ( SET para=<nul
) ELSE ( SET para=-s
)
SET IMAGE_ID=Z170CG
SET FASTBOOT_DIR=fls\fastboot
FOR /F "delims=" %%i IN ('dir %FASTBOOT_DIR% /B ^| findstr /I /C:"vrl.bin"') DO ( SET VRL=%FASTBOOT_DIR%\%%i )
FOR /F "delims=" %%i IN ('dir %FASTBOOT_DIR% /B ^| findstr /I /C:"psi_flash.bin"') DO ( SET PSI=%FASTBOOT_DIR%\%%i )
FOR /F "delims=" %%i IN ('dir %FASTBOOT_DIR% /B ^| findstr /I /C:"slb.bin"') DO ( SET SLB=%FASTBOOT_DIR%\%%i )
IF NOT EXIST "%VRL%" ECHO "VRL NOT EXIST!" && GOTO END
IF NOT EXIST "%PSI%" ECHO "PSI NOT EXIST!" && GOTO END
IF NOT EXIST "%SLB%" ECHO "SLB NOT EXIST!" && GOTO END
fastboot oem unlock %para% %2
fastboot oem unlock confirm %para% %2 > tmp.out 2> tmp.err
fastboot getvar get_project_id %para% %2 2>nul
if %errorlevel% == 0 (
GOTO CHECK_IMAGE
)
ECHO "UNKNOWN COMMAND: fastboot getvar get_project_id! UPDATE SLB"
fastboot flash vrl %FASTBOOT_DIR%/vrl.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash vrl FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot flash slb %FASTBOOT_DIR%/slb.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash slb FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot reboot-bootloader %para% %2
:WaitFastboot
ping 127.0.0.1 -n 10 > nul
ECHO "Waiting for devices…"
fastboot devices | findstr /i %2
if NOT %errorlevel% == 0 goto WaitFastboot
:CHECK_IMAGE
ECHO "###### CHECKING IF THE DEVICE AND THE TARGET IMAGE MATCH ######"
ping 127.0.0.1 -n 3 > nul
fastboot getvar get_project_id %para% %2 2>&1| findstr /E %IMAGE_ID%
if NOT %errorlevel% == 0 (
ECHO "FAILED, THE DEVICE IS NOT %IMAGE_ID%! EXIT!"
PAUSE
GOTO END
)
ECHO "#################################"
ECHO "### DEVICE START PARTITIONING ###"
ECHO "#################################"
fastboot flash vrl %FASTBOOT_DIR%/vrl.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash vrl FAILED, EXIT!"
PAUSE
GOTO END
)
ECHO "###############################"
ECHO "### DEVICE PARTITIONING OK! ###"
ECHO "###############################"
if %dataerase% EQU 1 (
fastboot format userdata %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "format userdata FAILED, EXIT!"
PAUSE
GOTO END
)
)
fastboot flash psi %FASTBOOT_DIR%/psi_flash.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash psi FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot flash slb %FASTBOOT_DIR%/slb.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash slb FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot flash ucode_patch %FASTBOOT_DIR%/ucode_patch.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash ucode_patch.bin FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot flash hypervisor %FASTBOOT_DIR%/mobilevisor.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash mobilevisor FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot flash mvconfig %FASTBOOT_DIR%/mvconfig_smp.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash mvconfig FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot flash secvm %FASTBOOT_DIR%/secvm.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash secvm FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot flash splash %FASTBOOT_DIR%/splash_img.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash splash FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot flash boot %FASTBOOT_DIR%/boot.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash boot FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot flash recovery %FASTBOOT_DIR%/recovery.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash recovery FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot flash system %FASTBOOT_DIR%/system.bin %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "flash system FAILED, EXIT!"
PAUSE
GOTO END
)
fastboot reboot-bootloader %para% %2
PING 127.0.0.1 -n 11
fastboot oem adb_enable 1 %para% %2
IF NOT %ERRORLEVEL% == 0 (
ECHO "oem adb_enable 1 FAILED, EXIT!"
GOTO END
)
ECHO "####################"
ECHO "### FLASHING OK! ###"
ECHO "####################"
fastboot continue %para% %2
:END