BUILD_STRING_PATH=./data/${BUILD_STRING_FILE}
EXTRACTED_FILES_DIR=${STARTING_DIR}"/data"
- HAL_TARG_NAME=${EXTRACTED_FILES_DIR}"/hal-model-conf.xml"
- ROOTFS_TARG_NAME=${EXTRACTED_FILES_DIR}"/rootfs-model-config.xml"
- TIZEN_TARG_NAME=${EXTRACTED_FILES_DIR}"/tizen-build.conf"
- BINA_TARG_NAME=${EXTRACTED_FILES_DIR}"/upgrade-support"
- BINB_TARG_NAME=${EXTRACTED_FILES_DIR}"/upgrade-apply"
+
+ HAL_TARG_NAME=${EXTRACTED_FILES_DIR}/"hal-model-conf.xml"
+ ROOTFS_TARG_NAME=${EXTRACTED_FILES_DIR}/"rootfs-model-config.xml"
+ TIZEN_TARG_NAME=${EXTRACTED_FILES_DIR}/"tizen-build.conf"
+ UPGRADE_SUPPORT_DIR="upgrade-support"
+ UPGRADE_APPLY_BIN="upgrade-apply"
# Getting date and minor version
MONDATE=$(date +%m%d)
i=1
#
fn_build_update_info()
{
- echo "PWD=${PWD}"
sudo python3 "${UPDATE_INFO_BUILDER_PATH}" "${HAL_TARG_NAME}" "${ROOTFS_TARG_NAME}" "${TIZEN_TARG_NAME}" ${UPDATE_INFO_PATH}
rm -f "${HAL_TARG_NAME}" "${ROOTFS_TARG_NAME}" "${TIZEN_TARG_NAME}"
fn_get_tar_file_names()
{
BIN_TO_FIND=$1
+ TAR_DIR=$2
- cd ${DATA_DIR}/${OLD_TAR_DIR}
- OLD_TAR_LIST=`ls *.tar *.tar.gz *.tgz *.tar.md5 2>/dev/null`
- cd ${CUR_DIR}
-
- cd ${DATA_DIR}/${NEW_TAR_DIR}
- NEW_TAR_LIST=`ls *.tar *.tar.gz *.tgz *.tar.md5 2>/dev/null`
- cd ${CUR_DIR}
+ cd "${DATA_DIR}"/${TAR_DIR}
+ TAR_LIST=`ls *.tar *.tar.gz *.tgz *.tar.md5 2>/dev/null`
+ cd "${CUR_DIR}"
#--- find which tar contains the binary ---
- for tar_file in ${OLD_TAR_LIST}
+ for tar_file in ${TAR_LIST}
do
- result=`tar -tvf ${DATA_DIR}/${OLD_TAR_DIR}/${tar_file} | grep " ${BIN_TO_FIND}$"`
+ result=`tar -tvf ${DATA_DIR}/${TAR_DIR}/${tar_file} | grep " ${BIN_TO_FIND}$"`
if [ "$?" = "0" ]; then
- OLD_TAR_FILE=${tar_file}
+ TAR_FILE_FOUND=${tar_file}
break
fi
done
+}
- for tar_file in ${NEW_TAR_LIST}
- do
- result=`tar -tvf ${DATA_DIR}/${NEW_TAR_DIR}/${tar_file} | grep " ${BIN_TO_FIND}$"`
- if [ "$?" = "0" ]; then
- NEW_TAR_FILE=${tar_file}
- break
+#------------------------------------------------------------------------------
+# Function :
+# fn_extract_files
+#
+# Description :
+# extract crucial files form images in case there were not exctacted previously
+#
+fn_extract_files_from_partition()
+{
+ IMAGE=$1
+ CUR_DIR=${PWD}
+ MNT_PNT="TMP_MNT"
+ mkdir -p ${MNT_PNT}
+
+ fn_get_tar_file_names "$IMAGE" "${OLD_TAR_DIR}"
+ tar xvf "${DATA_DIR}"/${OLD_TAR_DIR}/"${TAR_FILE_FOUND}" "${IMAGE}"
+ if [ "$?" != "0" ]; then
+ return 1;
+ fi
+
+ sudo mount -o loop "${IMAGE}" ${MNT_PNT}
+ if [ "$?" != "0" ]; then
+ return 1;
+ fi
+
+ if [ "$IMAGE" == "hal.img" ]; then
+ local HAL_MODEL_CONFIG_PATH=${MNT_PNT}"/etc/config/model-config.xml"
+ cp "${HAL_MODEL_CONFIG_PATH}" "$HAL_TARG_NAME"
+
+ elif [ "$IMAGE" == "rootfs.img" ]; then
+ local ROOTFS_MODEL_CONFIG_PATH=${MNT_PNT}"/etc/config/model-config.xml"
+ local TIZEN_BUILD_CONFIG_PATH=${MNT_PNT}"/etc/tizen-build.conf"
+
+ cp "${ROOTFS_MODEL_CONFIG_PATH}" "${ROOTFS_TARG_NAME}"
+ cp "${TIZEN_BUILD_CONFIG_PATH}" "${TIZEN_TARG_NAME}"
+
+ sudo umount ${MNT_PNT}
+ sudo rm -f "${IMAGE}"
+
+ fn_get_tar_file_names "$IMAGE" "${NEW_TAR_DIR}"
+ tar xvf "${DATA_DIR}"/${NEW_TAR_DIR}/"${TAR_FILE_FOUND}" "${IMAGE}"
+ if [ "$?" != "0" ]; then
+ return 1;
fi
- done
+ sudo mount -o loop "${IMAGE}" ${MNT_PNT}
+ if [ "$?" != "0" ]; then
+ return 1;
+ fi
+
+ local UPGRADE_SUPPORT_PATH=${MNT_PNT}"/usr/libexec/"${UPGRADE_SUPPORT_DIR}
+ local UPGRADE_APPLY_PATH=${MNT_PNT}"/usr/bin/"${UPGRADE_APPLY_BIN}
+
+ cp "${UPGRADE_SUPPORT_PATH}"/* .
+ cp "${UPGRADE_APPLY_PATH}" "${UPGRADE_APPLY_BIN}"
+
+ # TODO buildstring?
+ fi
+
+ sudo umount ${MNT_PNT}
+ sudo rm -rf ${MNT_PNT}
+ sudo rm -f "${IMAGE}"
}
#==================
STARTING_DIR=${PWD}
+DATA_DIR=${STARTING_DIR}/data
COMMON_BINDIR=${STARTING_DIR}/../common/bin
fn_set_default_params
cd ${DELTA_DIR}
sudo cp ${COMMON_BINDIR}/unpack.sh ./
-# Ensure essential files are at beginning of archive (metadata, scripts and binaries to perform upgrade)
+if [ ! -r "${EXTRACTED_FILES_DIR}"/${UPGRADE_APPLY_BIN} ]; then
+ fn_extract_files_from_partition rootfs.img
+else
+ cp "${EXTRACTED_FILES_DIR}"/${UPGRADE_APPLY_BIN} .
+ cp "${EXTRACTED_FILES_DIR}"/${UPGRADE_SUPPORT_DIR}/* .
+fi
+
+
+if [ ! -r "${HAL_TARG_NAME}" ]; then
+ fn_extract_files_from_partition hal.img
+fi
+
fn_build_update_info
-cp "${BINB_TARG_NAME}" .
-cp "${BINA_TARG_NAME}"/* .
+# Ensure essential files are at beginning of archive (metadata, scripts and binaries to perform upgrade)
touch *.txt *.cfg *.ini *.sh *.ua
sha1sum * > checksum.SHA1
sudo tar --overwrite -cpf ../delta.tar $(ls -1td *)
# TODO names + export
local ROOTFS_TARG_NAME="rootfs-model-config.xml"
local TIZEN_TARG_NAME="tizen-build.conf"
- local BINA_TARG_NAME="upgrade-support"
- local BINB_TARG_NAME="upgrade-apply"
+ local UPGRADE_SUPPORT="upgrade-support"
+ local UPGRADE_APPLY="upgrade-apply"
local ROOTFS_MODEL_CONFIG_PATH=${MNT_PNT_OLD}"/etc/config/model-config.xml"
local TIZEN_BUILD_CONFIG_PATH=${MNT_PNT_OLD}"/etc/tizen-build.conf"
- local BINARY_A_PATH=${MNT_PNT_OLD}"/usr/libexec/"${BINA_TARG_NAME}
- local BINARY_B_PATH=${MNT_PNT_OLD}"/usr/bin/"${BINB_TARG_NAME}
+ local UPGRADE_SUPPORT_PATH=${MNT_PNT_NEW}"/usr/libexec/"${UPGRADE_SUPPORT}
+ local UPGRADE_APPLY_PATH=${MNT_PNT_NEW}"/usr/bin/"${UPGRADE_APPLY}
# build string building
echo "===== Start writing image versions ====="
# extract files/binaries
cp "${ROOTFS_MODEL_CONFIG_PATH}" ./${ROOTFS_TARG_NAME}
cp "${TIZEN_BUILD_CONFIG_PATH}" ./${TIZEN_TARG_NAME}
- cp -r "${BINARY_A_PATH}" ./${BINA_TARG_NAME}
- cp "${BINARY_B_PATH}" ./${BINB_TARG_NAME}
+ cp -r "${UPGRADE_SUPPORT_PATH}" ./${UPGRADE_SUPPORT}
+ cp "${UPGRADE_APPLY_PATH}" ./${UPGRADE_APPLY}
fi
}