UEFITool Changelog

What's new in UEFITool 0.68.0 Alpha

Nov 6, 2023
  • Bugfix release with minor fixes to several regressions in A67, minor parsing improvements and typo fixes, and updates to GUID database.

New in UEFITool 0.67.0 Alpha (Jun 21, 2023)

  • Changes:
  • new GUID database generated by Linux Vendor Firmware Service, about 3x larger than before, major thanks to @hughsie.
  • Fixes:
  • workaround for MAX_PATH limitation for UEFIExtract in Windows (requires Windows 10 1607 or newer OS version, and a registry change), thanks to @NikolajSchlej.
  • fix for CI/CD pipeline to generate proper Windows x86 builds for UEFIExtract and UEFIFind (they were secretly x64 for several past releases), thanks to @NikolajSchlej.

New in UEFITool 0.66.0 Alpha (Apr 24, 2023)

  • Changes:
  • New guids command for UEFIExtract and an update to default extraction modes to include generation of known GUID database (pairs of GUID/String that can be collected from the input file), thanks to @NikolajSchlej.
  • Update to Qt 6.5.0 (LTS) brough seamless cross-platform UI dark mode support, and proper handling of UI mode update, thanks to @NikolajSchlej.
  • QHexEdit2 widget replaced by QHexView5 for Hex View window. The new widget looks nicer in HiDPI and natively supports dark UI mode. Thanks to @Dax89 for creating it and @NikolajSchlej for integration work.
  • Fixes:
  • lots of small fixes for issues found by fuzzing, thanks to @yeggor and @NikolajSchlej
  • small update to built-in GUID database, thanks to @Tody-Guo

New in UEFITool 0.65.0 Alpha (Feb 26, 2023)

  • New features:
  • Replaced AMI NVAR parser with KaitaiStruct-based one. This is another step towards "minimize manual parsing" goal stated by rewriting FIT/ACM/BootGuard parsers in KS, other NVRAM-related parsers will follow in the next updates.
  • Added fuzzing targets for libFuzzer-compatible and AFL-compatible fuzzers, which already uncovered a treasure throve of issues. Fixes are now in development, will be gradually included in the next updates.
  • Added --help (-h) and --version (-v) to UEFIExtract and UEFIFind, this makes them easier to use in scripts.
  • Fixes:
  • Universal macOS package for UEFITool is an app bundle again, thanks to @makigumo and @mikebeaton for reporting.
  • Unicode text search is working again, thanks to @nightgolfer and @mikebeaton for reporting.
  • UEFIExtract and UEFIFind can again be built with slightly older versions of CMake, thanks to @platomav for reporting.
  • Issues in descriptor and capsule parsing are non-fatal now, thanks to @platomav for reporting.
  • "Extract body" action did not work for some section types.

New in UEFITool 0.64.0 Alpha (Feb 13, 2023)

  • New features:
  • native UI dark mode support provided by switching to Qt6 for all release builds. Confirmed working on Windows 11, macOS 13, Ubuntu 22.04 LTS and FreeBSD 13.1 with Qt 6.4.2. Thanks to @yeggor, @vit9696 and @NikolajSchlej.
  • Windows builds split into modern win64 (using static x64 build of Qt 6.4.2) and legacy win32 (using static x86 build of Qt 5.6.3, supports legacy Windows version down to Windows XP). If you use a modern windows, please try win64 build out, as it might have uncaught 64-bit MSVC-specific bugs. Thanks to @NikolajSchlej.
  • Support for AMI v3 protected ranges hash file. Thanks to @cybojanek for the initial pull request and @NikolajSchlej for the final implementation.
  • Fixes:
  • Qt6 started using sse2 for real, and that uncovered a crash reported by @4e4o and @stuarthayhurst, that then got fixed by @NikolajSchlej.
  • CMake config files lacked install targets for all tools, so cmake --install did not work. Does now thanks to @NikolajSchlej.

