OLD | NEW |
(Empty) | |
| 1 #!/bin/sh |
| 2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. |
| 5 # |
| 6 |
| 7 TMPDIR=/tmp/debug_vboot |
| 8 BIOS=bios.rom |
| 9 # FIXME: support ARM |
| 10 HD_KERN_A=/dev/sda2 |
| 11 HD_KERN_B=/dev/sda4 |
| 12 tmp=$(rootdev -s -d)2 |
| 13 if [ "$tmp" != "$HD_KERN_A" ]; then |
| 14 USB_KERN_A="$tmp" |
| 15 fi |
| 16 |
| 17 |
| 18 [ -d ${TMPDIR} ] || mkdir -p ${TMPDIR} |
| 19 cd ${TMPDIR} |
| 20 |
| 21 echo "INFO: extracting BIOS image from flash" |
| 22 flashrom -r ${BIOS} |
| 23 |
| 24 echo "INFO: extracting kernel images from drives" |
| 25 dd if=${HD_KERN_A} of=hd_kern_a.blob |
| 26 dd if=${HD_KERN_B} of=hd_kern_b.blob |
| 27 if [ -n "$USB_KERN_A" ]; then |
| 28 dd if=${USB_KERN_A} of=usb_kern_a.blob |
| 29 fi |
| 30 |
| 31 echo "INFO: extracting BIOS components" |
| 32 dump_fmap -x ${BIOS} || echo "FAILED" |
| 33 |
| 34 echo "INFO: pulling root and recovery keys from GBB" |
| 35 gbb_utility -g --rootkey rootkey.vbpubk --recoverykey recoverykey.vbpubk \ |
| 36 GBB_Area || echo "FAILED" |
| 37 echo "INFO: display root key" |
| 38 vbutil_key --unpack rootkey.vbpubk |
| 39 echo "INFO: display recovery key" |
| 40 vbutil_key --unpack recoverykey.vbpubk |
| 41 |
| 42 echo "TEST: verify firmware A with root key" |
| 43 vbutil_firmware --verify Firmware_A_Key --signpubkey rootkey.vbpubk \ |
| 44 --fv Firmware_A_Data --kernelkey kernel_subkey_a.vbpubk || echo "FAILED" |
| 45 echo "TEST: verify firmware B with root key" |
| 46 vbutil_firmware --verify Firmware_B_Key --signpubkey rootkey.vbpubk \ |
| 47 --fv Firmware_B_Data --kernelkey kernel_subkey_b.vbpubk || echo "FAILED" |
| 48 |
| 49 echo "TEST: verify HD kernel A with firmware A key" |
| 50 vbutil_kernel --verify hd_kern_a.blob --signpubkey kernel_subkey_a.vbpubk \ |
| 51 || echo "FAILED" |
| 52 echo "TEST: verify HD kernel B with firmware A key" |
| 53 vbutil_kernel --verify hd_kern_b.blob --signpubkey kernel_subkey_a.vbpubk \ |
| 54 || echo "FAILED" |
| 55 |
| 56 echo "TEST: verify HD kernel A with firmware B key" |
| 57 vbutil_kernel --verify hd_kern_a.blob --signpubkey kernel_subkey_b.vbpubk \ |
| 58 || echo "FAILED" |
| 59 echo "TEST: verify HD kernel B with firmware B key" |
| 60 vbutil_kernel --verify hd_kern_b.blob --signpubkey kernel_subkey_b.vbpubk \ |
| 61 || echo "FAILED" |
| 62 |
| 63 if [ -n "$USB_KERN_A" ]; then |
| 64 echo "TEST: verify USB kernel A with recovery key" |
| 65 vbutil_kernel --verify usb_kern_a.blob --signpubkey recoverykey.vbpubk \ |
| 66 || echo "FAILED" |
| 67 fi |
OLD | NEW |