Bootloader installer 2.0 (C++ port)

This commit is contained in:
paravis committed 2026-11-07 20:41:09 +03:00
commit c538f115f1
15 files changed
+1569

No files matched your search

+64
View File
@@ -0,0 +1,64 @@
# Change BootLoader — C++ port
Native Win32 port of `Change_bootloader\Change_bootloader.au3` with the same
window, buttons, actions and messages.
## Build
Requirements: Visual Studio 2022 (Desktop C++) and CMake 3.20+.
```bat
build.cmd
```
Output:
```
build\Release\Change_BootLoader.exe
```
The executable is 32-bit, uses a static CRT (no VC++ redistributable), and
requests administrator rights through the embedded manifest.
## How it works
- The program must be started from the root of a PARAVIS flash drive, for
example `F:\Change_BootLoader.exe`.
- It derives the drive from its own path and checks for
`\efi\Paravis\Boot\bootice.exe` and `\efi\Paravis\Boot\NOT.DEL`.
- If those files are missing, it shows the original error and exits.
- Seven buttons perform the same operations as the AutoIt version:
- Legacy BIOS: XorBoot, Bootmgr, Grub4Dos, Grub2
- UEFI: Bootmgr, Grub2, Xorboot
- Bootice, xcopy and the GRUB2 MBR helper script are invoked exactly like
the AutoIt version. The helper script is
`\efi\Paravis\Boot\grub2\bios\make-paravis-mbr.ps1`.
## Notes
- The UI matches the AutoIt version (376 × 208, same fonts, positions,
hover/pressed colors).
- Message boxes are native `MessageBoxW` dialogs with the same titles and
texts.
- The debug log is disabled by default. Set `PARAVIS_DEBUG_LOG=1` to write
`%TEMP%\cbl_cpp_debug.log`.
- The GRUB2 Legacy action uses the same bootice `/sectors` commands as the
AutoIt version. On some virtual disks bootice displays its own sector
confirmation/error dialogs; on a real PARAVIS USB flash it behaves the
same as the original.
## 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. Third-party binaries used at
runtime (`bootice.exe`, `xcopy`, `powershell.exe`) are not distributed here
and must be supplied by the system or by the PARAVIS flash image.