Skip to content

Latest commit

 

History

72 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

boot-logo

Build Version Size

A small command-line utility for extracting and replacing the boot logo embedded in OVMF firmware files.

Features ✨

  • Replaces embedded logos with a custom image
  • Supports BMP, PNG, JPG and JPEG images
  • Preserves all unchanged firmware sections
  • Extracts bitmaps from firmware and FFS files
  • Displays firmware and embedded logo information
  • Available for both AMD64 and ARM64 platforms

Usage 🚀

Replace the boot logo 🖼️

boot-logo logo.png firmware.fd

The input image may be a BMP, PNG, JPG or FFS file.

By default, the supplied firmware file is modified in place.

To write the modified firmware to a different file instead:

boot-logo replace logo.jpg firmware.fd --output modified.fd

Extract the boot logo 📤

boot-logo extract firmware.fd

By default, the extracted logo is written to:

firmware.fd.logo.bmp

Specify a different output path:

boot-logo extract firmware.fd --output logo.bmp

A logo can also be extracted from a standalone FFS file:

boot-logo extract LogoDxe.ffs

Show firmware information ℹ️

boot-logo info firmware.fd

The info command displays:

  • Firmware path, type and size
  • LogoDxe GUID
  • Embedded image format
  • Image dimensions and color depth
  • Embedded image size
  • Whether logo replacement is supported

Example output:

Firmware: firmware.fd
Firmware type: UEFI firmware
Firmware size: 4194304 bytes
LogoDxe GUID: F74D20EE-37E7-48FC-97F7-9B1047749C69
Image format: HII 24-bit bitmap
Image dimensions: 640x480
Image depth: 24 bits
Embedded image size: 921604 bytes
Replacement supported: true

Information can also be emitted as structured JSON:

boot-logo info firmware.fd --json

The command also supports standalone FFS files:

boot-logo info LogoDxe.ffs

Verify firmware compatibility ✅

boot-logo verify firmware.fd

The verify command checks that the file:

  • Is a supported UEFI firmware image or FFS file
  • Contains exactly one supported LogoDxe file
  • Contains a valid embedded boot logo
  • Can be decoded and converted for safe replacement

A successful verification prints:

Firmware verified successfully: firmware.fd

The command exits with a non-zero status and prints an error when verification fails, making it suitable for scripts and CI workflows.

Options ⚙️

-o, --output <path>  Write to a different output path
    --json           Print info as JSON
-q, --quiet          Suppress the output
-h, --help           Show usage information
-v, --version        Show version information

Firmware support 💾

The tool supports complete OVMF firmware images and standalone FFS files containing the standard TianoCore LogoDxe file:

F74D20EE-37E7-48FC-97F7-9B1047749C69

The tool expects exactly one valid bitmap inside this file. Firmware that does not match this layout is rejected instead of being modified blindly.

Installation 📦

Download the binary for your architecture from the latest release:

boot-logo-amd64.bin
boot-logo-arm64.bin

Make it executable:

chmod +x boot-logo-amd64.bin

Optionally install it system-wide:

sudo install -m 755 boot-logo-amd64.bin /usr/local/bin/boot-logo

Stars 🌟

Stargazers

Releases

Used by

Contributors

Languages