Add update-info.ini with metadata to the image
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Fri, 27 Aug 2021 15:37:24 +0000 (17:37 +0200)
committerKarol Lewandowski <k.lewandowsk@samsung.com>
Mon, 30 Aug 2021 20:39:08 +0000 (22:39 +0200)
Metadata is only added if it's provided in board configuration
file - cfg/update-info.ini.in.

Change-Id: I0bb45aceb8bb8a08b27494fcd21ffe40b13aa711

mk_delta/common/bin/mk_delta.sh
mk_delta/common/bin/mk_part_delta.sh

index 935dff5..5b1e748 100755 (executable)
@@ -84,6 +84,8 @@ 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
+       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
@@ -343,6 +345,12 @@ do
                sudo cp ${BUILD_STRING_PATH} ${DELTA_DIR}/${BUILD_STRING_FILE}
                sudo rm ${BUILD_STRING_PATH}
        fi
+
+       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
index a6366e7..b333ad9 100755 (executable)
@@ -368,12 +368,30 @@ fn_mk_delta_fs()
                tar xvf ${NEW_TAR_DIR}/${NEW_TAR_FILE} ${PART_IMG_ORG}
                sudo mount -o loop ${PART_IMG_ORG} ${TMP_MNT_PNT}
                local NEW_BUILD_STRING=`cat ${TMP_MNT_PNT}/etc/info.ini | grep "Build=" | sed "s/Build=//" | sed "s/;$//"`
+               local BINOUT="$(LC_ALL=C LANG=C file -b ${TMP_MNT_PNT}/bin/ls)"
                sudo umount ${TMP_MNT_PNT}
                rm -rf ${PART_IMG_ORG}
 
+               case "${BINOUT}" in
+                       # ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, ...
+                       *ELF*64-bit*x86-64*) ARCHITECTURE=x86-64;;
+
+                       # ELF 32-bit LSB shared object, ARM, EABI5 version, dynamically linked, interpreter /lib/ld-linux.so.3, ...
+                       *ELF*32-bit*ARM,*) ARCHITECTURE=arm32;;
+
+                       # ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, ...
+                       *ELF*64-bit*ARM*aarch64*) ARCHITECTURE=aarch64;;
+               esac
+
                echo "${BUILD_STRING_FILE} : ${OLD_BUILD_STRING}@${NEW_BUILD_STRING}"
                echo -n ${OLD_BUILD_STRING}@${NEW_BUILD_STRING} > ${BUILD_STRING_FILE}
 
+               sed     -e "s,@SOURCE_VERSION@,${OLD_BUILD_STRING},g" \
+                       -e "s,@TARGET_VERSION@,${NEW_BUILD_STRING},g" \
+                       -e "s,@ARCHITECTURE@,${ARCHITECTURE},g" \
+                       -e "s,@IMAGE_TYPE@,all,g" \
+                       < "../${UPDATE_INFO_PATH}" > "${UPDATE_INFO_FILE}"
+
                rm -rf ${TMP_MNT_PNT}
                echo "===== Finish writing image versions ====="
 
@@ -509,6 +527,8 @@ CFG_DIR=./cfg
 #XML_DIR=./xml
 COMMON_BINDIR=${CUR_DIR}/../common/bin
 UPDATE_CFG_PATH=./cfg/update.cfg
+UPDATE_INFO_FILE=update-info.ini
+UPDATE_INFO_PATH=./cfg/${UPDATE_INFO_FILE}.in
 
 #--- check if the current working directory is the parent directory of bin, data, cfg, xml ---
 TEST_DIR=${DATA_DIR}