Skip to main content

tools for virtual machine firmware volumes

Project description

Tools for ovmf / armvirt firmware volumes

This is a small collection of tools for edk2 firmware images. They support decoding and printing the content of firmware volumes. Variable stores (OVMF_VARS.fd) can be modified, for example to enroll secure boot certificates.

virt-fw-dump

Decodes and prints the content of firmware volumes.

Usage: virt-fw-dump -i <file>.

Try virt-fw-dump --help for more info, there are some options to filter output.

virt-fw-vars

Print and edit variable store volumes. Currently focused on enrolling certificates and enabling secure boot.

Print variables: virt-fw-vars -i <file> --print.

Enroll certificates:

virt-fw-vars \
    --input <template> \
    --output <vars> \
    --enroll-redhat \
    --secure-boot

Try virt-fw-vars --help for more usage information.

virt-fw-vars can handle edk2 variable stores (which are flash firmware volumes) and AWS uefi variable stores. The input format is detected automatically and the same format is used for output.

Working with edk2 variable stores requires a firmware volume as input. Typically the OVMF_VARS.fd file created when building OVMF is used for that (it is an empty variable store).

aws variable stores can also be created from scratch and written to a file with using the --output-aws option.

virt-fw-sigdb

Print and edit efi signature database files, example:

virt-fw-sigdb -i /etc/pki/ca-trust/extracted/edk2/cacerts.bin --print

Try virt-fw-sigdb --help for more usage information.

host-efi-vars

Read efi variables from linux efivarfs and decode/print them.

kernel-bootcfg

Manage efi boot configuration for UKIs (unified kernel images) when using direkt boot (without boot loader like grub or systemd-boot).

pe-dumpinfo

Information dump for pe (the format used by efi) binaries.

pe-listsigs

List signatures and certificate chain for pe binaries. Can also extract certificates & signatures.

using the python modules

There isn't much documentation yet, sorry. Best code reads to get started are probably the test cases (see tests/tests.py) and the code for the virt-fw-vars utility (see virt/firmware/vars.py).

install

Release: pip3 install virt-firmware

Snapshot: pip3 install git+https://gitlab.com/kraxel/virt-firmware.git

TODO list

  • Add more documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

virt_firmware-24.7.tar.gz (114.2 kB view details)

Uploaded Source

Built Distribution

virt_firmware-24.7-py3-none-any.whl (109.9 kB view details)

Uploaded Python 3

File details

Details for the file virt_firmware-24.7.tar.gz.

File metadata

  • Download URL: virt_firmware-24.7.tar.gz
  • Upload date:
  • Size: 114.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.4

File hashes

Hashes for virt_firmware-24.7.tar.gz
Algorithm Hash digest
SHA256 45cf3b364e12ca5c79fe3dcb5550c234592ff2162ec89285a6db02d6403777bf
MD5 917bb3b0f36edaf4b99bc79112ea4e75
BLAKE2b-256 a25ddebd22c4ec318f7b5f3b415e62962db197584a7b5c6fa454863cf0ce1982

See more details on using hashes here.

File details

Details for the file virt_firmware-24.7-py3-none-any.whl.

File metadata

  • Download URL: virt_firmware-24.7-py3-none-any.whl
  • Upload date:
  • Size: 109.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.4

File hashes

Hashes for virt_firmware-24.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6f91c55094469061fb01f19fca2b82e13199c1676c1de4445f873b04ce77bb8b
MD5 e5c9b310177337c091b6304f004fb3f8
BLAKE2b-256 63288f499be77cfbe03a25a3d34dd4be9c1fafab71db268515a5919bc6aee3a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page