Pack important files at beginning of the archive
[platform/core/system/upgrade-tools.git] / mk_delta / common / bin / mk_delta.sh
index 6410d4d..a730cf4 100755 (executable)
@@ -84,7 +84,9 @@ fn_set_default_params()
        MK_PART_DELTA=${COMMON_BINDIR}/mk_part_delta.sh
        DELTA_CFG_PATH=./cfg/delta.cfg
        UPDATE_CFG_PATH=./cfg/update.cfg
-       PRE_SCRIPT_PATH=./cfg/pre.sh
+       UPDATE_INFO_FILE=update-info.ini
+       UPDATE_INFO_PATH=./data/${UPDATE_INFO_FILE}
+       SETUP_SCRIPT_PATH=./cfg/setup.sh
        DELTA_UA=./data/delta.ua
        UPDATE_MANAGER=./data/upgrade-trigger.sh
 
@@ -240,7 +242,7 @@ fn_extract_from_image()
                return 1;
        fi
 
-       sudo mount -t ext4 -o loop ${IMAGE} ${MNT_PNT}
+       sudo mount -o loop ${IMAGE} ${MNT_PNT}
        if [ "$?" != "0" ]; then
                return 1;
        fi
@@ -311,6 +313,10 @@ do
                                        sudo mv data/${PART_OUT} ${RESULT_DIR}/${part_bin}
                                        sudo mv ${RESULT_DIR}/${part_bin}/${delta_bin} ${DELTA_DIR}
                                fi
+                               if [ "$?" != "0" ]; then
+                                       echo "Warning: No differences - remove record for \"${part_name}\" from the final update.cfg"
+                                       sed -i "/^${part_name}\b/d" "${UPDATE_CFG_PATH}"
+                               fi
                        else
                                sudo rm -rf ${RESULT_DIR}/${part_bin}
                                echo "Error: Abort Delta Generation"
@@ -320,6 +326,11 @@ do
                sudo rm -rf ${RESULT_DIR}/${part_bin}
        done
 
+       if [ ! -s "${UPDATE_CFG_PATH}" ]; then
+               echo "Error: No differences between versions - abort delta generation"
+               exit 2
+       fi
+
        #move update.cfg to delta directory
        if [ -r ${UPDATE_CFG_PATH} ]; then
                sudo cp ${UPDATE_CFG_PATH} ${DELTA_DIR}/update.cfg
@@ -334,8 +345,14 @@ do
                sudo cp ${BUILD_STRING_PATH} ${DELTA_DIR}/${BUILD_STRING_FILE}
                sudo rm ${BUILD_STRING_PATH}
        fi
-       if [ -r ${PRE_SCRIPT_PATH} ]; then
-               sudo cp ${PRE_SCRIPT_PATH} ${DELTA_DIR}/pre.sh
+
+       if [ -r ${UPDATE_INFO_PATH} ]; then
+               sudo cp ${UPDATE_INFO_PATH} ${DELTA_DIR}/${UPDATE_INFO_FILE}
+               sudo rm ${UPDATE_INFO_PATH}
+       fi
+
+       if [ -r ${SETUP_SCRIPT_PATH} ]; then
+               sudo cp ${SETUP_SCRIPT_PATH} ${DELTA_DIR}/setup.sh
        fi
 
        #--- extract files which would be appended to delta.tar ---
@@ -357,7 +374,10 @@ if [ -r ${UPDATE_CFG_PATH} ]; then
 fi
 cd ${DELTA_DIR}
 sudo cp ${COMMON_BINDIR}/unpack.sh ./
-sudo tar --overwrite -cf ../delta.tar *
+
+# Ensure essential files are at beginning of archive (metadata, scripts and binaries to perform upgrade)
+touch *.txt *.cfg *.ini *.sh *.ua
+sudo tar --overwrite -cpf ../delta.tar $(ls -1td *)
 
 SIGN_PKCS_FILE=$1
 SIGN_PKCS_PASSWORD=$2