#!/bin/sh # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # TMPDIR=/tmp/debug_vboot BIOS=bios.rom # FIXME: support ARM HD_KERN_A=/dev/sda2 HD_KERN_B=/dev/sda4 tmp=$(rootdev -s -d)2 if [ "$tmp" != "$HD_KERN_A" ]; then USB_KERN_A="$tmp" fi [ -d ${TMPDIR} ] || mkdir -p ${TMPDIR} cd ${TMPDIR} echo "INFO: extracting BIOS image from flash" flashrom -r ${BIOS} echo "INFO: extracting kernel images from drives" dd if=${HD_KERN_A} of=hd_kern_a.blob dd if=${HD_KERN_B} of=hd_kern_b.blob if [ -n "$USB_KERN_A" ]; then dd if=${USB_KERN_A} of=usb_kern_a.blob fi echo "INFO: extracting BIOS components" dump_fmap -x ${BIOS} || echo "FAILED" echo "INFO: pulling root and recovery keys from GBB" gbb_utility -g --rootkey rootkey.vbpubk --recoverykey recoverykey.vbpubk \ GBB_Area || echo "FAILED" echo "INFO: display root key" vbutil_key --unpack rootkey.vbpubk echo "INFO: display recovery key" vbutil_key --unpack recoverykey.vbpubk echo "TEST: verify firmware A with root key" vbutil_firmware --verify Firmware_A_Key --signpubkey rootkey.vbpubk \ --fv Firmware_A_Data --kernelkey kernel_subkey_a.vbpubk || echo "FAILED" echo "TEST: verify firmware B with root key" vbutil_firmware --verify Firmware_B_Key --signpubkey rootkey.vbpubk \ --fv Firmware_B_Data --kernelkey kernel_subkey_b.vbpubk || echo "FAILED" echo "TEST: verify HD kernel A with firmware A key" vbutil_kernel --verify hd_kern_a.blob --signpubkey kernel_subkey_a.vbpubk \ || echo "FAILED" echo "TEST: verify HD kernel B with firmware A key" vbutil_kernel --verify hd_kern_b.blob --signpubkey kernel_subkey_a.vbpubk \ || echo "FAILED" echo "TEST: verify HD kernel A with firmware B key" vbutil_kernel --verify hd_kern_a.blob --signpubkey kernel_subkey_b.vbpubk \ || echo "FAILED" echo "TEST: verify HD kernel B with firmware B key" vbutil_kernel --verify hd_kern_b.blob --signpubkey kernel_subkey_b.vbpubk \ || echo "FAILED" if [ -n "$USB_KERN_A" ]; then echo "TEST: verify USB kernel A with recovery key" vbutil_kernel --verify usb_kern_a.blob --signpubkey recoverykey.vbpubk \ || echo "FAILED" fi