105 lines
1.9 KiB
Bash
Executable File
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 $? |