luckfox-pico-sdk/tools/linux/Linux_Pack_Firmware/mk-update_unpack.sh
2023-08-08 20:36:47 +08:00

105 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
cmd=`realpath $0`
cwd=`dirname $cmd`
CMD_VERSION=0.0.1
C_BLACK="\e[30;1m"
C_RED="\e[31;1m"
C_GREEN="\e[32;1m"
C_YELLOW="\e[33;1m"
C_BLUE="\e[34;1m"
C_PURPLE="\e[35;1m"
C_CYAN="\e[36;1m"
C_WHITE="\e[37;1m"
C_NORMAL="\033[0m"
function msg_info()
{
echo -e "${C_GREEN}[$(basename $0):info] $1${C_NORMAL}"
}
function msg_warn()
{
echo -e "${C_YELLOW}[$(basename $0):warn] $1${C_NORMAL}"
}
function msg_error()
{
echo -e "${C_RED}[$(basename $0):error] $1${C_NORMAL}"
}
function pause()
{
msg_error "unpack update.img fail..."
msg_error "Press any key to quit:"
read -n1 -t10 -s key
exit 1
}
function msg_help()
{
echo "command format:"
echo " `basename $cmd` -v -h -i -o"
echo " -v|--version (Optional) view this version."
echo " -h|--help (Optional) view this help message."
echo " -i|--image (Essential) input firmware image path."
echo " -o|--output (Essential) output unpacked image directory."
}
function chk_param()
{
local cnt
cnt=0
while [ $# -ne 0 ]
do
case $1 in
-v|--version)
msg_info "V$CMD_VERSION"
exit 0
;;
-h|--help)
msg_help
exit 0
;;
-i|--image)
IMAGE_PATH=$2
cnt=$(( cnt + 1 ))
;;
-o|--output)
OUTPUT_DIR=$2
cnt=$(( cnt + 1 ))
;;
*)
;;
esac
shift
done
if [ $cnt -ne 2 -o -z "$IMAGE_PATH" -o -z "$OUTPUT_DIR" ]; then
msg_error "Invalid parameter..."
msg_help
exit -1
fi
msg_info "image input dir: $IMAGE_PATH"
msg_info "image output dir: $OUTPUT_DIR"
}
IMAGE_PATH=""
OUTPUT_DIR=""
chk_param $@
msg_info "start to unpack update.img..."
$cwd/rkImageMaker -unpack $IMAGE_PATH $OUTPUT_DIR || pause
$cwd/afptool -unpack $OUTPUT_DIR/firmware.img $OUTPUT_DIR || pause
msg_info "Unpacking update.img OK."
# remove temporay image
rm -f $OUTPUT_DIR/firmware.img
rm -f $OUTPUT_DIR/boot.bin
rm -f $OUTPUT_DIR/package-file
exit $?