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


@echo off
SetLocal EnableDelayedExpansion
chcp 65001 >nul
title Установщик приложений Changan UNI-S / CS55 Plus
color 0A

:: 1. Читаем пароль из файла password.txt
if exist "password.txt" (
    set /p ADB_PASS=<password.txt
) else (
    echo [!] Файл password.txt не найден! Использую стандартный пароль.
    set "ADB_PASS=adb369875"
)

:: 2. Проверяем наличие папки apps
if not exist "apps\" (
    color 0C
    echo [ОШИБКА] Папка "apps" не найдена рядом с батником!
    pause
    exit /b
)

:CHECK_ADB
cls
echo ========================================================
echo          ПРОВЕРКА ПОДКЛЮЧЕНИЯ К МАГНИТОЛЕ
echo ========================================================
adb devices
echo.
echo [Подсказка] Если устройство не видно — вытащи SD-карту регистратора[span_2](start_span)[span_2](end_span).
echo Пароль из файла: [%ADB_PASS%]
echo.
pause

:MENU
cls
echo ========================================================
echo          МЕНЮ УСТАНОВКИ CHANGAN (ПАПКА /apps)
echo ========================================================
echo.

:: Сканируем папку apps и создаем нумерованный список
set count=0
for %%f in (apps\*.apk) do (
    set /a count+=1
    set "apk_!count!=%%~nxf"
    echo   [!count!] Установить %%~nxf
)

if %count%==0 (
    echo   [!] В папке apps нет ни того .apk файла!
    pause
    exit /b
)

echo.
echo   [A] УСТАНОВИТЬ ВСЕ ПО ОЧЕРЕДИ (с автоочисткой кэша и tmp)
echo   [F] ФИНАЛ: Сбросить кэш лаунчера + Полный экран + Выход
echo   [S] Показать свободное место в памяти ГУ (/data)
echo   [R] Перепроверить подключение ADB
echo   [Q] Выход
echo.
echo ========================================================
set "choice="
set /p choice="Введи номер приложения или букву (например, 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 [!] Неверный выбор, попробуй еще раз.
    timeout /t 2 >nul
    goto MENU
)

:: --- БЛОК УСТАНОВКИ ОДНОГО ФАЙЛА (С ОЧИСТКОЙ КЭША И TMP) ---
:INSTALL_ONE
set "CUR_APK=%~1"
echo.
echo --------------------------------------------------------
echo === Обработка: %CUR_APK% ===
echo [1/4] Закидываем в /data/local/tmp/...
adb push "apps\%CUR_APK%" /data/local/tmp/%CUR_APK%

echo [2/4] Ставим в систему (пароль подтягивается сам)...
adb shell "echo %ADB_PASS% | pm install -r -d --user 0 /data/local/tmp/%CUR_APK%"

echo [3/4] Сносим временный исходник из tmp...
adb shell rm -rf /data/local/tmp/%CUR_APK%

echo [4/4] Очищаем кэш лаунчера для обновления иконок[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 === %CUR_APK% успешно установлен и кэш очищен! ===
echo --------------------------------------------------------
exit /b

:: --- БЛОК УСТАНОВКИ ВСЕХ ФАЙЛОВ ПО ОЧЕРЕДИ ---
:INSTALL_ALL
echo.
echo Запускаю конвейерную установку всех файлов из папки apps...
for /L %%i in (1,1,%count%) do (
    call :INSTALL_ONE "!apk_%%i!"
)
echo.
echo Все приложения из папки установлены, кэш очищен!
pause
goto MENU

:: --- ПРОВЕРКА СВОБОДНОГО МЕСТА В ПАМЯТИ ГУ ---
:CHECK_SPACE
echo.
echo ========================================================
echo Свободное место в пользовательском разделе (/data):
adb shell df -h /data
echo ========================================================
echo (Помни: желательно оставлять свободными хотя бы 500-800 МБ!)
pause
goto MENU

:: --- ФИНАЛИЗАЦИЯ (ПОЛНЫЙ ЭКРАН И ВЫХОД) ---
:FINALIZE
echo.
echo ========================================================
echo [1/2] Контрольная чистка кэша лаунчера[span_4](start_span)[span_4](end_span)...
adb shell pm clear com.iflytek.autofly.launcher
adb shell settings put global show_all_app 6

echo [2/2] Включаем полноэкранный режим (скрываем левый бар)[span_5](start_span)[span_5](end_span)...
adb shell settings put global policy_control immersive.full=ru.yandex.yandexnavi,ru.yandex.music

echo.
echo ГОТОВО! Зажми кнопку "-" на руле на 10-15 сек для перезагрузки ГУ[span_6](start_span)[span_6](end_span).
echo ========================================================
pause
exit /b