Go-based tools for modifying UEFI firmware.
Example usage:
# Dump everything to JSON:
utk winterfell.rom json
# Dump a single file to JSON (using regex):
utk winterfell.rom find Shell
# Dump GUIDs and sizes to a compact table:
utk winterfell.rom table
# Extract everything into a directory:
utk winterfell.rom extract winterfell/
# Re-assemble the directory into an image:
utk winterfell/ save winterfell2.rom
# Remove two files by their GUID 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
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
# 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
# Latest released version of dep is required:
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
dep ensure