diff --git a/README.md b/README.md index e066e7a..aeb8e4a 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,73 @@ -# Paravis installer — C++ port +# Установщик флешки PARAVIS -Native Win32 port of `USBInstaller\usb-install.au3` with the same layout, -behaviour and data flow. +Нативная Win32-версия `USBInstaller\usb-install.au3` на C++ с той же +разметкой, поведением и потоком данных. -## Build +## Сборка -Requirements: +Требования: -- Visual Studio 2022 with the Desktop C++ workload -- CMake 3.20 or newer +- Visual Studio 2022 с рабочей нагрузкой Desktop C++; +- CMake 3.20 или новее. -From this directory run: +Из этого каталога: ```bat build.cmd ``` -The executable is produced at: +Результат: ``` build\Release\ParavisInstaller.exe ``` -The target is 32-bit (`Win32`) like the original AutoIt build, and the -application manifest requests administrator rights. +Цель 32-битная (`Win32`), как и оригинальная сборка на AutoIt; манифест +запрашивает права администратора. -## What is implemented +## Что реализовано -- 376 × 183 custom-drawn window, header, custom disk dropdown, status line, - progress bar, install/cancel button and hover/pressed states. -- USB disk enumeration by storage bus type, nominal size formatting and - Windows-system-disk protection. -- Diskpart layout: FAT32 PARAVIS 16 GB, FAT VTOYEFI 32 MB, exFAT DATA - (remaining space minus 3 MB). -- Offline disk is brought online before partitioning. -- Layout verification from the partition table and volume labels. -- DISM apply of images 1 → PARAVIS, 2 → VTOYEFI, 3 → DATA with progress - parsing and cancellation of the DISM process tree. -- Pressing the cancel button during installation asks for confirmation first. -- VTOYEFI drive letter removal after a successful install. -- Success warning, launch of `Change_BootLoader.exe` from the PARAVIS - partition, then immediate exit. -- If a `Change_BootLoader.exe` is present next to the installer, it is copied - to the PARAVIS partition after unpacking and used instead of the copy from - `Data.pf`. -- Service modes: `/selftest`, `/verify=N`, `/testdisk=N`, `/wim=path`. +- Окно 376×183 с собственной отрисовкой: шапка, выпадающий список дисков, + строка состояния, индикатор прогресса, кнопка установки/отмены и + состояния наведения/нажатия. +- Перечисление USB-дисков по типу шины, форматирование номинального размера + и защита системного диска Windows. +- Разметка через diskpart: FAT32 `PARAVIS` 16 ГБ, FAT `VTOYEFI` 32 МБ, + exFAT `DATA` (остаток минус 3 МБ). +- Отключённый диск переводится в онлайн перед разметкой. +- Проверка разметки по таблице разделов и меткам томов. +- Распаковка DISM: образ 1 → `PARAVIS`, 2 → `VTOYEFI`, 3 → `DATA`, с + разбором прогресса и остановкой дерева процессов DISM при отмене. +- Нажатие «Отмена» во время установки сначала запрашивает подтверждение. +- После успешной установки буква диска `VTOYEFI` удаляется. +- Предупреждение об успехе, запуск `Change_BootLoader.exe` с раздела + PARAVIS и немедленный выход. +- Если рядом с установщиком есть `Change_BootLoader.exe`, он копируется на + раздел PARAVIS после распаковки и используется вместо копии из `Data.pf`. +- Служебные режимы: `/selftest`, `/verify=N`, `/testdisk=N`, `/wim=путь`. -## Notes +## Примечания -- `Data.pf` is searched next to the executable, exactly like the AutoIt - version. `/wim=` remains a service/testing override. -- DISM command lines are built without the outer `cmd /c "..."` quote pair, - so paths containing spaces work correctly. -- The debug log is disabled by default. Set the environment variable - `PARAVIS_DEBUG_LOG=1` to write `%TEMP%\paravis_cpp_debug.log`. -- Message boxes use the native `MessageBoxW` dialog; text, buttons and - behavior are the same as the AutoIt version. +- `Data.pf` ищется рядом с exe, как и в AutoIt-версии. `/wim=` остаётся + служебным/тестовым переопределением. +- Командные строки DISM собираются без внешней пары кавычек `cmd /c "..."`, + поэтому пути с пробелами работают корректно. +- Отладочный лог по умолчанию выключен. Переменная + `PARAVIS_DEBUG_LOG=1` включает запись в `%TEMP%\paravis_cpp_debug.log`. +- Диалоги — нативный `MessageBoxW`; тексты, кнопки и поведение совпадают с + AutoIt-версией. -## Repository layout +## Структура репозитория ``` -src/ C++ sources and resources -legacy-au3/ original AutoIt script -build.cmd release build +src/ исходники и ресурсы C++ +legacy-au3/ исходная версия на AutoIt +build.cmd сборка релиза ``` -## License +## Лицензия -MIT. See [`LICENSE`](LICENSE). +MIT, см. [`LICENSE`](LICENSE). -This repository contains source code only. Installation archives -(`Data.pf`), Windows images (`*.wim`, `*.esd`) and third-party binaries are -not distributed here. +В репозитории только исходный код. Архивы установки (`Data.pf`), образы +Windows (`*.wim`, `*.esd`) и сторонние бинарники не распространяются.