8 #------------------------------------------------------------------------------
13 # read delta configuration file for generating update configuration file to be used during update.
14 # delta config file format : PART_NAME PART_BIN DELTA_BIN UPDATE_TYPE BLK_DEV BLK_OFFSET (deliminator : TAB)
21 if [ ! -r ${in_file} ]; then
22 echo "file ${in_file} cannot be read"
30 if [ "${line:0:1}" = "#" ]; then
36 if [ "${line_len}" = "0" ]; then
42 PART_NAME[${line_num}]=${fields[0]}
43 PART_BIN[${line_num}]=${fields[1]}
44 DELTA_BIN[${line_num}]=${fields[2]}
45 UPDATE_TYPE[${line_num}]=${fields[3]}
46 BLK_DEV[${line_num}]=${fields[4]}
47 BLK_OFFSET[${line_num}]=${fields[5]}
49 line_num=$(($line_num + 1))
55 if [ -f ${out_file} ]; then
56 sudo rm -fr ${out_file}
59 for ((update_idx=0;update_idx<PART_NUM;update_idx++))
61 f1=${PART_NAME[${update_idx}]}
62 f2=${DELTA_BIN[${update_idx}]}
63 f3=${UPDATE_TYPE[${update_idx}]}
64 f4=${BLK_DEV[${update_idx}]}
65 f5=${BLK_OFFSET[${update_idx}]}
67 if [ "${f3}" != "EXCLUDED" ]; then
68 echo -e "$f1\t\t$f2\t\t$f3\t\t$f4\t\t$f5" >> ${out_file}
75 #------------------------------------------------------------------------------
77 # fn_set_default_params
80 # set default params used globally in this script
83 fn_set_default_params()
86 MK_PART_DELTA=${COMMON_BINDIR}/mk_part_delta.sh
87 DELTA_CFG_PATH=./cfg/delta.cfg
88 UPDATE_CFG_PATH=./cfg/update.cfg
89 DELTA_UA=./data/delta.ua
90 UPDATE_MANAGER=./data/upgrade-trigger.sh
92 LOG_PATH=./data/Delta.log
93 # Getting date and minor version
96 while [ -d "result/${MONDATE}_${i}" ]
100 MONDATE="${MONDATE}_${i}"
101 echo "MONDATE = ${MONDATE}"
103 if [ "z${OLD_TAR_DIR}" = "z" ]; then
104 export OLD_TAR_DIR="old_tar"
106 if [ "z${NEW_TAR_DIR}" = "z" ]; then
107 export NEW_TAR_DIR="new_tar"
111 #------------------------------------------------------------------------------
113 # fn_swap_binary_files
116 # change old & new for making backward delta
119 fn_swap_binary_files()
121 TEMP_TAR_DIR=${OLD_TAR_DIR}
122 export OLD_TAR_DIR=${NEW_TAR_DIR}
123 export NEW_TAR_DIR=${TEMP_TAR_DIR}
126 #------------------------------------------------------------------------------
128 # fn_print_update_cfg
130 fn_print_update_cfg()
132 for ((update_idx=0;update_idx<PART_NUM;update_idx++))
134 echo "------------------------------"
135 echo "[PART_NAME] ${PART_NAME[${update_idx}]}"
136 echo "[DELTA_BIN] ${DELTA_BIN[${update_idx}]}"
137 echo "[UPDATE_TYPE] ${UPDATE_TYPE[${update_idx}]}"
138 echo "[BLK_DEV] ${BLK_DEV[${update_idx}]}"
139 echo "[BLK_OFFSET] ${BLK_OFFSET[${update_idx}]}"
142 echo "------------------------------"
145 #------------------------------------------------------------------------------
147 # fn_process_extra_delta
150 fn_process_extra_delta()
153 if [ "${part_name}" = "RAMDISK2" ]; then
154 if [ "${RAMDISK2_FULL_IMG}" = "0" ]; then
155 #--- delta recovery partition ---
156 ${MK_PART_DELTA} ${part_name} DELTA_IMG ${part_bin} ${delta_bin}
157 if [ "$?" = "0" ]; then
158 sudo mv data/${PART_OUT} ${RESULT_DIR}/${part_bin}
159 sudo mv ${RESULT_DIR}/${part_bin}/${delta_bin} ${DELTA_DIR}
162 if [ "${RAMDISK2_FULL_IMG}" = "1" ]; then
163 #--- full recovery partition ---
164 ${MK_PART_DELTA} ${part_name} FULL_IMG ${part_bin} ${delta_bin}
165 if [ "$?" = "0" ]; then
166 sudo mv data/${PART_OUT} ${RESULT_DIR}/${part_bin}
167 sudo mv ${RESULT_DIR}/${part_bin}/${part_bin} ${DELTA_DIR}
170 elif [ "${part_name}" = "RECOVERY" ]; then
171 #--- recovery kernel ---
172 sudo echo "1" > ${DELTA_DIR}/${delta_bin}
173 elif [ "${part_name}" = "EXTRA" ]; then
178 ###############################################################################
183 COMMON_BINDIR=${PWD}/../common/bin
185 fn_set_default_params
187 fn_gen_update_cfg ${DELTA_CFG_PATH} ${UPDATE_CFG_PATH}
189 ################### Make delta Forward and Backward #####################
190 if [ "z${FW_BW}" = "z" ]; then
191 #FW_BW="FW_DELTA BW_DELTA"
195 START_TIMESTAMP="$(date +%T)"
197 for Make_Delta in $FW_BW
199 #--- archive result directory ---
200 echo "Make $Make_Delta Delta file"
201 RESULT_DIR=result/$MONDATE/$Make_Delta
202 DELTA_DIR=${RESULT_DIR}/DELTA
203 mkdir -p ${DELTA_DIR}
205 if [ "$Make_Delta" = "BW_DELTA" ]; then
210 #--- make delta for each partition ---
211 for ((part_num=0;part_num<PART_NUM;part_num++))
213 part_name=${PART_NAME[${part_num}]}
214 update_type=${UPDATE_TYPE[${part_num}]}
215 part_bin=${PART_BIN[${part_num}]}
216 delta_bin=${DELTA_BIN[${part_num}]}
218 PART_OUT=${part_name}_OUT
220 if [ "${update_type}" = "EXCLUDED" ]; then
221 ${MK_PART_DELTA} ${part_name} ${update_type} ${part_bin} ${delta_bin}
223 elif [ "${update_type}" = "EXTRA" ]; then
224 fn_process_extra_delta
226 ${MK_PART_DELTA} ${part_name} ${update_type} ${part_bin} ${delta_bin}
227 if [ "$?" = "0" ]; then
228 if [ "${update_type}" = "DELTA_FS" ]; then
229 sudo mv data/${PART_OUT} ${RESULT_DIR}/${part_bin}
230 sudo mv ${RESULT_DIR}/${part_bin} ${DELTA_DIR}
232 sudo mv data/${PART_OUT} ${RESULT_DIR}/${part_bin}
233 sudo mv ${RESULT_DIR}/${part_bin}/${delta_bin} ${DELTA_DIR}
236 sudo rm -rf ${RESULT_DIR}/${part_bin}
237 echo "Error: Abort Delta Generation"
241 sudo rm -rf ${RESULT_DIR}/${part_bin}
244 #move update.cfg to delta directory
245 if [ -r ${UPDATE_CFG_PATH} ]; then
246 sudo cp ${UPDATE_CFG_PATH} ${DELTA_DIR}/update.cfg
247 sudo rm ${UPDATE_CFG_PATH}
249 if [ -r ${LOG_PATH} ]; then
250 sudo cp ${LOG_PATH} ${RESULT_DIR}/Delta.log
254 #--- move delta.ua to delta directory ---
255 if [ -r ${DELTA_UA} ]; then
256 sudo cp ${DELTA_UA} ${DELTA_DIR}/delta.ua
260 #--- move update manager script to delta directory ---
261 if [ -r ${UPDATE_MANAGER} ]; then
262 sudo cp ${UPDATE_MANAGER} ${DELTA_DIR}/upgrade-trigger.sh
263 sudo rm ${UPDATE_MANAGER}
266 #--- archive result directory ---
268 echo "tar result directory"
269 sudo tar cf ${MONDATE}_${Make_Delta}.tar $Make_Delta
272 echo "Making delta binary is End!! ($Make_Delta)"
275 if [ -r ${UPDATE_CFG_PATH} ]; then
276 sudo rm ${UPDATE_CFG_PATH}
279 sudo cp ${COMMON_BINDIR}/unpack.sh ./
280 sudo tar --overwrite -cf ../delta.tar *
283 END_TIMESTAMP="$(date +%T)"
285 echo "OVERALL TIMESTAMP : [START] ${START_TIMESTAMP} ~ [END] ${END_TIMESTAMP}"