New in UEFITool 0.63.0 Alpha (Jan 30, 2023)

  • New features:
  • it is now possible to paste GUIDs in raw EDK2 format into Search window as is without manual re-formatting, thanks to @mikebeaton
  • support for HiDPI displays, thanks to @NikolajSchlej
  • Zlib-compressed sections used on AMI-based boards for AMD CPUs are now supported, thanks to @NikolajSchlej
  • Fixes:
  • several small fixes for crashes, thanks to @yeggor, @hughsie and @NikolajSchlej
  • fix for OpenBSD builds, thanks to @klemensn
  • Notes:
  • had to switch to using a monospace font for the whole UI due to HiDPI requirements. If you don't like the new UI look, please open an issue.

New in UEFITool 0.62.0 Alpha (Jan 30, 2023)

  • New features:
  • support for x86-64 128Kb Recovery Startup AP Data, a special 16 byte entry at a fixed address inside a Padding file in some PEI volumes on x86-64 PCs, thanks to @NikolajSchlej
  • support for AMI ROM Hole files, that need to remain at fixed base addresses inside the image, thanks to @NikolajSchlej
  • Bug fixes and small improvements:
  • fix for a crash during ME FPT parsing, thanks to @retpoline for reporting and @NikolajSchlej for the fix
  • fix for builds on Windows with MinGW, thanks to @llxiaoyuan for reporting and @NikolajSchlej for the fix
  • fix for builds on multiple BSD variants for multiple architectures, thanks to @pkubaj, @vit9696 and @NikolajSchlej
  • fix for C++17 compatibility, thanks to @yeggor
  • fix for CMake files to make UEFITool compatible with Qt 6.0/6.1/6.2, thanks to @NikolajSchlej
  • fix for OSes that call Qt5 qmake not just qmake, but qmake-qt5 (Fedora, FreeBSD), thanks to @ValdikSS
  • fixes to make static analysers happier, thanks to @NikolajSchlej
  • hack to make Kaitai-based parsers do one less memory copy, thanks to @vit9696 and @NikolajSchlej
  • new FlatHub app for UEFITool and the files required for it, thanks to @vulpes2

New in UEFITool 0.61.0 Alpha (Sep 11, 2022)

  • This huge release (over 9000 lines of new code) finally adds support for Intel BootGuard v2 structures (that @prop263 made a PR for nearly 2 years ago), reimplemented from scratch using Kaitai Struct.
  • Other changes included in this release:
  • improved UEFITool icon for macOS build, thanks to @vit9696
  • Intel BootGuard v1 and Intel ACM parsers got replaced by Kaitai-based ones, thanks to @NikolajSchlej
  • added support for Meson builds for UEFIExtract and UEFIFind, thanks to @hughsie
  • added support for CMake builds for UEFITool (requires Qt6), thanks to @NikolajSchlej
  • added more Lenovo-specific GUIDs to the built-in GUID database, thanks to @crass
  • added several new static analysers (PVS-Studio, CodeQL, SonarCloud) to CI/CD pipeline, fixes most of the issues spotted by them, thanks to @NikolajSchlej

New in UEFITool 0.60.0 Alpha (Aug 29, 2022)

  • Added support for parsing some some HP images that use EFI_GUIDED_SECTION_LZMA_HP GUID for their LZMA-compressed sections, thanks to @yeggor
  • Added support for "Extract Uncompressed..." and "Uncompressed Hex View..." actions in UEFITool, both are useful in expecting the raw uncompressed data of compressed items, and will help catch and fix some otherwise invisible issues like #178, thanks to @NikolajSchlej
  • Added support for proper parsing of ME File Partition Table header version 2.1, improved parsing of the previous versions 1.0 and 2.0, thanks to @NikolajSchlej and @platomav
  • Fixed CICD, updated its configuration to use newer runners, fixed some Coverity warnings found because it's working again, thanks to @vit9696 and @NikolajSchlej
  • Built Qt 5.6.3 as universal library for macOS, and updated unixbuild.sh and CICD to generate unversal binaries instead of just x86-64 ones for macOS, thanks to @vit9696 and @NikolajSchlej

