mirror of
https://github.com/torvalds/linux.git
synced 2025-11-30 23:16:01 +07:00
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>
This commit is contained in:
committed by
Nathan Chancellor
parent
0354e81b7b
commit
1e150869ca
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user