| #!/bin/bash -eux |
| # Copyright 2014 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. |
| |
| me=${0##*/} |
| TMP="$me.tmp" |
| |
| # Work in scratch directory |
| cd "$OUTDIR" |
| |
| |
| IN=${SCRIPTDIR}/data/bios_link_mp.bin |
| BIOS=${TMP}.bios.bin |
| |
| cp ${IN} ${BIOS} |
| |
| AREAS="RW_SECTION_A VBLOCK_B BOOT_STUB" |
| |
| # Extract good blobs first |
| ${FUTILITY} dump_fmap -x ${BIOS} ${AREAS} |
| |
| # Save the good blobs, make same-size random blobs, create command |
| CMDS="" |
| for a in ${AREAS}; do |
| size=$(stat -c '%s' $a) |
| mv $a $a.good |
| dd if=/dev/urandom of=$a.rand bs=$size count=1 |
| CMDS="$CMDS $a:$a.rand" |
| done |
| |
| # Poke the new blobs in |
| ${FUTILITY} load_fmap ${BIOS} ${CMDS} |
| |
| # Pull them back out and see if they match |
| ${FUTILITY} dump_fmap -x ${BIOS} ${AREAS} |
| for a in ${AREAS}; do |
| cmp $a $a.rand |
| done |
| |
| # cleanup |
| rm -f ${TMP}* ${AREAS} *.rand *.good |
| exit 0 |