PART_CFG_PATH=./cfg/default_part.cfg
UPDATE_CFG_PATH=./cfg/update.cfg
DELTA_UA=./data/delta.ua
+ UPDATE_MANAGER=./data/upgrade-trigger.sh
LOG_PATH=./data/Delta.log
# Getting date and minor version
sudo rm ${DELTA_UA}
fi
+ #--- move update manager script to delta directory ---
+ if [ -r ${UPDATE_MANAGER} ]; then
+ sudo cp ${UPDATE_MANAGER} ${DELTA_DIR}/upgrade-trigger.sh
+ sudo rm ${UPDATE_MANAGER}
+ fi
+
#--- archive result directory ---
cd result/$MONDATE
echo "tar result directory"
#------------------------------------------------------------------------------
# Function :
-# extract_delta_ua
+# extract_from_image
#
# Description :
-# extract delta binary (delta.ua) from given image
+# extract some file from given image
#
-fn_extract_delta_ua()
+fn_extract_from_image()
{
+ IMAGE=$1
+ TARGET_FILE=$2
MNT_PNT=${PART_NAME}_MNT
mkdir -p ${MNT_PNT}
- tar xvf ${DATA_DIR}/${NEW_TAR_DIR}/${NEW_TAR_FILE} $1
+ tar xvf ${DATA_DIR}/${NEW_TAR_DIR}/${NEW_TAR_FILE} ${IMAGE}
if [ "$?" != "0" ]; then
return 1;
fi
- sudo mount -t ext4 -o loop $1 ${MNT_PNT}
+ sudo mount -t ext4 -o loop ${IMAGE} ${MNT_PNT}
if [ "$?" != "0" ]; then
return 1;
fi
- DELTA_UA="${MNT_PNT}/usr/bin/delta.ua"
- if [ -e ${DELTA_UA} ]; then
- sudo cp ${DELTA_UA} ${DATA_DIR}/delta.ua
+ EXTRACT_FILE="${MNT_PNT}${TARGET_FILE}"
+ if [ -e ${EXTRACT_FILE} ]; then
+ sudo cp ${EXTRACT_FILE} ${DATA_DIR}
else
- echo "There is no delta.ua in $1"
+ echo "There is no ${TARGET_FILE} in ${IMAGE}"
fi
sudo umount ${MNT_PNT}
sudo rm -rf ${MNT_PNT}
- sudo rm -f $1
+ sudo rm -f ${IMAGE}
}
+
###############################################################################
#==================
# Main Start
fn_get_tar_file_names ${PART_BIN}
if [ "${PART_NAME}" = "RAMDISK2" ]; then
- fn_extract_delta_ua ${PART_BIN}
+ fn_extract_from_image ${PART_BIN} /usr/bin/delta.ua
+elif [ "${PART_NAME}" = "ROOTFS" ]; then
+ fn_extract_from_image ${PART_BIN} /usr/bin/upgrade-trigger.sh
fi
OLD_TAR_MISSING=
# * diff binary and libraries:
# ss_bsdiff, lib7zip, libdivsufsort
#
+# Upgrade procedure
+# 1. Download images (old, new)
+# 2. Download old image to target
+# 3. Generate delta
+# 4. Download delta to target
+# 5. Execute upgrade trigger
+#
+# This script covers step 3
+#
#---------------------------------------------------------#
# Get argument
TARGET=$2
TOTA_UPG_TARGET=${TOTA_UPG_PATH}/mk_delta/${TARGET}
+TOTA_DIR=/opt/usr/data/fota
+sdb root on
+sdb -d shell mkdir -p ${TOTA_DIR}
+
# 4. Download delta to target
DELTA_DIR=$(ls -1d ${TOTA_UPG_TARGET}/result/* | tail -1)
sdb -d push ${DELTA_DIR}/FW_DELTA/delta.tar ${TOTA_DIR}
-# 5. Execute upgrade trigger
-sdb -d shell /usr/bin/upgrade-trigger-${TARGET}.sh ${TOTA_DIR}/delta.tar
+# 5. Execute upgrade manager
+sdb -d shell tar xvfp ${TOTA_DIR}/delta.tar -C ${TOTA_DIR} upgrade-trigger.sh
+sdb -d shell ${TOTA_DIR}/upgrade-trigger.sh ${TOTA_DIR}/delta.tar