New in UEFITool 0.59.0 Alpha (Oct 14, 2021)

  • Fixed CPLD extension area parser hang
  • Improved ME parsing with the help of MEParser
  • Added Qt6 compatibility for user builds, thanks to @vampirecat35
  • Changed prebuilt Linux binaries to require Ubuntu 20.04
  • Fixed multiple parser issues with Z590 images, thanks to @joevt
  • Added GigaDevice GD25LQ16V identifier, thanks to @realnickel
  • Added more recognised GUID file names, thanks to @assafcarlsbad

New in UEFITool 0.58.0 Alpha (Nov 9, 2020)

  • Fixes several crashes with special Boot Guard params
  • Fixes parsing of several Lenovo firmwares

New in UEFITool 0.28.0 (Mar 26, 2020)

  • Added 'Do not rebuild' support for volumes
  • Added support to parse/reconstruct LZMAF86 sections
  • Added new EIST lock patches for UEFIPatch
  • Fixed mishandling trailing newline in UEFIPatch

New in UEFITool 0.57.0 Alpha (Mar 26, 2020)

  • Fixed FIT entry engine checksum (#189)
  • Fixed infinite loop due to 0-sized volume files (#191)
  • Fixed crashes when parsing certain firmwares images
  • Fixed CPD signature verification
  • Fixed microcode detection (#194)
  • Added support to parse LZMAF68 sections (#197)
  • Allowed to use enter/return key within list widgets to navigate (#200)
  • Fixed window full screen mode reset after closing the app (#202)
  • Added parent information printing for found item (#203)

New in UEFITool 0.27.0 (Dec 30, 2019)

  • Added support for manual patches to UEFIPatch
  • Fixed issues with explicit rebuild

New in UEFITool 0.56.0 Alpha (Dec 30, 2019)

  • Add support for NVRAM_NVAR_BB_DEFAULTS_FILE_GUID (#71)
  • Add Intel ME parser
  • Add reset vector information
  • Improve ucode parser
  • Fix UEFIExtract extraction directory name
  • Fix mishandling empty microcode entries
  • Fix mishandling TE image base
  • Fix Intel legacy LZMA support

New in UEFITool 0.55.0 Alpha (Feb 11, 2019)

  • Fixes #158, UEFITool and UEFIFind failed to lookup pattern crossing header/body boundary
  • Fixes #159, filter out more symbols in fileanems, which are prohibited by different filesystems
  • Fixes #163, brining support for parsing NVRAM_NVAR_PEI_EXTERNAL_DEFAULTS_FILE_GUID
  • Add more known file GUIDs
  • Add basic support for FMP images

New in UEFITool 0.54.0 Alpha (Feb 11, 2019)

  • Add custom LZMA dictionary size support
  • Add go to local offset functionality
  • Add ability to generate guid database from firmware
  • Add more file GUIDs
  • Add more SPI chip identifiers
  • Fix one more case with file duplicates during extraction

New in UEFITool 0.26.0 (Feb 11, 2019)

  • Implement custom LZMA dictionary size support, fixes #154

New in UEFITool 0.53.0 Alpha (Nov 23, 2018)

  • GZip unpack support
  • Fixes for #145 (for real)

New in UEFITool 0.25.1 (Jul 16, 2018)

  • Fixed offset updates at image replacement (#137)

New in UEFITool 0.51.0 Alpha (Jun 14, 2018)

  • Unified version scheme across the tools
  • Improved SPI chip recognition
  • Improved UEFIExtract to allow extracting only specialised data (body, header, info, file)
  • Improved UEFIExtract to allow passing the destination folder
  • Improved UEFIExtract to look for SubGUIDs
  • Changed UEFIFind argument order (fw image is now passed first)

New in UEFITool 0.25.0 (Jun 13, 2018)

  • UEFITool and subtools (UEFIPatch, UEFIReplace, etc.) versioning is now unified.
  • UEFIReplace got extended to support:
  • dedicated output path;
  • matching subguids;
  • performing unmodified replacements.

New in UEFITool 0.24.0 (May 9, 2018)

  • Adds descriptor version information for Intel images
  • Adds an extra patches.txt optional argument to UEFIPatch
  • Adds several other patches to UEFIPatch in patches-misc.txt (see #116, #123)
  • Fixes UEFIPatch handling of Coffee Lake images
  • Minor bugfixes

New in UEFITool 0.50.0 Alpha (May 9, 2018)

  • Adds descriptor version information for Intel images
  • Adds offset value to ffsreport
  • Minor bugfixes

New in UEFITool 0.23.1 (May 5, 2018)

  • Fixes compressed image extraction failure on macOS.

New in UEFITool 0.22.1 (Dec 11, 2017)

  • multiple FFSv3 support fixes, thanks to @osresearch
  • fixed removal of FFS files with opposite EP bit value
  • disabled creation of large sections (too buggy now, will be fixed later)

New in UEFITool 0.40.0 Alpha (Mar 9, 2017)

  • Decoding of JEDEC chip IDs and LZMAF86 sections support added in A33
  • GoToOffset dialog (Ctrl+G) and CPU microcode info added in A35
  • Internal GUID database (override in runtime also possible) added in A40
  • Various bug fixes

New in UEFITool 0.30.0 Alpha 27 (Apr 21, 2016)

  • Fixed "Extract as is" not including extended header of NVAR enties
  • NVAR external defaults file is now parsed properly
  • Fixed an alignment problem with "Extract uncompressed..." of multiple sections
  • Various small bug fixes

New in UEFITool 0.30.0 Alpha 26 (Apr 19, 2016)

  • New alpha release of new_engine branch.
  • Changes:
  • NVRAM parsing code refactored, small NVAR and EVSA parsing issues are fixed
  • More information about NVRAM-related tree items
  • Fixed some rare bugs thanks to Coverity static analyzer

New in UEFITool 0.30.0 Alpha 24 (Apr 8, 2016)

  • parser for all NVRAM formats known to me, including AMI NVAR, TianoCore VSS (Normal, Authenticated, Apple CRC and _FDC), EVSA and Apple Fsys.
  • built with Qt 5.6
  • still no editing, because of builder code state

New in UEFITool 0.30.0 Alpha 23 (Mar 29, 2016)

  • added parser of NVAR and VSS (normal, authenticated and Apple variations) NVRAM formats
  • built with Qt 5.6
  • still no editing, because of builder code state

New in UEFITool 0.30.0 Alpha 22 (Mar 22, 2016)

  • New alpha release of new_engine branch.
  • Changes:
  • added parser of NVAR NVRAM format
  • more NVRAM parsing soon
  • still no editing, because of builder code state

New in UEFITool 0.21.5 (Dec 14, 2015)

  • Solved crashes spotted in #39 (Fix some integer and size issues).

New in UEFITool 0.21.4 (Oct 5, 2015)

  • Another buxfix release thanks to Lordkag's #37 report.
  • Changes:
  • binaried rebuilt to apply a fix to #34, this time for good
  • solved a bug with Gigabyte-specific descriptor handling
  • solved a major bug introduced in 0.21.3/0.3.7 release

New in UEFITool 0.21.2 (Oct 2, 2015)

  • Another bug fix release
  • Changes:
  • fixed a bug with tailed files extraction and replacing (#35)
  • fixed a bug with wrong source of padding after all Intel image regions (#34)

New in UEFITool 0.21.0.1 (Sep 7, 2015)

  • added support for new flash descriptor format used on Skylake-based systems, thanks to lordkag for #32.
  • solved a bug with incorrect volume replace (image couldn't be generated due to volume free space items inserted into a wrong item).
  • solved a bug with Aptio capsule header parsing introduced in 0.20.8.

New in UEFITool 0.20.8 (Aug 31, 2015)

  • Intel images with data after the last region are now parsed properly.
  • Pressing Cancel on "Open in new window" now works es expected.
  • Intel, Lenovo and Toshiba-specific UEFI capsule GUIDs are "known" now.
  • Fixed a bogus "File with invalid size" message while working on almost full volumes (free space size is less than 24 bytes).

New in UEFITool 0.20.7 (Aug 14, 2015)

  • added new action "Open in new window..."
  • added LICENSE file for the whole project

New in UEFITool 0.20.6 (Jul 6, 2015)

  • added automatic recalculation for Apple-specific free space offset value stored in volume's ZeroVector
  • ZeroVectorCRC renamed to AppleCRC32
  • Unused parsingData-related code removed from 0.20.x codebase.

New in UEFITool 0.20.5 (May 18, 2015)

  • solved a bug with double inclusion of RAW file header on reconstruction
  • file GUID parameter support returned to UEFIExtract, which is based on new_engine branch now

New in UEFITool 0.20.4 (Feb 20, 2015)

  • Another bugfix release of 0.20.x branch
  • Changes:
  • solved an endless loop on parsing a malformed DEPEX section
  • checksum checking added for unknown volumes

New in UEFITool 0.20.3 (Feb 18, 2015)

  • Intel signed section identified as EFI_FIRMWARE_CONTENTS_SIGNED GUIDed section
  • solved a bug with no element for "Non-UEFI data inside pad-file" message
  • "Non-UEFI data inside volume's free space" message now points to the data item
  • HP postcode section renamed to Insyde postcode (found in non-HP images)
  • various small fixes
  • region replace works again

New in UEFITool 0.20.2 (Feb 13, 2015)

  • Intel signed section identified as EFI_FIRMWARE_CONTENTS_SIGNED GUIDed section
  • Solved a bug with no element for "Non-UEFI data inside pad-file" message
  • "Non-UEFI data inside volume's free space" message now points to the data item
  • HP postcode section renamed to Insyde postcode (found in non-HP images)
  • Various small fixes

New in UEFITool 0.20.1 (Feb 7, 2015)

  • added support for correct handling of non-UEFI data inside volume's free space.
  • added support for parsing non-empty pad-files (data preservation for such files will be done later)
  • reverted some code changes from engine 0.20.0 release
  • new "Free space" item type added, no actions are possible yet but they will be added later
  • machine type of PE/TE images is now a text string instead of binary value
  • solved a bunch of typos in items information

New in UEFITool 0.20.0 (Feb 2, 2015)

  • Major new release after a big refactoring round:
  • added "Replace As Is" and "Replace Body" actions for volumes, "Remove" actions was removed due to incompatibility with replace.
  • added better support for Intel signature inside a special GUID-defined section with processing bit set
  • added support for unsigned Aptio capsule (just another GUID)
  • some more volume GUID added to the list of known as FFSv2 volumes (they can now be parsed)
  • added parsing of TE and PE headers,some header info is added to Information panel
  • full size field returned to Information panel
  • hexadecimal numbers format changed from 0xAB to ABh
  • AppleCRC renamed to ZVCRC
  • many minor changes to info strings for almost any tree element

New in UEFITool 0.19.6 (Jan 26, 2015)

  • added support for firmware volumes with CRC32 stored in ZeroVector (Apple UEFI feature) ZeroVector included to FV information
  • added new volume types AppleCRC, AppleCRC Boot and AppleCRC Unknown
  • added support for HP POSTCode sections
  • size information split into header size and body size
  • decimal sizes are added, shown in braces after hexadecimal sizes
  • corrected small bug with Extract Body action being enabled for items with empty body

New in UEFITool 0.19.4 (Nov 26, 2014)

  • solved a crash during EFI1.1/Tiano decompression reported by night199k

New in UEFITool 0.19.2 (Nov 15, 2014)

  • Changes:
  • Major bug is solved in EFI11/Tiano compression handling, that could lead to image corruption in rare cases
  • Extended volume header size shows correctly
  • Click on a message now centers the tree view on the element linked to the message

New in UEFITool 0.19.1 (Nov 10, 2014)

  • hex numbers are printed uppercase
  • empty paddings are shown as Empty(0x00) or Empty(0xFF)
  • volume size is determined by FvLength header field only
  • spaces are now allowed for hex pattern search
  • another messages clean-up

New in UEFITool 0.9.3 (Nov 21, 2013)

  • fixed file state recreation
  • Quit action is working now
  • code compiles with XCode 5 without modifications
  • minor bugfix