fiano

module
v5.0.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2019 License: BSD-3-Clause

README

fiano

Go-based tools for modifying UEFI firmware.

CircleCI Go Report Card GoDoc CodeCov License

Fiano

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

Directories

Path Synopsis
cmds
fmap
Fmap parses flash maps.
Fmap parses flash maps.
futk
futk is a forth-inspired infterface to utk.
futk is a forth-inspired infterface to utk.
glzma
glzma compresses and decompresses in the same manner as EDK2's LzmaCompress.
glzma compresses and decompresses in the same manner as EDK2's LzmaCompress.
utk
The utk command performs operations on a UEFI firmware image.
The utk command performs operations on a UEFI firmware image.
fittool Module
pkg
compression
Package compression implements reading and writing of compressed files.
Package compression implements reading and writing of compressed files.
fmap
Package fmap parses flash maps.
Package fmap parses flash maps.
guid
Package guid implements the mixed-endian GUID as implemented by Microsoft.
Package guid implements the mixed-endian GUID as implemented by Microsoft.
uefi
Package uefi contents data types for the components found in UEFI and an Parse function for reading an image.
Package uefi contents data types for the components found in UEFI and an Parse function for reading an image.
unicode
Package unicode converts between UCS2 cand UTF8.
Package unicode converts between UCS2 cand UTF8.
utk
Package utk is where the implementation of the utk command lives.
Package utk is where the implementation of the utk command lives.
visitors
Package visitors uses the Visitor interface to recursively apply an operation over the firmware image.
Package visitors uses the Visitor interface to recursively apply an operation over the firmware image.
scripts
checklicenses
Run with `go run checklicenses.go`.
Run with `go run checklicenses.go`.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL