| Index: utility/dev_debug_vboot | 
| diff --git a/utility/dev_debug_vboot b/utility/dev_debug_vboot | 
| index a171eb4c51de53102e3a157ba41dd623c2a2ad87..55cdd73ff94bdf70a10d1960e22365fe43c4734b 100755 | 
| --- a/utility/dev_debug_vboot | 
| +++ b/utility/dev_debug_vboot | 
| @@ -47,9 +47,9 @@ loghead() { | 
| echo "+" "$@" "| head" >> "$LOGFILE" | 
| "$@" | head >> "$LOGFILE" 2>&1 | 
| } | 
| + | 
| logdie() { | 
| echo "+" "$@" >> "$LOGFILE" | 
| -  "$@" >> "$LOGFILE" 2>&1 | 
| die "$@" | 
| } | 
|  | 
| @@ -75,6 +75,19 @@ require_chromeos_bios() { | 
| log ls -la /root/.force_update_firmware | 
| } | 
|  | 
| +# Search for files from the FMAP, in the order listed. Return the first one | 
| +# found or die if none are there. | 
| +find_name() { | 
| +  for fn in "$@"; do | 
| +    if [ -e "$fn" ]; then | 
| +      echo "$fn" | 
| +      return | 
| +    fi | 
| +  done | 
| +  echo "+ no files named $@" >> "$LOGFILE" | 
| +  exit 1 | 
| +} | 
| + | 
| # Here we go... | 
| umask 022 | 
| trap cleanup EXIT | 
| @@ -129,18 +142,31 @@ ls *kern*.blob >/dev/null 2>&1 || logdie "no kernel images found" | 
| info "Extracting BIOS components..." | 
| log dump_fmap -x ${BIOS} || logdie "Unable to extract BIOS components" | 
|  | 
| +# Find the FMAP regions we're interested in. Look first for the new names, then | 
| +# the old names. | 
| +area_gbb=$(find_name       GBB       GBB_Area) || \ | 
| +  logdie "no area_gbb" | 
| +area_vblock_a=$(find_name  VBLOCK_A  Firmware_A_Key) || \ | 
| +  logdie "no area_vblock_a" | 
| +area_vblock_b=$(find_name  VBLOCK_B  Firmware_B_Key) || \ | 
| +  logdie "no area_vblock_b" | 
| +area_fw_main_a=$(find_name FW_MAIN_A Firmware_A_Data) || \ | 
| +  logdie "no area_fw_main_a" | 
| +area_fw_main_b=$(find_name FW_MAIN_B Firmware_B_Data) || \ | 
| +  logdie "no area_fw_main_a" | 
| + | 
| info "Pulling root and recovery keys from GBB..." | 
| log gbb_utility -g --rootkey rootkey.vbpubk --recoverykey recoverykey.vbpubk \ | 
| -  GBB_Area || logdie "Unable to extract keys from GBB" | 
| +  "$area_gbb" || logdie "Unable to extract keys from GBB" | 
| log vbutil_key --unpack rootkey.vbpubk | 
| log vbutil_key --unpack recoverykey.vbpubk | 
|  | 
| infon "Verify firmware A with root key... " | 
| -log vbutil_firmware --verify Firmware_A_Key --signpubkey rootkey.vbpubk \ | 
| -  --fv Firmware_A_Data --kernelkey kernel_subkey_a.vbpubk ; result | 
| +log vbutil_firmware --verify "$area_vblock_a" --signpubkey rootkey.vbpubk \ | 
| +  --fv "$area_fw_main_a" --kernelkey kernel_subkey_a.vbpubk ; result | 
| infon "Verify firmware B with root key... " | 
| -log vbutil_firmware --verify Firmware_B_Key --signpubkey rootkey.vbpubk \ | 
| -  --fv Firmware_B_Data --kernelkey kernel_subkey_b.vbpubk ; result | 
| +log vbutil_firmware --verify "$area_vblock_b" --signpubkey rootkey.vbpubk \ | 
| +  --fv "$area_fw_main_b" --kernelkey kernel_subkey_b.vbpubk ; result | 
|  | 
| for key in kernel_subkey_a.vbpubk kernel_subkey_b.vbpubk; do | 
| infon "Test $key... " | 
|  |