summaryrefslogtreecommitdiff
path: root/resources/scripts/update/blobs/mrc
diff options
context:
space:
mode:
Diffstat (limited to 'resources/scripts/update/blobs/mrc')
-rwxr-xr-xresources/scripts/update/blobs/mrc58
1 files changed, 24 insertions, 34 deletions
diff --git a/resources/scripts/update/blobs/mrc b/resources/scripts/update/blobs/mrc
index 8213e6c1..14a1d2b6 100755
--- a/resources/scripts/update/blobs/mrc
+++ b/resources/scripts/update/blobs/mrc
@@ -57,25 +57,19 @@ main()
check_existing()
{
- if [ ! -f ${_mrc_complete} ]; then
+ [ -f ${_mrc_complete} ] || \
return 1
- fi
- printf 'found existing mrc.bin, checking its hash\n'
- if [ "$(sha1sum ${_mrc_complete} | awk '{print $1}')" \
- = "${_mrc_complete_hash}" ]; then
- printf 'checksums matched, skipping downloading\n'
+ printf 'found existing mrc.bin\n'
+ [ "$(sha1sum ${_mrc_complete} | awk '{print $1}')" \
+ = "${_mrc_complete_hash}" ] && \
return 0
- else
- printf 'hashes did not match, starting over\n'
- return 1
- fi
+ printf 'hashes did not match, starting over\n'
+ return 1
}
build_dependencies()
{
- if [ ! -d "${cbdir}/" ]; then
- ./fetch_trees coreboot default || return 1
- fi
+ [ -d "${cbdir}/" ] || ./fetch_trees coreboot default || return 1
./build coreboot utils default || return 1
return 0
}
@@ -88,23 +82,20 @@ fetch_mrc()
cd mrc/haswell/
download_image ${_url} ${_file} ${_sha1sum}
- if [ ! -f ${_file} ]; then
+ [ -f ${_file} ] || \
download_image ${_url2} ${_file} ${_sha1sum}
- fi
- if [ ! -f $_file ]; then
+ [ -f $_file ] || \
fail "%{_file} not downloaded / verification failed."
- fi
extract_partition ROOT-A ${_file} root-a.ext2
extract_shellball root-a.ext2 chromeos-firmwareupdate-${_board}
extract_coreboot chromeos-firmwareupdate-${_board}
- ../../${cbfstool} coreboot-*.bin extract -f mrc.bin \
- -n mrc.bin -r RO_SECTION \
- || fail "Could not fetch mrc.bin"
+ ../../${cbfstool} coreboot-*.bin extract -f mrc.bin -n mrc.bin \
+ -r RO_SECTION || fail "Could not fetch mrc.bin"
rm -f "chromeos-firmwareupdate-${_board}" coreboot-*.bin \
- "${_file}" "root-a.ext2"
+ "${_file}" "root-a.ext2"
printf "\n\nmrc.bin saved to ${_mrc_complete}\n\n"
)
@@ -118,19 +109,18 @@ download_image()
_file=${2}
_sha1sum=${3}
- echo "Downloading recovery image"
+ printf "Downloading recovery image\n"
curl "$url" > "$_file.zip"
+ printf "Verifying recovery image checksum\n"
if [ "$(sha1sum ${_file}.zip | awk '{print $1}')" = "${_sha1sum}" ]
then
unzip -q "${_file}.zip"
rm "${_file}.zip"
- echo "Checksum verification passed for recovery image."
return 0
- else
- rm "${_file}.zip"
- echo "Bad checksum. Recovery image deleted."
- return 1
fi
+ rm "${_file}.zip"
+ printf "Bad checksum. Recovery image deleted.\n"
+ return 1
}
extract_partition()
@@ -140,15 +130,15 @@ extract_partition()
ROOTFS=${3}
_bs=1024
- echo "Extracting ROOT-A partition"
+ printf "Extracting ROOT-A partition\n"
ROOTP=$( printf "unit\nB\nprint\nquit\n" | \
- parted ${FILE} 2>/dev/null | grep ${NAME} )
+ parted ${FILE} 2>/dev/null | grep ${NAME} )
START=$(( $( echo ${ROOTP} | cut -f2 -d\ | tr -d "B" ) ))
SIZE=$(( $( echo ${ROOTP} | cut -f4 -d\ | tr -d "B" ) ))
dd if=${FILE} of=${ROOTFS} bs=${_bs} skip=$(( ${START} / ${_bs} )) \
- count=$(( ${SIZE} / ${_bs} )) > /dev/null
+ count=$(( ${SIZE} / ${_bs} )) > /dev/null
}
extract_shellball()
@@ -156,9 +146,9 @@ extract_shellball()
ROOTFS=${1}
SHELLBALL=${2}
- echo "Extracting chromeos-firmwareupdate"
+ printf "Extracting chromeos-firmwareupdate\n"
printf "cd /usr/sbin\ndump chromeos-firmwareupdate ${SHELLBALL}\nquit" \
- | debugfs ${ROOTFS} > /dev/null 2>&1
+ | debugfs ${ROOTFS} > /dev/null 2>&1
}
extract_coreboot()
@@ -166,11 +156,11 @@ extract_coreboot()
_shellball=${1}
_unpacked=$( mktemp -d )
- echo "Extracting coreboot image"
+ printf "Extracting coreboot image\n"
sh ${_shellball} --unpack ${_unpacked} > /dev/null
_version=$( cat ${_unpacked}/VERSION | grep BIOS\ version: | \
- cut -f2 -d: | tr -d \ )
+ cut -f2 -d: | tr -d \ )
cp ${_unpacked}/bios.bin coreboot-${_version}.bin
rm -r "${_unpacked}"