Skip to content

BOOT_LOGO

VMAware hashes the guest's boot logo and compares it against two known constants:

switch (hash) {
    case 0x110350C5: return core::add(brand_enum::QEMU);   /* TianoCore EDK2 */
    case 0x87c39681: return core::add(brand_enum::HYPERV);
    default:         return false;
}

Fix

steps/edk2.py replaces MdeModulePkg/Logo/Logo.bmp with the host's BGRT image (/sys/firmware/acpi/bgrt/image) before the build. The host BGRT passes EDK2's decoder rules (see Firmware: boot logo BMP rules): 505×98, 24 bpp, uncompressed.

The hash is not taken over the file

Windows does not return Logo.bmp directly. NtQuerySystemInformation (SystemBootLogoInformation, class 140) returns the BGRT bitmap that OVMF re-encodes from Logo.bmp at boot, at different dimensions and colour depth than the source file. The resulting hash cannot be predicted from the source bitmap; a logo change is confirmed by booting and re-running VMAware, not by hashing the file.