132 lines
3.2 KiB
Bash
132 lines
3.2 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
DEFAULT_NEW_ZIPFILE=mdm9607-ota-target-image-ubi.zip
|
||
|
DEFAULT_OLD_ZIPFILE=old.zip
|
||
|
DEFAULT_UPDATE_ZIPFILE=update.zip
|
||
|
|
||
|
RM_SRC_FILES=" \
|
||
|
/SYSTEM/usr/lib/arm-oe-linux-gnueabi/4.9.2/libcc.a \
|
||
|
/SYSTEM/usr/lib/modules/3.18.20/extra/wlan.ko \
|
||
|
/SYSTEM/usr/bin/smbd \
|
||
|
/SYSTEM/etc/shadow \
|
||
|
/SYSTEM/etc/NetIspInfo.ini
|
||
|
"
|
||
|
|
||
|
RM_TARGET_FILES="system/etc/shadow"
|
||
|
|
||
|
|
||
|
# zip compatibility.txt into update.zip
|
||
|
function zip_compatibility_txt()
|
||
|
{
|
||
|
COMPATIBILITY_FILE=compatibility.txt
|
||
|
if [ -z "$1" ] ; then
|
||
|
local ANSWER=
|
||
|
local default_value='y'
|
||
|
while [ "${ANSWER}" != "y" -a \
|
||
|
"${ANSWER}" != "Y" -a \
|
||
|
"${ANSWER}" != "n" -a \
|
||
|
"${ANSWER}" != "N" ]
|
||
|
do
|
||
|
echo -n "Do you want to zip compatibility file? [y/n] "
|
||
|
read ANSWER
|
||
|
done
|
||
|
else
|
||
|
ANSWER=$1
|
||
|
fi
|
||
|
|
||
|
if [ "${ANSWER}" == "y" -o "${ANSWER}" == "Y" ]; then
|
||
|
if [ ! -f ${COMPATIBILITY_FILE} ]; then
|
||
|
echo -e "\033[31mError:\033[0m"
|
||
|
echo -e " Compatibility file not exist!"
|
||
|
else
|
||
|
echo -e " Zip compatibility file"
|
||
|
zip ${DEFAULT_UPDATE_ZIPFILE} ${COMPATIBILITY_FILE}
|
||
|
fi
|
||
|
else
|
||
|
echo -e "\033[32mWarning: You won't zip compatibility file, it may cause update failed!\033[0m"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# zip firmware images into update.zip
|
||
|
function zip_firmware_images()
|
||
|
{
|
||
|
FIRMWARE_PATH=firmware
|
||
|
if [ -z "$1" ] ; then
|
||
|
local ANSWER=
|
||
|
local default_value='y'
|
||
|
while [ "${ANSWER}" != "y" -a \
|
||
|
"${ANSWER}" != "Y" -a \
|
||
|
"${ANSWER}" != "n" -a \
|
||
|
"${ANSWER}" != "N" ]
|
||
|
do
|
||
|
echo -n "Do you want to zip firmware images? [y/n] "
|
||
|
read ANSWER
|
||
|
done
|
||
|
else
|
||
|
ANSWER=$1
|
||
|
fi
|
||
|
|
||
|
if [ "${ANSWER}" == "y" -o "${ANSWER}" == "Y" ]; then
|
||
|
echo -e " Zip firmware images"
|
||
|
./zip_firmware.sh
|
||
|
else
|
||
|
echo -e "\033[32mInfo: You won't zip firmware images!\033[0m"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
echo "Make OTA package:"
|
||
|
|
||
|
if [ ! $# -eq 4 ]; then
|
||
|
echo -e "Usage: $0 old.zip new.zip zip_firmware(n/y) rm_files(n/y)"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
|
||
|
OLD_ZIPFILE=$1
|
||
|
NEW_ZIPFILE=$2
|
||
|
IF_ZIP_FIRMWARE=$3
|
||
|
IF_RM_FILES=$4
|
||
|
|
||
|
# check target zipfile
|
||
|
if [ ! -f ${OLD_ZIPFILE} ]; then
|
||
|
echo -e "\033[31mError:\033[0m"
|
||
|
echo -e " Target zipfile: ${OLD_ZIPFILE} not exist"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# check incremental zipfile
|
||
|
if [ ! -f ${NEW_ZIPFILE} ]; then
|
||
|
echo -e "\033[31mError:\033[0m"
|
||
|
echo -e " Incremental zipfile: ${NEW_ZIPFILE} not exist"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# make ota package: update.zip
|
||
|
if [ "${IF_RM_FILES}" == "y" -o "${IF_RM_FILES}" == "Y" ]; then
|
||
|
zip -d ${OLD_ZIPFILE} ${RM_SRC_FILES}
|
||
|
fi
|
||
|
./ota_from_target_files -v -p . -i ${OLD_ZIPFILE} ${NEW_ZIPFILE} ${DEFAULT_UPDATE_ZIPFILE}
|
||
|
|
||
|
FoundFile=`unzip -l ${DEFAULT_UPDATE_ZIPFILE} | awk '{print $4}' | grep "^${RM_TARGET_FILES}$"`
|
||
|
if [ "${FoundFile}" == "${RM_TARGET_FILES}" ]; then
|
||
|
zip -d ${DEFAULT_UPDATE_ZIPFILE} ${RM_TARGET_FILES}
|
||
|
fi
|
||
|
|
||
|
if [ ! $? -eq 0 ]; then
|
||
|
echo -e "\033[31mError:\033[0m"
|
||
|
echo -e " Making OTA package error, please check the src zipfile"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# if you want to select by yourself, please uncomment follow command
|
||
|
#zip_compatibility_txt
|
||
|
zip_compatibility_txt y
|
||
|
|
||
|
# if you want to select by yourself, please uncomment follow command
|
||
|
#zip_firmware_images
|
||
|
zip_firmware_images ${IF_ZIP_FIRMWARE}
|
||
|
|
||
|
echo -e "Make OTA package done!"
|
||
|
echo -e "Output package: \033[36m${DEFAULT_UPDATE_ZIPFILE}\033[0m"
|
||
|
|