virt-firmware


Namevirt-firmware JSON
Version 24.2 PyPI version JSON
download
home_page
Summarytools for virtual machine firmware volumes
upload_time2024-02-15 22:12:22
maintainer
docs_urlNone
authorGerd Hoffmann
requires_python
licenseGPLv2
keywords ovmf armvirt edk2 aws
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# 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.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "virt-firmware",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "ovmf,armvirt,edk2,aws",
    "author": "Gerd Hoffmann",
    "author_email": "kraxel@redhat.com",
    "download_url": "https://files.pythonhosted.org/packages/c9/f7/d089544b075ea5409081be7c4eb22c04dbffbe62d47e1782f9ee2f34f3ef/virt-firmware-24.2.tar.gz",
    "platform": null,
    "description": "\n# Tools for ovmf / armvirt firmware volumes\n\nThis is a small collection of tools for edk2 firmware images.  They\nsupport decoding and printing the content of firmware volumes.\nVariable stores (OVMF_VARS.fd) can be modified, for example to enroll\nsecure boot certificates.\n\n\n## virt-fw-dump\n\nDecodes and prints the content of firmware volumes.\n\nUsage: `virt-fw-dump -i <file>`.\n\nTry `virt-fw-dump --help` for more info, there are some options to\nfilter output.\n\n\n## virt-fw-vars\n\nPrint and edit variable store volumes.\nCurrently focused on enrolling certificates and enabling secure boot.\n\nPrint variables: `virt-fw-vars -i <file> --print`.\n\nEnroll certificates:\n```\nvirt-fw-vars \\\n    --input <template> \\\n    --output <vars> \\\n    --enroll-redhat \\\n    --secure-boot\n```\nTry `virt-fw-vars --help` for more usage information.\n\nvirt-fw-vars can handle edk2 variable stores (which are flash firmware\nvolumes) and AWS uefi variable stores.  The input format is detected\nautomatically and the same format is used for output.\n\nWorking with edk2 variable stores requires a firmware volume as input.\nTypically the OVMF_VARS.fd file created when building OVMF is used for\nthat (it is an empty variable store).\n\naws variable stores can also be created from scratch and written to a\nfile with using the `--output-aws` option.\n\n\n## virt-fw-sigdb\n\nPrint and edit efi signature database files, example:\n```\nvirt-fw-sigdb -i /etc/pki/ca-trust/extracted/edk2/cacerts.bin --print\n```\nTry `virt-fw-sigdb --help` for more usage information.\n\n\n## host-efi-vars\n\nRead efi variables from linux efivarfs and decode/print them.\n\n\n## kernel-bootcfg\n\nManage efi boot configuration for UKIs (unified kernel images) when\nusing direkt boot (without boot loader like grub or systemd-boot).\n\n\n## pe-dumpinfo\n\nInformation dump for pe (the format used by efi) binaries.\n\n\n## pe-listsigs\n\nList signatures and certificate chain for pe binaries.\nCan also extract certificates & signatures.\n\n\n## using the python modules\n\nThere isn't much documentation yet, sorry.  Best code reads to get\nstarted are probably the test cases (see `tests/tests.py`) and the\ncode for the virt-fw-vars utility (see `virt/firmware/vars.py`).\n\n\n## install\n\nRelease: `pip3 install virt-firmware`\n\nSnapshot: `pip3 install git+https://gitlab.com/kraxel/virt-firmware.git`\n\n\n## TODO list\n\n * Add more documentation.\n",
    "bugtrack_url": null,
    "license": "GPLv2",
    "summary": "tools for virtual machine firmware volumes",
    "version": "24.2",
    "project_urls": {
        "GitLab": "https://gitlab.com/kraxel/virt-firmware"
    },
    "split_keywords": [
        "ovmf",
        "armvirt",
        "edk2",
        "aws"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c486d74b854e7898c0a79859a3915815588ba6584e11cb78dda36cad1526c070",
                "md5": "fd24a55a406afa7fd01edd20b2ba6d23",
                "sha256": "b76a8a2d120efa3eb7f3e54bcb40e00845354bad95f20647b79d204dea534433"
            },
            "downloads": -1,
            "filename": "virt_firmware-24.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fd24a55a406afa7fd01edd20b2ba6d23",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 109200,
            "upload_time": "2024-02-15T22:12:19",
            "upload_time_iso_8601": "2024-02-15T22:12:19.604053Z",
            "url": "https://files.pythonhosted.org/packages/c4/86/d74b854e7898c0a79859a3915815588ba6584e11cb78dda36cad1526c070/virt_firmware-24.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c9f7d089544b075ea5409081be7c4eb22c04dbffbe62d47e1782f9ee2f34f3ef",
                "md5": "7ded1b8c58febe7f8f7577de9c38b254",
                "sha256": "6ef93730880f63a0c9fb2d1e2901cb7df0a53633c010fec0275e6b14e6e23228"
            },
            "downloads": -1,
            "filename": "virt-firmware-24.2.tar.gz",
            "has_sig": false,
            "md5_digest": "7ded1b8c58febe7f8f7577de9c38b254",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 110844,
            "upload_time": "2024-02-15T22:12:22",
            "upload_time_iso_8601": "2024-02-15T22:12:22.046520Z",
            "url": "https://files.pythonhosted.org/packages/c9/f7/d089544b075ea5409081be7c4eb22c04dbffbe62d47e1782f9ee2f34f3ef/virt-firmware-24.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-15 22:12:22",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "kraxel",
    "gitlab_project": "virt-firmware",
    "lcname": "virt-firmware"
}
        
Elapsed time: 0.21191s