add firmware binary 1.17.0.120 with the extract tool
This commit is contained in:
parent
810bf474cd
commit
8cc284a587
1
firmware/.gitignore
vendored
Normal file
1
firmware/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
initramfs
|
1
firmware/idl4k.bin
Symbolic link
1
firmware/idl4k.bin
Symbolic link
@ -0,0 +1 @@
|
||||
idl4k.bin-1.17.0.120
|
BIN
firmware/idl4k.bin-1.17.0.120
Normal file
BIN
firmware/idl4k.bin-1.17.0.120
Normal file
Binary file not shown.
87
tools/cpio-idl4k-bin.sh
Executable file
87
tools/cpio-idl4k-bin.sh
Executable file
@ -0,0 +1,87 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Author: Portisch
|
||||
# https://github.com/Portisch/idl4k
|
||||
#
|
||||
|
||||
UIMAGE=idl4k.bin
|
||||
CPIONEW=rootfs-idl4k.cpio
|
||||
INITRAMFSDIR=initramfs
|
||||
KERNELDIR=../build/kernel/
|
||||
|
||||
case $1 in
|
||||
extract)
|
||||
|
||||
#////////////////////////////////////////////////////////////
|
||||
# Checking for uImage magic word
|
||||
# http://linux-arm.org/git?p=u-boot-armdev.git;a=blob;f=include/image.h
|
||||
#////////////////////////////////////////////////////////////
|
||||
#
|
||||
echo ">>>>> Checking for uImage magic word ( 27051956 ) :"
|
||||
MAGICWORD=`dd if=${UIMAGE} ibs=1 count=4 | hexdump -v -e '4/1 "%02X"'`
|
||||
if [ '27051956' != "$MAGICWORD" ]
|
||||
then
|
||||
echo "Not a uImage: $MAGICWORD != 27051956"
|
||||
exit 1
|
||||
else
|
||||
echo "$UIMAGE acknowledged!"
|
||||
fi
|
||||
|
||||
#////////////////////////////////////////////////////////////
|
||||
# Remove header from uImage
|
||||
#////////////////////////////////////////////////////////////
|
||||
#
|
||||
echo ">>>>> Remove header from $UIMAGE"
|
||||
IMAGEOLDGZ='Image.old.gz'
|
||||
dd if=${UIMAGE} bs=1 skip=64 of=${IMAGEOLDGZ}
|
||||
|
||||
#////////////////////////////////////////////////////////////
|
||||
# Extracting kernel from uImage
|
||||
#////////////////////////////////////////////////////////////
|
||||
#
|
||||
echo ">>>>> Extracting kernel from $UIMAGE"
|
||||
gunzip ${IMAGEOLDGZ}
|
||||
|
||||
#////////////////////////////////////////////////////////////
|
||||
#Extracting initramfs
|
||||
# www.garykessler.net/library/file_sigs.html
|
||||
# The end of the cpio archive is recognized with an empty file named 'TRAILER!!!' = '54 52 41 49 4C 45 52 21 21 21' (hexadecimal)
|
||||
#////////////////////////////////////////////////////////////
|
||||
#
|
||||
echo ">>>>> Extracting initramfs from kernel"
|
||||
CPIOSTART=`grep -a -b -m 1 -o '0707010' Image.old | head -1 | cut -f 1 -d :`
|
||||
CPIOEND=`grep -a -b -m 1 -o -P '\x54\x52\x41\x49\x4C\x45\x52\x21\x21\x21\x00\x00\x00\x00' Image.old | head -1 | cut -f 1 -d :`
|
||||
CPIOEND=$((CPIOEND + 11 + 3))
|
||||
CPIOSIZE=$((CPIOEND - CPIOSTART))
|
||||
echo "START: ${CPIOSTART} END: ${CPIOEND} SIZE: ${CPIOSIZE}"
|
||||
OLDINITRAMFSDIR='initramfs'
|
||||
if [ "$CPIOSIZE" -le '0' ]
|
||||
then
|
||||
echo "initramfs.cpio not found"
|
||||
exit
|
||||
fi
|
||||
dd if=Image.old bs=1 skip=$CPIOSTART count=$CPIOSIZE > initramfs.old.cpio
|
||||
rm -rf $OLDINITRAMFSDIR
|
||||
mkdir -p $OLDINITRAMFSDIR
|
||||
cd $OLDINITRAMFSDIR
|
||||
cpio -v -i --no-absolute-filenames < ../initramfs.old.cpio
|
||||
cd ..
|
||||
rm -rf Image.old
|
||||
rm -rf initramfs.old.cpio
|
||||
echo ">>>>> CPIO arcive got extracted from binary"
|
||||
|
||||
;;
|
||||
repack)
|
||||
#////////////////////////////////////////////////////////////
|
||||
# Create new cpio archive
|
||||
#////////////////////////////////////////////////////////////
|
||||
#
|
||||
cd ${INITRAMFSDIR}
|
||||
echo ">>>>> Create new cpio archive: $CPIONEW"
|
||||
find . "(" -path './.git' -o -name '.gitkeep' -o -name 'README.md' ")" -prune -o -print | cpio -C 1 -R root:root -H newc -o > ${KERNELDIR}${CPIONEW}
|
||||
|
||||
;;
|
||||
*)
|
||||
echo "unknown command"
|
||||
|
||||
esac
|
Loading…
Reference in New Issue
Block a user