Загрузка данных
@echo off
SetLocal EnableDelayedExpansion
chcp 1251 >nul
title Changan Installer
color 0A
:: 1. Read password from password.txt
if exist "password.txt" (
set /p ADB_PASS=<password.txt
) else (
echo [!] password.txt not found! Using default password.
set "ADB_PASS=adb369875"
)
:: 2. Check apps folder
if not exist "apps\" (
color 0C
echo [ERROR] Folder "apps" not found next to batch file!
pause
exit /b
)
:CHECK_ADB
cls
echo ========================================================
echo HEAD UNIT ADB CONNECTION CHECK
echo ========================================================
adb devices
echo.
echo [Tip] If device list is empty - remove the DVR SD-card[span_0](start_span)[span_0](end_span).
echo Password loaded: [%ADB_PASS%]
echo.
pause
:MENU
cls
echo ========================================================
echo CHANGAN INSTALLER MENU (FOLDER /apps)
echo ========================================================
echo.
set count=0
for %%f in (apps\*.apk) do (
set /a count+=1
set "apk_!count!=%%~nxf"
echo [!count!] Install %%~nxf
)
if %count%==0 (
echo [!] No .apk files found in apps folder!
pause
exit /b
)
echo.
echo [A] INSTALL ALL APPS ONE BY ONE (with cache clear)
echo [F] FINALIZE: Clear launcher cache + Fullscreen + Exit[span_1](start_span)[span_1](end_span)
echo [S] Show free space on Head Unit (/data)
echo [R] Recheck ADB connection
echo [Q] Exit
echo.
echo ========================================================
set "choice="
set /p choice="Enter app number or letter (e.g. 1, A, F): "
if /i "%choice%"=="Q" exit /b
if /i "%choice%"=="R" goto CHECK_ADB
if /i "%choice%"=="S" goto CHECK_SPACE
if /i "%choice%"=="F" goto FINALIZE
if /i "%choice%"=="A" goto INSTALL_ALL
if defined apk_%choice% (
call :INSTALL_ONE "!apk_%choice%!"
pause
goto MENU
) else (
echo.
echo [!] Invalid choice, try again.
timeout /t 2 >nul
goto MENU
)
:: --- INSTALL ONE FILE BLOCK ---
:INSTALL_ONE
set "CUR_APK=%~1"
echo.
echo --------------------------------------------------------
echo === Processing: %CUR_APK% ===
echo [1/4] Pushing to /data/local/tmp/...
adb push "apps\%CUR_APK%" /data/local/tmp/%CUR_APK%
echo [2/4] Installing package (auto-entering password)...
adb shell "echo %ADB_PASS% | pm install -r -d --user 0 /data/local/tmp/%CUR_APK%"
echo [3/4] Removing temporary apk from tmp...
adb shell rm -rf /data/local/tmp/%CUR_APK%
echo [4/4] Clearing launcher cache to update icons[span_2](start_span)[span_2](end_span)...
adb shell pm clear com.iflytek.autofly.launcher
adb shell settings put global show_all_app 6
echo === %CUR_APK% successfully installed and cache cleared! ===
echo --------------------------------------------------------
exit /b
:: --- INSTALL ALL BLOCK ---
:INSTALL_ALL
echo.
echo Starting batch installation of all apps...
for /L %%i in (1,1,%count%) do (
call :INSTALL_ONE "!apk_%%i!"
)
echo.
echo All apps installed and cache cleared!
pause
goto MENU
:: --- CHECK SPACE BLOCK ---
:CHECK_SPACE
echo.
echo ========================================================
echo Free space on user partition (/data):
adb shell df -h /data
echo ========================================================
pause
goto MENU
:: --- FINALIZE BLOCK ---
:FINALIZE
echo.
echo ========================================================
echo [1/2] Final launcher cache clear[span_3](start_span)[span_3](end_span)...
adb shell pm clear com.iflytek.autofly.launcher
adb shell settings put global show_all_app 6
echo.
echo DONE! Hold "-" button on steering wheel for 10-15s to reboot HU[span_5](start_span)[span_5](end_span).
echo ========================================================
pause
exit /b