#!/bin/sh k=$1 e=$2 o=$3 if [ $# -ne 3 ]; then echo "Usage $0: key_dir efi_dir output_image_file" exit 1; fi t=/var/tmp/tmpusb.$$.img if [ ! -d "$k" ]; then echo "Failed to find directory $k" exit 1; fi if [ ! -d "$e" ]; then echo "Failed to find directory $e" exit 1; fi dd if=/dev/zero of=${o} bs=512 count=102096 parted ${o} "mktable gpt" parted ${o} "mkpart p fat32 2048s 102049s" parted ${o} "toggle 1 boot" parted ${o} "name 1 UEFI" dd if=/dev/zero of=${t} bs=512 count=100000 mkfs -t vfat -n UEFI-Tools ${t} mmd -i ${t} ::/EFI mmd -i ${t} ::/EFI/BOOT mmd -i ${t} ::/keys mcopy -i ${t} ${k}/*.esl ::/keys mcopy -i ${t} ${k}/*.auth ::/keys mcopy -i ${t} ${e}/HashTool-signed.efi ::/EFI/BOOT/HashTool.efi mcopy -i ${t} ${e}/KeyTool-signed.efi ::/EFI/BOOT/KeyTool.efi mcopy -i ${t} ${e}/PreLoader-signed.efi ::/EFI/BOOT/BOOTX64.efi mcopy -i ${t} ${e}/HelloWorld.efi ::/EFI/BOOT/loader.efi dd if=${t} of=${o} bs=512 seek=2048 count=100000 rm -f ${t} exit 0;