summaryrefslogtreecommitdiff
path: root/resources/scripts/update/blobs/download
diff options
context:
space:
mode:
Diffstat (limited to 'resources/scripts/update/blobs/download')
-rwxr-xr-xresources/scripts/update/blobs/download65
1 files changed, 42 insertions, 23 deletions
diff --git a/resources/scripts/update/blobs/download b/resources/scripts/update/blobs/download
index 0896ed47..2368e8e9 100755
--- a/resources/scripts/update/blobs/download
+++ b/resources/scripts/update/blobs/download
@@ -5,6 +5,8 @@
# SPDX-FileCopyrightText: 2023 Leah Rowe <info@minifree.org>
# SPDX-License-Identifier: GPL-3.0-only
+agent="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"
+
ec_url=""
ec_url_bkup=""
ec_hash=""
@@ -106,14 +108,14 @@ scan_sources_config()
while read -r line ; do
case ${line} in
- EC_url*)
- set ${line}
- ec_url=${2}
- ;;
EC_url_bkup*)
set ${line}
ec_url_bkup=${2}
;;
+ EC_url*)
+ set ${line}
+ ec_url=${2}
+ ;;
EC_hash*)
set ${line}
ec_hash=${2}
@@ -122,26 +124,26 @@ scan_sources_config()
set ${line}
dl_hash=${2}
;;
- DL_url*)
- set ${line}
- dl_url=${2}
- ;;
DL_url_bkup*)
set ${line}
dl_url_bkup=${2}
;;
- E6400_VGA_DL_hash*)
+ DL_url*)
set ${line}
- e6400_vga_dl_hash=${2}
+ dl_url=${2}
;;
- E6400_VGA_DL_url*)
+ E6400_VGA_DL_hash*)
set ${line}
- e6400_vga_dl_url=${2}
+ e6400_vga_dl_hash=${2}
;;
E6400_VGA_DL_url_bkup*)
set ${line}
e6400_vga_dl_url_bkup=${2}
;;
+ E6400_VGA_DL_url*)
+ set ${line}
+ e6400_vga_dl_url=${2}
+ ;;
E6400_VGA_offset*)
set ${line}
e6400_vga_offset=${2}
@@ -235,8 +237,9 @@ extract_blob_intel_me()
printf "Extracting and stripping Intel ME firmware\n"
- innoextract ${dl_path} -d ${blobdir} \
+ innoextract ${dl_path} -d ${appdir} \
|| 7z x ${dl_path} -o${appdir} \
+ || unar "${dl_path}" -o "${appdir}" \
|| fail 'Could not extract vendor update'
bruteforce_extract_blob_intel_me "$(pwd)/${_me_destination}" \
@@ -278,19 +281,21 @@ bruteforce_extract_blob_intel_me()
"${me7updateparser}" -O ${_me_destination} "${i}" \
&& break # (we found me.bin)
_7ztest="${_7ztest}a"
- 7z x "${i}" -o${_7ztest} || continue
+ 7z x "${i}" -o${_7ztest} \
+ || innoextract "${i}" -d "${_7ztest}" \
+ || unar "${i}" -o "${_7ztest}" \
+ || continue
bruteforce_extract_blob_intel_me "${_me_destination}" \
"${cdir}/${_7ztest}"
- cdir="${1}"
- cd "${cdir}"
elif [ -d "$i" ]; then
bruteforce_extract_blob_intel_me "${_me_destination}" \
"${cdir}/${i}"
- cdir="${1}"
- cd "${cdir}"
else
printf "SKIPPING: %s\n" "${i}"
+ continue
fi
+ cdir="${1}"
+ cd "${cdir}"
done
)
@@ -337,6 +342,11 @@ extract_ec()
unar -D ROM.CAB Rom.bin
mv Rom.bin ec.bin
fi
+ if [ ! -f ec.bin ]; then
+ printf "could not extract ec.bin for board '%s'" ${board} \
+ 1>&2
+ fail "aborting the build. please audit blobutil carefully."
+ fi
"${kbc1126_ec_dump}" ec.bin
)
@@ -442,11 +452,20 @@ fetch_update()
dl_path=${blobdir}/cache/${dlsum}
mkdir -p ${blobdir}/cache
- vendor_checksum ${dlsum} || \
- wget ${dl} -O ${dl_path} || wget ${dl_bkup} -O ${dl_path}
-
- vendor_checksum ${dlsum} || fail \
- "Cannot guarantee intergity of vendor update for: ${board}"
+ dl_fail="y"
+ vendor_checksum ${dlsum} && dl_fail="n"
+ for x in "${dl}" "${dl_bkup}"; do
+ if [ "${dl_fail}" = "n" ]; then
+ break
+ fi
+ rm -f "${dl_path}"
+ wget -U "${agent}" ${x} -O ${dl_path}
+ vendor_checksum ${dlsum} && dl_fail="n"
+ done
+ if [ "${dl_fail}" = "y" ]; then
+ printf "Could not download blob file\n" 1>&2
+ return 1
+ fi
}
vendor_checksum()