mirror of
https://github.com/torvalds/linux.git
synced 2025-12-01 07:26:02 +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()
|
check_vmlinux()
|
||||||
{
|
{
|
||||||
if file "$1" | grep -q 'Linux kernel.*boot executable' ||
|
if file "$1" | grep -q 'Linux kernel.*boot executable' ||
|
||||||
readelf -h "$1" > /dev/null 2>&1
|
readelf -h "$1" > /dev/null 2>&1
|
||||||
then
|
then
|
||||||
cat "$1"
|
cat "$1"
|
||||||
|
echo "$me: Extracted vmlinux using '$2' from offset $3" >&2
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -30,12 +33,11 @@ try_decompress()
|
|||||||
do
|
do
|
||||||
pos=${pos%%:*}
|
pos=${pos%%:*}
|
||||||
tail -c+$pos "$img" | $3 > $tmp 2> /dev/null
|
tail -c+$pos "$img" | $3 > $tmp 2> /dev/null
|
||||||
check_vmlinux $tmp
|
check_vmlinux $tmp "$3" $pos
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check invocation:
|
# Check invocation:
|
||||||
me=${0##*/}
|
|
||||||
img=$1
|
img=$1
|
||||||
if [ $# -ne 1 -o ! -s "$img" ]
|
if [ $# -ne 1 -o ! -s "$img" ]
|
||||||
then
|
then
|
||||||
@@ -57,7 +59,7 @@ try_decompress '\002!L\030' xxx 'lz4 -d'
|
|||||||
try_decompress '(\265/\375' xxx unzstd
|
try_decompress '(\265/\375' xxx unzstd
|
||||||
|
|
||||||
# Finally check for uncompressed images or objects:
|
# Finally check for uncompressed images or objects:
|
||||||
check_vmlinux $img
|
check_vmlinux "$img" cat 0
|
||||||
|
|
||||||
# Bail out:
|
# Bail out:
|
||||||
echo "$me: Cannot find vmlinux." >&2
|
echo "$me: Cannot find vmlinux." >&2
|
||||||
|
|||||||
Reference in New Issue
Block a user