|
| 1 | +#!/bin/bash |
| 2 | +# Z220 CMT HP |
| 3 | + |
| 4 | +function printusage { |
| 5 | + echo "Usage: $0 -m <me_cleaner>(optional)" |
| 6 | +} |
| 7 | + |
| 8 | +BLOBDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
| 9 | + |
| 10 | +if [ "$#" -eq 0 ]; then printusage; fi |
| 11 | + |
| 12 | +while getopts ":m:i:" opt; do |
| 13 | + case $opt in |
| 14 | + m) |
| 15 | + if [ -x "$OPTARG" ]; then |
| 16 | + MECLEAN="$OPTARG" |
| 17 | + fi |
| 18 | + ;; |
| 19 | + esac |
| 20 | + |
| 21 | +done |
| 22 | + |
| 23 | +if [ -z "$MECLEAN" ]; then |
| 24 | + MECLEAN=`command -v $BLOBDIR/../../build/x86/coreboot-*/util/me_cleaner/me_cleaner.py 2>&1|head -n1` |
| 25 | + if [ -z "$MECLEAN" ]; then |
| 26 | + echo "me_cleaner.py required but not found or specified with -m. Aborting." |
| 27 | + exit 1; |
| 28 | + fi |
| 29 | +fi |
| 30 | + |
| 31 | +BIN_FILE="DOS Flash/K51_0187.BIN" |
| 32 | +BIN_TGZ_SHA256SUM="0102d569239fdc14ca86a7afc4b16d2b12703401890b83e188f34d23844870dc sp97120.tgz" |
| 33 | +BIN_FILE_SHA256SUM="cc5a9c2d4827e9b1501c2dc0a464f580d4a2d65e4ff83dbab548e51839339d06 $BIN_FILE" |
| 34 | +FINAL_IFD_SHA256SUM="6b6bb09af0abbd93a73f2a1bde970d3ab488ed1c9c898d312f2b0676dc40d5ae $BLOBDIR/ifd.bin" |
| 35 | +FINAL_ME_SHA256SUM="2ee4bbf3e49e0c1f0215d7955d2a7793c7e108014f3aa4592bfa9785c0033d0d $BLOBDIR/me.bin" |
| 36 | +TGZURL="https://ftp.hp.com/pub/softpaq/sp97001-97500/sp97120.tgz" |
| 37 | + |
| 38 | +TGZFILENAME=`echo $TGZURL | sed 's/.*\///'` |
| 39 | +ROMFILENAME=`echo $TGZFILENAME | sed 's/\.zip$/\.ROM/'` |
| 40 | + |
| 41 | +extractdir=$(mktemp -d) |
| 42 | +echo "### Creating temp dir $extractdir " |
| 43 | +cd "$extractdir" |
| 44 | + |
| 45 | +echo "### Downloading $TGZURL" |
| 46 | +wget $TGZURL || { echo "ERROR: wget failed $TGZURL" && exit 1; } |
| 47 | +echo "### Verifying expected hash of $TGZFILENAME" |
| 48 | +echo "$BIN_TGZ_SHA256SUM" | sha256sum --check || { echo "Failed sha256sum verification on downloaded binary..." && exit 1; } |
| 49 | + |
| 50 | +echo "### Extracting Archives" |
| 51 | +tar -xf $TGZFILENAME DOS\ Flash || { echo "Failed unzipping $TGZFILENAME - Tool installed on host?" && exit 1;} |
| 52 | + |
| 53 | +echo "### Verifying expected hash of $ROMFILENAME" |
| 54 | +echo "$BIN_FILE_SHA256SUM" | sha256sum --check || { echo "Failed sha256sum verification on extracted binary..." && exit 1; } |
| 55 | + |
| 56 | +#echo "### extracing BIOS from Capsule" |
| 57 | +#dd bs=1024 skip=2 if=P8Z77-V-ASUS-2104.CAP of=P8Z77-V-ASUS-2104.ROM || { echo "Failed to de-cap the ROM..." && exit 1; } |
| 58 | + |
| 59 | +echo "### Applying me_cleaner to neuter and truncate. EFFS,FCRS whitelisted" |
| 60 | +$MECLEAN -S -r -t -d -O /tmp/unneeded.bin -D "$BLOBDIR/ifd.bin" -M "$BLOBDIR/me.bin" "$BIN_FILE" |
| 61 | + |
| 62 | +echo "### Verifying expected hashes" |
| 63 | +echo "$FINAL_IFD_SHA256SUM" | sha256sum --check || { echo "Failed sha256sum verification on generated IFD bin..." && exit 1; } |
| 64 | +echo "$FINAL_ME_SHA256SUM" | sha256sum --check || { echo "Failed sha256sum verification on generated ME binary..." && exit 1; } |
| 65 | + |
| 66 | +echo "###Cleaning up..." |
| 67 | +cd - |
| 68 | +rm -r "$extractdir" |
0 commit comments