Загрузка данных
@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