Skip to content
forked from linuxboot/fiano

Go-based tools for modifying UEFI firmware

License

Notifications You must be signed in to change notification settings

portalgun-io/fiano

 
 

Repository files navigation

fiano

Go-based tools for modifying UEFI firmware.

CircleCI Go Report Card GoDoc CodeCov License

Fiano

Contributing

For information about contributing, including how we sign off commits, please see CONTRIBUTING.md

UTK: Generic UEFI tool kit meant to handle rom images

Example usage:

# For a comprehensive list of commands
utk -h

# Display the image in a compact table form:
utk winterfell.rom table

# Summarize everything in JSON:
utk winterfell.rom json

# List information about a single file in JSON (using regex):
utk winterfell.rom find Shell

# Dump an EFI file to an ffs
utk winterfell.rom dump DxeCore dxecore.ffs

# Insert an EFI file into an FV near another Dxe
utk winterfell.rom insert_before Shell dxecore.ffs save inserted.rom
utk winterfell.rom insert_after Shell dxecore.ffs save inserted.rom

# Insert an EFI file into an FV at the front or the end
# "Shell" is just a means of specifying the FV that contains Shell
utk winterfell.rom insert_front Shell dxecore.ffs save inserted.rom
utk winterfell.rom insert_end Shell dxecore.ffs save inserted.rom

# Remove a file and pad the firmware volume to maintain offsets for the following files
utk winterfell.rom remove_pad Shell save removed.rom

# Remove two files by their GUID without padding and replace shell with Linux:
utk winterfell.rom \
  remove 12345678-9abc-def0-1234-567890abcdef \
  remove 23830293-3029-3823-0922-328328330939 \
  replace_pe32 Shell linux.efi \
  save winterfell2.rom

# Extract everything into a directory:
utk winterfell.rom extract winterfell/

# Re-assemble the directory into an image:
utk winterfell/ save winterfell2.rom

FMAP: Parses flash maps.

Example usage:

  • fmap checksum [md5|sha1|sha256] FILE
  • fmap extract i FILE
  • fmap jget JSONFILE FILE
  • fmap jput JSONFILE FILE
  • fmap summary FILE
  • fmap usage FILE
  • fmap verify FILE

Installation

# Golang version 1.11 is required:
go version

# For UTK:
go get github.com/linuxboot/fiano/cmds/utk

# For fmap:
go get github.com/linuxboot/fiano/cmds/fmap

The executables are installed in $HOME/go/bin.

Updating Dependencies

# Latest released version of dep is required:
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
dep ensure

About

Go-based tools for modifying UEFI firmware

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%