diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/inject.sh | 48 | ||||
-rw-r--r-- | include/lib.sh | 3 |
2 files changed, 20 insertions, 31 deletions
diff --git a/include/inject.sh b/include/inject.sh index e2987aad..f1ecb0d5 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: GPL-3.0-only +# SPD-License-Identifier: GPL-3.0-only # Copyright (c) 2022 Caleb La Grange <thonkpeasant@protonmail.com> # Copyright (c) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com> # Copyright (c) 2023-2025 Leah Rowe <leah@libreboot.org> @@ -121,10 +121,10 @@ fetch() x_ mkdir -p "${_dest%/*}" remkdir "$appdir" - extract_archive "$_dl" "$appdir" "$dl_type" || \ + [ "$dl_type" = "fsp" ] || extract_archive "$_dl" "$appdir" || \ [ "$dl_type" = "e6400vga" ] || err "$_dest $dl_type: !extract" - eval "extract_$dl_type" + x_ extract_$dl_type "$_dl" "$appdir" set -u -e e "$_dest" f missing && err "!extract_$dl_type. $dontflash"; : } @@ -142,11 +142,14 @@ extract_intel_me() [ "$ME11bootguard" = "y" ] && x_ ./mk -f deguard extract_intel_me_bruteforce - if [ "$ME11bootguard" = "y" ]; then - apply_me11_deguard_mod - else - mv "$_metmp" "$_me" || err "!mv $_metmp $_me - $dontflash" - fi + [ "$ME11bootguard" != "y" ] && x_ mv "$_metmp" "$_me" && return 0 + + ( + x_ cd src/deguard/ + x_ ./finalimage.py --delta "data/delta/$ME11delta" --version \ + "$ME11version" --pch "$ME11pch" --sku "$ME11sku" \ + --fake-fpfs data/fpfs/zero --input "$_metmp" --output "$_me" + ) || err "Error running deguard for $_me - $dontflash"; : } extract_intel_me_bruteforce() @@ -162,9 +165,11 @@ extract_intel_me_bruteforce() [ "${cdir#/a}" != "$cdir" ] && cdir="${cdir#/}" cd "$cdir" || err "extract_intel_me: !cd \"$cdir\" - $dontflash" for i in *; do - e "$_metmp" f && break + c=0 && e "$_metmp" f && break [ -L "$i" ] && continue - if [ -f "$i" ]; then + [ -e "$i" ] || continue + [ -d "$i" ] && extract_intel_me_bruteforce "$cdir/$i" && c=1 + if [ $c -eq 0 ] && [ -f "$i" ]; then _r="-r" && [ -n "$mfs" ] && _r="" "$mecleaner" $mfs $_r -t -O "$sdir/vendorfile" \ -M "$_metmp" "$i" && break @@ -173,10 +178,6 @@ extract_intel_me_bruteforce() _7ztest="${_7ztest}a" extract_archive "$i" "$_7ztest" || continue extract_intel_me_bruteforce "$cdir/$_7ztest" - elif [ -d "$i" ]; then - extract_intel_me_bruteforce "$cdir/$i" - else - continue fi cdir="$1"; [ "${cdir#/a}" != "$cdir" ] && cdir="${cdir#/}" cd "$cdir" || : @@ -185,23 +186,8 @@ extract_intel_me_bruteforce() rm -Rf "$sdir" || err "extract_intel_me: !rm -Rf $sdir - $dontflash" } -apply_me11_deguard_mod() -{ - ( - x_ cd src/deguard/ - x_ ./finalimage.py --delta "data/delta/$ME11delta" \ - --version "$ME11version" \ - --pch "$ME11pch" --sku "$ME11sku" --fake-fpfs data/fpfs/zero \ - --input "$_metmp" --output "$_me" - ) || err "Error running deguard for $_me - $dontflash" -} - extract_archive() { - [ $# -gt 2 ] && [ "$3" = "fsp" ] && x_ python \ - "$cbdir/3rdparty/fsp/Tools/SplitFspBin.py" split -f "$1" -o "$2" \ - -n "Fsp.fd" && return 0 - innoextract "$1" -d "$2" || python "$pfs_extract" "$1" -e || 7z x \ "$1" -o"$2" || unar "$1" -o "$2" || unzip "$1" -d "$2" || return 1 @@ -257,7 +243,6 @@ extract_sch5545ec() extract_tbfw() { chkvars TBFW_size && fe_ copy_tbfw "$appdir" -type f -name "TBT.bin" - [ -f "$_dest" ] || err "$board: Could not extract tbfw"; : } copy_tbfw() @@ -268,7 +253,8 @@ copy_tbfw() extract_fsp() { - x_ cp "$appdir/"Fsp_*.fd "${_dest%/*}" + x_ python "$cbdir/3rdparty/fsp/Tools/SplitFspBin.py" split -f "$1" \ + -o "$2" -n "Fsp.fd" && x_ cp "$appdir/"Fsp_*.fd "${_dest%/*}" } fail_inject() diff --git a/include/lib.sh b/include/lib.sh index c9be740a..43b1a318 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -176,6 +176,8 @@ x_() err() { + set -u -e + xbmk_err_val=0 real_err="" && [ -n "${xbmk_err+x}" ] && real_err="$xbmk_err" @@ -196,6 +198,7 @@ err() err_() { + [ $# -lt 1 ] && printf "ERROR (but no error message provided)\n" 1>&2 [ $# -lt 1 ] || printf "ERROR %s: %s\n" "$0" "$1" 1>&2 || : exit 1 } |