diff options
| author | Leah Rowe <leah@libreboot.org> | 2026-09-13 15:33:21 +0100 |
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2026-09-13 15:33:21 +0100 |
| commit | eb23cd3de8cc32d1933dbd94e9eef1c41a5dc153 (patch) | |
| tree | 115395ac3ba41d8fb7bdffe4ccde04c8e0632020 /include/inject.sh | |
| parent | 07ed4e940bdace7e1fc8c4d0946a23ffd08a34c5 (diff) | |
split up include/
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'include/inject.sh')
| -rw-r--r-- | include/inject.sh | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/include/inject.sh b/include/inject.sh deleted file mode 100644 index 0760c1d8..00000000 --- a/include/inject.sh +++ /dev/null @@ -1,205 +0,0 @@ -# SPDX-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-2026 Leah Rowe <leah@libreboot.org> - -cbcfgsdir="config/coreboot" -tmpromdel="$XBMK_CACHE/DO_NOT_FLASH" -nvmutil="util/nvmutil/nvmutil" -ifdtool="elf/coreboot/default/ifdtool" - -checkvars="CONFIG_GBE_BIN_PATH ${checkvarsxbmk-} ${checkvarschk-}" - -eval "`newvar archive board boarddir IFD_platform ifdprefix \ - new_mac tmpromdir tree xchanged $checkvars`" - -inject() -{ - remkdir "$tmpromdel" - - [ $# -lt 1 ] && \ - err "No options specified" "inject" "$@" - - archive="$1"; - new_mac="xx:xx:xx:xx:xx:xx" - - nuke="" - xchanged="" - - [ $# -gt 1 ] && case "$2" in - nuke) - new_mac="" - nuke="nuke" - ;; - setmac) - if [ $# -gt 2 ]; then - new_mac="$3" && \ - [ -z "$new_mac" ] && \ - err "Empty MAC address" "inject" "$@"; : - fi - ;; - *) - err "Unrecognised inject mode: '$2'" "inject" "$@" ;; - esac - - [ "$new_mac" = "keep" ] && \ - new_mac="" - - check_release - if check_target; then - patch_release || \ - return 0; : - fi - [ "$xchanged" = "y" ] && \ - remktar - - if [ "$xchanged" = "y" ]; then - printf "\n'%s' was modified\n" "$archive" 1>&2 - else - printf "\n'%s' was NOT modified\n" "$archive" 1>&2 - fi - - x_ rm -Rf "$tmpromdel" -} - -check_release() -{ - [ -L "$archive" ] && \ - err "'$archive' is a symlink" "check_release" "$@" - if e "$archive" f missing; then - err "'$archive' missing" "check_release" "$@" - fi - - archivename="`basename "$archive" || err "Can't get '$archive' name"`" \ - || err "can't get '$archive' name" "check_release" "$@" - - [ -z "$archivename" ] && \ - err "Can't determine archive name" "check_release" "$@" - - case "$archivename" in - *_src.tar.xz) - err "'$archive' is a src archive!" "check_release" "$@" - ;; - grub_*|seagrub_*|custom_*|seauboot_*|seabios_withgrub_*) - err "'$archive' is a ROM image" "check_release" "$@" - ;; - *.tar.xz) _stripped_prefix="${archivename#*_}" - board="${_stripped_prefix%.tar.xz}" - ;; - *) - err "'$archive': cannot detect board" "check_release" "$@" - ;; - esac; : -} - -check_target() -{ - [ "$board" != "${board#serprog_}" ] && \ - return 1 - - boarddir="$cbcfgsdir/$board" - - . "$boarddir/target.cfg" || \ - err "Can't read '$boarddir/target.cfg'" "check_target" "$@" - - [ -z "$tree" ] && \ - err "tree unset in '$boarddir/target.cfg'" "check_target" "$@" - - x_ ./mk -d coreboot "$tree" - - ifdtool="elf/coreboot/$tree/ifdtool" - - [ -n "$IFD_platform" ] && \ - ifdprefix="-p $IFD_platform"; : -} - -patch_release() -{ - [ "$nuke" != "nuke" ] && \ - x_ ./mk download "$board" - - has_hashes="n" - tmpromdir="$tmpromdel/bin/$board" - - remkdir "${tmpromdir%"/bin/$board"}" - x_ tar -xf "$archive" -C "${tmpromdir%"/bin/$board"}" - - for _hashes in "vendorhashes" "blobhashes"; do - if e "$tmpromdir/$_hashes" f; then - has_hashes="y" - hashfile="$_hashes" - - break - fi - done - - readkconfig || \ - return 1 - - [ -n "$new_mac" ] && [ -n "$CONFIG_GBE_BIN_PATH" ] && \ - modify_mac; : -} - -readkconfig() -{ - x_ rm -f "$xbtmp/cbcfg" - fx_ scankconfig x_ find "$boarddir/config" -type f - - if e "$xbtmp/cbcfg" f missing; then - return 1 - fi - - . "$xbtmp/cbcfg" || \ - err "Can't read '$xbtmp/cbcfg'" "readkconfig" "$@" - - setvfile "$@" || \ - return 1; : -} - -scankconfig() -{ - for cbc in $checkvars; do - grep "$cbc" "$1" 2>/dev/null 1>>"$xbtmp/cbcfg" || : - done -} - -modify_mac() -{ - x_ cp "${CONFIG_GBE_BIN_PATH##*../}" "$xbtmp/gbe" - - if [ -n "$new_mac" ] && [ "$new_mac" != "restore" ]; then - x_ make -C util/nvmutil clean - x_ make -C util/nvmutil - - x_ "$nvmutil" "$xbtmp/gbe" setmac "$new_mac" - fi - - fx_ newmac x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" - - printf "\nThe following GbE NVM data will be written:\n" - x_ "$nvmutil" "$xbtmp/gbe" dump | grep -v "bytes read from file" || : -} - -newmac() -{ - if e "$1" f; then - xchanged="y" - x_ "$ifdtool" $ifdprefix -i GbE:"$xbtmp/gbe" "$1" -O "$1" - fi -} - -remktar() -{ - ( - x_ cd "${tmpromdir%"/bin/$board"}" - - printf "Re-building tar archive (please wait)\n" - mkrom_tarball "bin/$board" 1>/dev/null - - ) || err "Cannot re-generate '$archive'" "remktar" "$@" - - mv "${tmpromdir%"/bin/$board"}/bin/${relname}_${board}.tar.xz" \ - "$archive" || \ - err "'$archive' -> Can't overwrite" "remktar" "$@"; : -} |
