75 lines
2.4 KiB
Markdown
75 lines
2.4 KiB
Markdown
# Paravis installer — C++ port
|
||
|
||
Native Win32 port of `USBInstaller\usb-install.au3` with the same layout,
|
||
behaviour and data flow.
|
||
|
||
## Build
|
||
|
||
Requirements:
|
||
|
||
- Visual Studio 2022 with the Desktop C++ workload
|
||
- CMake 3.20 or newer
|
||
|
||
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.
|
||
|
||
## 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`.
|
||
|
||
## 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.
|
||
|
||
## Repository layout
|
||
|
||
```
|
||
src/ C++ sources and resources
|
||
legacy-au3/ original AutoIt script
|
||
build.cmd release build
|
||
```
|
||
|
||
## License
|
||
|
||
MIT. See [`LICENSE`](LICENSE).
|
||
|
||
This repository contains source code only. Installation archives
|
||
(`Data.pf`), Windows images (`*.wim`, `*.esd`) and third-party binaries are
|
||
not distributed here.
|