BJJ
BJJ
## Summary
When booting on a UEFI-based computer, Windows may show a vendor-defined logo which
is stored on the UEFI firmware in a section called Boot Graphics Resource Table
(BGRT). It's usually very difficult to change the image permanently, but a custom
UEFI application may be used to overwrite it during the boot. HackBGRT does exactly
that.
## Usage
**Important:** If you mess up the installation, your system may become unbootable!
Create a rescue disk before use. This software comes with no warranty. Use at your
own risk.
HackBGRT is not approved by Microsoft. Instead, HackBGRT comes with the *shim* boot
loader, which allows to manually select HackBGRT as a trusted program. After
installing HackBGRT and rebooting your computer, you have to **follow the
instructions in [shim.md](shim.md)** to achieve this. These steps cannot be
automated, that's the whole point of Secure Boot. Although HackBGRT is self-signed
with a certificate, it's not advisable to enroll foreign certificates directly into
your firmware.
The *shim* boot loader is maintained by Red Hat, Inc, and the included signed copy
of *shim* is extracted from Debian GNU/Linux – many thanks to the maintainers! For
copyright information, see [shim-signed/COPYRIGHT](shim-signed/COPYRIGHT).
* Edit the `config.txt` and `splash.bmp` (or any other images) to your needs.
* Run `setup.exe batch COMMANDS` as administrator, with some of the following
commands:
* `install` – copy the files but don't enable.
* `enable-entry` – create a new EFI boot entry.
* `disable-entry` – disable the EFI boot entry.
* `enable-bcdedit` – use `bcdedit` to create a new EFI boot entry.
* `disable-bootmgr` – use `bcdedit` to disable the EFI boot entry.
* `enable-overwrite` – overwrite the MS boot loader.
* `disable-overwrite` – restore the MS boot loader.
* `skip-shim` – skip *shim* when installing.
* `allow-secure-boot` – ignore Secure Boot in subsequent commands.
* `allow-bitlocker` – ignore BitLocker in subsequent commands.
* `allow-bad-loader` – ignore bad boot loader configuration in subsequent
commands.
* `disable` – run all relevant `disable-*` commands.
* `uninstall` – disable and remove completely.
* `show-boot-log` – show the debug log collected during boot (if `log=1` is
set in `config.txt`).
* For example, run `setup.exe batch install allow-secure-boot enable-overwrite` to
copy files and overwrite the MS boot loader regardless of Secure Boot status.
To install purely on Linux, you can install with `setup.exe dry-run` and then
manually copy files from `dry-run/EFI` to your `[EFI System Partition]/EFI`. For
further instructions, consult the documentation of your own Linux system.
## Configuration
The configuration options are described in `config.txt`, which the installer copies
into `[EFI System Partition]\EFI\HackBGRT\config.txt`.
## Images
The image path can be changed in the configuration file. The default path is `[EFI
System Partition]\EFI\HackBGRT\splash.bmp`.
The installer copies and converts files whose `path` starts with `\EFI\HackBGRT\`.
For example, to use a file named `my.jpg`, copy it in the installer folder (same
folder as `setup.exe`) and set the image path in `config.txt` to `path=\EFI\
HackBGFT\my.jpg`.
If you copy an image file to ESP manually, note that the image must be a 24-bit BMP
file with a 54-byte header. That's a TrueColor BMP3 in Imagemagick, or 24-bit
BMP/DIB in Microsoft Paint.
Advanced users may edit the `config.txt` to define multiple images, in which case
one is picked at random.
## Recovery
If something breaks and you can't boot to Windows, you need to use the Windows
installation disk (or recovery disk) to fix boot issues.
## Building
* Compiler: GCC targeting w64-mingw32
* Compiler flags: see Makefile
* Libraries: gnu-efi