Загрузка данных


@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