Skip to content

Releases: fwup-home/fwup

v1.16.0

01 May 13:12

Choose a tag to compare

This release makes it possible for firmware updates to request larger block
cache sizes. Earlier versions fixed the cache at 8 MB which is too small for
many delta firmware update use cases. The visible effect is that delta firmware
updates become extremely slow (sometimes >1 hour) due to thrashing when their
source window is set to values much larger than 8 MB.

  • New features

    • Adjustable block cache specified in the fwup.conf. See
      block-cache-size-mb. Thanks to @kybishop
    • Support dm-crypt aes-xts-plain64 encrypted partitions
  • Bug fixes

    • Fix AES compilation on 32-bit ARMv8 like a Raspberry Pi 3 with a 32-bit OS
    • Fix compilation on PowerPC Macs. Thanks to @barracuda156

v1.15.1

25 Apr 03:31

Choose a tag to compare

This release addresses some amazingly poor performance when updating encrypted
firmware partitions. It was most noticeable when using delta firmware updates
due to a combination of repeated decryption and a slow AES implementation.

  • Improvements
    • Significantly improve AES performance by replacing Tiny-AES-C with Mbed
      TLS's AES implementation. Thanks to @kybishop
    • Decrypt blocks once rather than repeatedly when running firmware delta
      updates. Thanks to @kybishop
    • Bump libarchive to 3.8.5 and zlib to 1.3.2 for static builds

v1.15.0

21 Dec 17:34

Choose a tag to compare

  • New features

    • Added require-execute to be able to run an arbitrary program to determine
      whether or not to run a task. This requires the --unsafe flag to use.
    • Added firmware nicknames like guitar-weather so that it's easier to refer
      to firmware files rather than by using UUIDs. Nicknames are computed from
      the UUID and don't affect .fw files. They're not guaranteed unique, so
      continue to use the UUIDs for uniqueness guarantees. See the meta-nickname
      metadata. You can still refer to firmware versions. This handles the
      development and debug cases where you're not regularly updating version numbers.
  • Bug fixes

    • Fixed success message when creating public/private signing key pairs. It
      previously printed out the wrong filename on some systems.

v1.14.0

02 Nov 00:09

Choose a tag to compare

NOTE: This release changes metadata stored in the .fw files in a way that
doesn't affect any functionality, but is visible in the firmware UUID
construction. In other words if you use the exact same inputs with this version
of fwup and an older version, you'll get different UUIDs. This was done to
prevent compatibility issues between fwup versions when parsing metadata that
needed to change from being an integer to a string for holding very large
numbers.

  • Improvements
    • U-Boot environment blocks can now be written to offsets beyond 2 GB. Prior
      versions would likely silently fail
    • Don't unconditionally double quote strings in the metadata file. This allows
      more flexibility in changing fields to strings when they go beyond what's
      supported by libconfuse while not breaking backward compatibility.

v1.13.2

20 Jul 21:48

Choose a tag to compare

  • Improvements
    • Improve progress reporting for delta updates. Previously progress was
      updated after processing xdelta3 window size chunks (default is 8 MB). Now
      progress is updated every 128 KB regardless of window size to avoid the long
      stalls.

v1.13.1

19 Jul 21:03

Choose a tag to compare

  • Bug fixes
    • Allow images to be expanded after initial creation if they're regular files.
      Previously this resulted in an error.
    • Fix error handling triggered by a delta firmware update that resulted in a
      hang. In theory, this should be possible to trigger without a delta
      firmware, but I wasn't able to get it to happen.
    • Fix verification error on delta firmware image that had an empty entry.

v1.13.0

06 Jun 14:30

Choose a tag to compare

  • New features

    • Support applying firmware deltas that read directly from encrypted source
      partitions. This adds delta-source-raw-options where you can add details,
      but most likely add environment variables to allow secrets to be passed when
      applying the update.
  • Package updates

    • libarchive 3.7.9 (static builds only)

v1.12.0

23 Dec 01:06

Choose a tag to compare

  • New features

    • Add 4-parameter fat_cp function to support copying files between FAT
      partitions. The previous (and still supported) 3-parameter fat_cp required
      files to be on the same partition.
    • Support extended partitions in master boot records. This makes it possible
      to have more than four partitions without switching to GPT partitions. See
      README.md for details.
    • Add reboot-param function for setting parameters to be sent to reboot.
      This is useful for implementing the Raspberry Pi tryboot functionality
      within fwup.
  • Improvements

    • Update require-path-on-device on Linux to be able to traverse device
      mapper block devices. This allows encryption and other device mapper
      features to be in use when checking where file systems are mounted.
      Workarounds shouldn't be needed any more.
  • Bug fixes

    • Fix raw_memset max size to support 64-bit sizes. Thanks to @joaohf.
    • Fix assert-size-* error output messages for large sizes. Thanks to @mscandal.
    • Fix fat_rm incorrectly failing when the file has already been removed
      because it's containing directory doesn't exist.

v1.11.0

02 Oct 23:30

Choose a tag to compare

  • Improvements

    • Use the file size of regular files to determine the end of the image. This
      makes it possible to expand the final file system partition when working
      with Qemu disk images. It could break scripts that were expecting regular
      files to be able to grow arbitrarily. Those will need to be updated to pad
      the image files as needed.
  • Package updates

    • monocypher 3.1.3
    • libarchive 3.7.6 (static builds only)

v1.10.2

26 Apr 01:41

Choose a tag to compare

There is a regression with signed delta firmware updates. The TL;DR is that it
probably doesn't affect anyone, and if it did affect you, I think you should
have noticed firmware validation breaking by now. Please follow
#227 for updates.

RPMs are no longer distributed due to the packager I was using, FPM, no longer
running on the Ubuntu versions being used on CI. Since I don't use RPM-based
distros, I didn't not feel comfortable switching. Debian packages are still
available. Help would be appreciated for RPMs.

  • Improvements

    • Don't add superfluous timestamps to zip files (.fw files are zip files). It
      turns out that most timestamp fields could be removed completely.
    • Don't compress archive signatures
  • Bug fixes

    • When scanning attached media, filter out devices under 1 MiB since they're
      almost certainly not what's wanted. It's still possible to use these
      devices, but it won't be automatic any more.
  • Package updates

    • libarchive 3.7.3