diff options
Diffstat (limited to 'include/vendor.sh')
-rw-r--r-- | include/vendor.sh | 63 |
1 files changed, 25 insertions, 38 deletions
diff --git a/include/vendor.sh b/include/vendor.sh index d98bde7e..ceea429a 100644 --- a/include/vendor.sh +++ b/include/vendor.sh @@ -124,8 +124,7 @@ fetch() rm -Rf "${_dl}_extracted" || $err "!rm ${_ul}_extracted. $dontflash" e "$_dest" f && return 0 - mkdir -p "${_dest%/*}" || \ - $err "mkdirs: !mkdir -p ${_dest%/*} - $dontflash" + x_ mkdir -p "${_dest%/*}" remkdir "$appdir" extract_archive "$_dl" "$appdir" "$dl_type" || \ [ "$dl_type" = "e6400vga" ] || \ @@ -165,8 +164,7 @@ extract_intel_me_bruteforce() e "$_metmp" f && return 0 [ -z "$sdir" ] && sdir="$(mktemp -d)" - mkdir -p "$sdir" || \ - $err "extract_intel_me: !mkdir -p \"$sdir\" - $dontflash" + x_ mkdir -p "$sdir" set +u +e ( @@ -192,7 +190,7 @@ extract_intel_me_bruteforce() cdir="$1"; [ "${cdir#/a}" != "$cdir" ] && cdir="${cdir#/}" cd "$cdir" || : done - ) + ) || : rm -Rf "$sdir" || $err "extract_intel_me: !rm -Rf $sdir - $dontflash" } @@ -200,11 +198,10 @@ apply_me11_deguard_mod() { ( x_ cd src/deguard/ - ./finalimage.py --delta "data/delta/$ME11delta" \ + 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" + --input "$_metmp" --output "$_me" ) || $err "Error running deguard for $_me - $dontflash" } @@ -230,8 +227,7 @@ decat_fspfd() _fspdir="$2" _fspsplit="$cbdir/3rdparty/fsp/Tools/SplitFspBin.py" - $python "$_fspsplit" split -f "$_fspfd" -o "$_fspdir" -n "Fsp.fd" || \ - $err "decat_fspfd '$1' '$2': Can't de-concatenate; $dontflash"; : + x_ $python "$_fspsplit" split -f "$_fspfd" -o "$_fspdir" -n "Fsp.fd" } extract_kbc1126ec() @@ -273,8 +269,7 @@ extract_e6400vga() $err "extract_e6400vga: can't extract bios.bin - $dontflash" "$e6400_unpack" bios.bin || printf "TODO: fix dell extract util\n" ) || $err "can't extract e6400 vga rom - $dontflosh" - cp "$appdir/$E6400_VGA_romname" "$_dest" || \ - $err "extract_e6400vga $board: can't cp $_dest - $dontflash"; : + x_ cp "$appdir/$E6400_VGA_romname" "$_dest" } extract_sch5545ec() @@ -287,8 +282,7 @@ extract_sch5545ec() _sch5545ec_fw="$_sch5545ec_fw/0 Raw section/body.bin" # <-- this! "$uefiextract" "$_bios" || $err "sch5545 !extract - $dontflash" - cp "$_sch5545ec_fw" "$_dest" || \ - $err "$_dest: !sch5545 copy - $dontflash"; : + x_ cp "$_sch5545ec_fw" "$_dest" } # Lenovo ThunderBolt firmware updates: @@ -303,14 +297,11 @@ extract_tbfw() while read -r f; do [ -f "$f" ] || continue [ -L "$f" ] && continue - cp "$f" "tmp/tb.bin" || \ - $err "extract_tbfw $_dest: Can't copy TBT.bin - $dontflash" + x_ cp "$f" "tmp/tb.bin" break done < "tmp/tb.txt" - dd if=/dev/null of=tmp/tb.bin bs=1 seek=$TBFW_size || \ - $err "extract_tbfw $_dest: Can't pad TBT.bin - $dontflash" - cp "tmp/tb.bin" "$_dest" || \ - $err "extract_tbfw $_dest: copy error - $dontflash "; : + x_ dd if=/dev/null of=tmp/tb.bin bs=1 seek=$TBFW_size + x_ cp "tmp/tb.bin" "$_dest" } extract_fspm() @@ -326,8 +317,7 @@ extract_fsps() # this copies the fsp s/m; re-base is handled by ./mk inject copy_fsp() { - cp "$appdir/Fsp_$1.fd" "$_dest" || \ - $err "copy_fsp: Can't copy $1 to $_dest - $dontflash"; : + x_ cp "$appdir/Fsp_$1.fd" "$_dest" } fail_inject() @@ -337,7 +327,7 @@ fail_inject() printf "\n\n%s\n\n" "$dontflash" 1>&2 printf "WARNING: File '%s' was NOT modified.\n\n" "$archive" 1>&2 printf "Please MAKE SURE vendor files are inserted before flashing\n\n" - fail "$1" + err_ "$1" } vendor_inject() @@ -374,7 +364,9 @@ vendor_inject() readcfg && need_files="y" if [ "$need_files" = "y" ] || [ -n "$new_mac" ]; then - [ "$nukemode" = "nuke" ] || x_ ./mk download "$board" + if [ "$nukemode" != "nuke" ] && [ "$need_files" = "y" ]; then + x_ ./mk download "$board" + fi patch_release_roms fi [ "$need_files" != "y" ] && printf \ @@ -470,6 +462,7 @@ patch_release_roms() x_ tar -xf "$archive" -C "${tmpromdir%"/bin/$board"}" for _hashes in $hashfiles; do + [ "$need_files" = "y" ] || break e "$tmpromdir/$_hashes" f && has_hashes="y" && \ hashfile="$_hashes" && break; : done @@ -493,17 +486,18 @@ patch_release_roms() "$vguide" > "$tmpromdir/README.md" || : else printf "Skipping vendorfiles on '%s'\n" "$archive" 1>&2 + need_files="n" fi ( + [ "$need_files" = "y" ] || exit 0 cd "$tmpromdir" || $err "patch '$archive': can't cd $tmpromdir" # NOTE: For compatibility with older rom releases, defer to sha1 if [ "$has_hashes" = "y" ] && [ "$nukemode" != "nuke" ]; then sha512sum --status -c "$hashfile" || \ sha1sum --status -c "$hashfile" || \ $err "'$archive' -> Can't verify vendor hashes. $dontflash" - rm -f "$hashfile" || \ - $err "$archive: Can't rm hashfile. $dontflash" + x_ rm -f "$hashfile" fi ) || $err "'$archive' -> Can't verify vendor hashes. $dontflash" @@ -513,8 +507,7 @@ patch_release_roms() [ "$xchanged" = "y" ] || rm -Rf "$tmpromdel" || : [ "$xchanged" = "y" ] || return 0 ( - cd "${tmpromdir%"/bin/$board"}" || \ - $err "Can't cd '${tmpromdir%"/bin/$board"}'; $dontflash" + x_ cd "${tmpromdir%"/bin/$board"}" mkrom_tarball "bin/$board" ) || $err "Cannot re-generate '$archive' - $dontflash" @@ -538,7 +531,7 @@ process_release_rom() _xromnew="${_xrom%/*}/${_xromname#"$vfix"}" stat -c '%s' "$_xrom" > "tmp/rom.size" || \ - $err "$_xrom: Can't get rom size. $dontflash" + $err "$_xrom: Can't resize '$_xrom' (out: tmp/rom.size)" read -r xromsize < "tmp/rom.size" || \ $err "$_xrom: Can't read rom size. $dontflash" @@ -551,8 +544,7 @@ process_release_rom() [ $xromsize -lt 524288 ] && \ $err "$_xrom size too small; likely not a rom. $dontflash" - dd if="$_xrom" of="$_xromnew" bs=$xromsize count=1 || \ - $err "$_xrom: Can't resize. $dontflash" + x_ dd if="$_xrom" of="$_xromnew" bs=$xromsize count=1 rm -f "$_xrom" || $err "Can't rm $_xrom - $dontflash" _xrom="$_xromnew" @@ -567,7 +559,7 @@ process_release_rom() # Rename the file, prefixing a warning saying not to flash cat "$_xrom" tmp/zero.1b > "${_xrom%/*}/$vfix${_xrom##*/}" || \ $err "'$archive' -> can't pad/rename '$_xrom'. $dontflash" - rm -f "$_xrom" || $err "'$archive' -> can't rm '$_xrom'. $dontflash" + x_ rm -f "$_xrom" } patch_rom() @@ -634,13 +626,8 @@ inject() $err "failed: inject '$_t' '$_dest' on '$rom'" [ "$nukemode" != "nuke" ] || "$ifdtool" $ifdprefix --nuke $_t \ "$rom" -O "$rom" || $err "$rom: !nuke IFD/$_t" - xchanged="y" - return 0 elif [ "$nukemode" = "nuke" ]; then - "$cbfstool" "$rom" remove -n "$cbfsname" || \ - $err "inject $rom: can't remove $cbfsname" - xchanged="y" - return 0 + x_ "$cbfstool" "$rom" remove -n "$cbfsname" elif [ "$_t" = "stage" ]; then # the only stage we handle is refcode x_ mkdir -p tmp x_ rm -f "tmp/refcode" |