summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Thiebaut <maxime+kernel@thiebaut.dev>2025-08-22 10:40:03 +0200
committerNathan Chancellor <nathan@kernel.org>2025-08-28 15:25:48 -0700
commit1e150869caf2fe540dd9c3367e124b59c23228c7 (patch)
treebff4ceaa95c3617ff409493a04bda924d53a69ac
parent0354e81b7bd629f9c3379c9524e988ebc504fa25 (diff)
extract-vmlinux: Output used decompression method
When extract-vmlinux succeeds, it doesn't output which decompression method was found at which offset. Adding this additional output in check_vmlinux() helps troubleshooting and reverse-engineering images. The last check_vmlinux() call was also quoted to accept spaces. Signed-off-by: Maxime Thiebaut <maxime+kernel@thiebaut.dev> Reviewed-by: Nicolas Schier <nsc@kernel.org> Link: https://lore.kernel.org/r/X6OQ4pHdpreJtlTnf0tFEb4Uxz8T8gFv_7Yw6tpBK4ZBgHYjJr_URwUwCVynpkb-H8Yjk7DdBF01zY-sfqu_7N5trZQfcd6s_4PtdGlHtlA=@thiebaut.dev Signed-off-by: Nathan Chancellor <nathan@kernel.org>
-rwxr-xr-xscripts/extract-vmlinux8
1 files changed, 5 insertions, 3 deletions
diff --git a/scripts/extract-vmlinux b/scripts/extract-vmlinux
index 189956b5a5c8..266df9bc7a48 100755
--- a/scripts/extract-vmlinux
+++ b/scripts/extract-vmlinux
@@ -10,12 +10,15 @@
#
# ----------------------------------------------------------------------
+me=${0##*/}
+
check_vmlinux()
{
if file "$1" | grep -q 'Linux kernel.*boot executable' ||
readelf -h "$1" > /dev/null 2>&1
then
cat "$1"
+ echo "$me: Extracted vmlinux using '$2' from offset $3" >&2
exit 0
fi
}
@@ -30,12 +33,11 @@ try_decompress()
do
pos=${pos%%:*}
tail -c+$pos "$img" | $3 > $tmp 2> /dev/null
- check_vmlinux $tmp
+ check_vmlinux $tmp "$3" $pos
done
}
# Check invocation:
-me=${0##*/}
img=$1
if [ $# -ne 1 -o ! -s "$img" ]
then
@@ -57,7 +59,7 @@ try_decompress '\002!L\030' xxx 'lz4 -d'
try_decompress '(\265/\375' xxx unzstd
# Finally check for uncompressed images or objects:
-check_vmlinux $img
+check_vmlinux "$img" cat 0
# Bail out:
echo "$me: Cannot find vmlinux." >&2