mirror of
https://github.com/gtxaspec/wz_mini_hacks.git
synced 2024-11-22 21:47:19 +00:00
f4245747f3
Added Darwin stat -f fix in fw_tool.sh. thanks @mwhdc
49 lines
1.4 KiB
Bash
Executable File
49 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
#custom for V2
|
|
|
|
set -x
|
|
|
|
ACTION=$1
|
|
|
|
KERNEL_OFFSET=$((64))
|
|
ROOTFS_OFFSET=$((2097216))
|
|
DRIVER_OFFSET=$((5570624))
|
|
APPFS_OFFSET=$((6225984))
|
|
|
|
if [ "$ACTION" = "unpack" ]; then
|
|
DEMO_IN=$2
|
|
OUT_DIR=$3
|
|
|
|
dd if=${DEMO_IN} of=$OUT_DIR/kernel.bin skip=$KERNEL_OFFSET count=$(($ROOTFS_OFFSET-$KERNEL_OFFSET)) bs=1
|
|
md5sum $OUT_DIR/kernel.bin
|
|
|
|
dd if=${DEMO_IN} of=$OUT_DIR/rootfs.bin skip=$ROOTFS_OFFSET count=$(($DRIVER_OFFSET-$ROOTFS_OFFSET)) bs=1
|
|
md5sum $OUT_DIR/rootfs.bin
|
|
|
|
dd if=${DEMO_IN} of=$OUT_DIR/driver.bin skip=$DRIVER_OFFSET count=$(($APPFS_OFFSET-$DRIVER_OFFSET)) bs=1
|
|
md5sum $OUT_DIR/driver.bin
|
|
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
IMAGE_END=$(($(stat -f %z ${DEMO_IN})))
|
|
else
|
|
IMAGE_END=$(($(stat -c %s ${DEMO_IN})))
|
|
fi
|
|
|
|
dd if=${DEMO_IN} of=$OUT_DIR/appfs.bin skip=$APPFS_OFFSET count=$(($IMAGE_END-$APPFS_OFFSET)) bs=1
|
|
md5sum $OUT_DIR/appfs.bin
|
|
|
|
elif [ "$ACTION" = "pack" ]; then
|
|
TMP_DIR=$2
|
|
DEMO_OUT=$3
|
|
|
|
#need to pad kernel is its smaller than the stock kernel size, 2097152 bytes
|
|
dd if=/dev/zero of=$TMP_DIR/kernel.bin bs=1 count=1 seek=2097151
|
|
|
|
cat $TMP_DIR/kernel.bin $TMP_DIR/rootfs.bin $TMP_DIR/driver.bin $TMP_DIR/appfs.bin > $TMP_DIR/flash.bin
|
|
mkimage -A MIPS -O linux -T firmware -C none -a 0 -e 0 -n jz_fw -d $TMP_DIR/flash.bin $DEMO_OUT
|
|
|
|
else
|
|
echo "Unknown action '$ACTION'"
|
|
fi
|