6 fn_set_default_params()
11 DELTA_CFG_PATH=${CFG_DIR}/delta.cfg
12 UPDATE_CFG_PATH=${DATA_DIR}/update.cfg
13 UPDATE_INFO_FILE=update-info.ini
14 UPDATE_INFO_ORIG_PATH=${CFG_DIR}/${UPDATE_INFO_FILE}.in
15 UPDATE_INFO_PATH=${DATA_DIR}/${UPDATE_INFO_FILE}
16 SETUP_SCRIPT_PATH=${CFG_DIR}/setup.sh
18 LOG_PATH=${DATA_DIR}/Delta.log
19 BUILD_STRING_FILE=build_string.txt
20 BUILD_STRING_PATH=${DATA_DIR}/${BUILD_STRING_FILE}
21 # Getting date and minor version
24 while [ -d "result/${MONDATE}_${i}" ]
28 MONDATE="${MONDATE}_${i}"
29 echo "MONDATE = ${MONDATE}"
32 RESULT_DIR=result/$MONDATE/FW_DELTA
33 DELTA_DIR=${RESULT_DIR}/DELTA
36 DIR_WITH_IMAGES=${DATA_DIR}/images
37 mkdir -p ${DIR_WITH_IMAGES}
44 echo "===== Start writing image versions ====="
45 local TMP_MNT_PNT="TMP_MNT_PNT"
46 mkdir -p ${TMP_MNT_PNT}
48 local OLD_BUILD_STRING="0.0"
50 sudo mount -o loop ${ROOTFS_IMG} ${TMP_MNT_PNT}
51 local NEW_BUILD_STRING=`cat ${TMP_MNT_PNT}/etc/info.ini | grep "Release=" | sed "s/Release=//" | sed "s/;$//"`
52 local BINOUT="$(LC_ALL=C LANG=C file -b ${TMP_MNT_PNT}/bin/ls)"
54 # Copy upgrade scripts
55 cp -Rd ${TMP_MNT_PNT}/usr/libexec/upgrade-support/* ${DELTA_DIR}
56 sudo umount ${TMP_MNT_PNT}
59 # ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, ...
60 *ELF*64-bit*x86-64*) ARCHITECTURE=x86-64;;
62 # ELF 32-bit LSB shared object, ARM, EABI5 version, dynamically linked, interpreter /lib/ld-linux.so.3, ...
63 *ELF*32-bit*ARM,*) ARCHITECTURE=arm32;;
65 # ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, ...
66 *ELF*64-bit*ARM*aarch64*) ARCHITECTURE=arm64;;
69 echo "${BUILD_STRING_FILE} : ${OLD_BUILD_STRING}@${NEW_BUILD_STRING}"
70 echo -n ${OLD_BUILD_STRING}@${NEW_BUILD_STRING} > ${BUILD_STRING_PATH}
72 sed -e "s,@SOURCE_VERSION@,${OLD_BUILD_STRING},g" \
73 -e "s,@TARGET_VERSION@,${NEW_BUILD_STRING},g" \
74 -e "s,@ARCHITECTURE@,${ARCHITECTURE},g" \
75 -e "s,@IMAGE_TYPE@,all,g" \
76 < "${UPDATE_INFO_ORIG_PATH}" > "${UPDATE_INFO_PATH}"
78 echo "update-info.ini:"
79 cat "${UPDATE_INFO_PATH}"
81 echo "===== Finish writing image versions ====="
88 echo "Read ${in_file}"
90 if [ ! -r ${in_file} ]; then
91 echo "file ${in_file} cannot be read"
99 if [ "${line:0:1}" = "#" ]; then
105 if [ "${line_len}" = "0" ]; then
111 PART_NAME[${line_num}]=${fields[0]}
112 PART_BIN[${line_num}]=${fields[1]}
113 DELTA_BIN[${line_num}]=${fields[2]}
115 line_num=$(($line_num + 1))
123 fn_extract_all_images()
125 echo "Extracting archives with images:"
126 for tar_file in "${DATA_DIR}/${NEW_TAR_DIR}"/*.{tar,tar.gz}
128 echo -e "\t$(basename ${tar_file})"
129 tar xf "${tar_file}" -C "${DIR_WITH_IMAGES}"
140 echo -ne "Add an image for ${PART_NAME} (${PART_BIN} -> ${DELTA_BIN})"
141 IMG_SIZE=$(du -b ${DIR_WITH_IMAGES}/${PART_BIN} | awk '{print $1}')
142 SHA1_SUM=$(sha1sum ${DIR_WITH_IMAGES}/${PART_BIN} | awk '{print $1}')
143 echo -e "\t\t${IMG_SIZE}\t[${SHA1_SUM}]"
145 if [ "${PART_NAME}" == "rootfs" ]; then
146 fn_gen_metadata ${DIR_WITH_IMAGES}/${PART_BIN}
149 sudo mv ${DIR_WITH_IMAGES}/${PART_BIN} ${DELTA_DIR}/${DELTA_BIN}
150 sudo chown ${MY_ID}:${MY_ID} ${DELTA_DIR}/${PART_BIN}
152 echo -e "${PART_NAME}\t${DELTA_BIN}\tPRE_UA\t/dev/null\t0\t0\t${IMG_SIZE}\t0\t${SHA1_SUM}" >> ${UPDATE_CFG_PATH}
157 echo "Make full delta file"
158 fn_extract_all_images $DIR_WITH_IMAGES
160 for ((part_num=0;part_num<PART_NUM;part_num++))
162 part_name=${PART_NAME[${part_num}]}
163 part_bin=${PART_BIN[${part_num}]}
164 delta_bin=${DELTA_BIN[${part_num}]}
166 fn_copy_image ${part_name} ${part_bin} ${delta_bin}
167 if [ "$?" != "0" ]; then
168 echo "Error: Abort Delta Generation"
173 #move update.cfg to delta directory
174 if [ -r ${UPDATE_CFG_PATH} ]; then
175 sudo cp ${UPDATE_CFG_PATH} ${DELTA_DIR}/update.cfg
176 sudo rm ${UPDATE_CFG_PATH}
178 if [ -r ${LOG_PATH} ]; then
179 sudo cp ${LOG_PATH} ${RESULT_DIR}/Delta.log
183 if [ -r ${BUILD_STRING_PATH} ]; then
184 sudo cp ${BUILD_STRING_PATH} ${DELTA_DIR}/${BUILD_STRING_FILE}
185 sudo rm ${BUILD_STRING_PATH}
188 if [ -r ${UPDATE_INFO_PATH} ]; then
189 sudo cp ${UPDATE_INFO_PATH} ${DELTA_DIR}/${UPDATE_INFO_FILE}
190 sudo rm ${UPDATE_INFO_PATH}
193 if [ -r ${SETUP_SCRIPT_PATH} ]; then
194 sudo cp ${SETUP_SCRIPT_PATH} ${DELTA_DIR}/setup.sh
197 if [ -r ${DIR_WITH_IMAGES} ]; then
198 sudo rm -r ${DIR_WITH_IMAGES}
201 #--- archive result directory ---
202 pushd result/$MONDATE/FW_DELTA/DELTA/
203 echo "tar result directory"
204 sudo tar cf delta.tar *
207 echo "Making delta binary is End!!"
214 COMMON_BINDIR=${PWD}/../common/bin
216 fn_set_default_params
218 fn_read_delta_cfg ${DELTA_CFG_PATH}