Paravis USB installer 2.0 (C++ port)
This commit is contained in:
commit
ce8b49d0ec
18 files changed
+4119
No files matched your search
@@ -0,0 +1,74 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user