65 lines
2.0 KiB
Markdown
65 lines
2.0 KiB
Markdown
# 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.
|