mount_partitions() {
get_partition_id
- "$MOUNT" -o ro ${PART_ROOTFS} ${FAKE_ROOT}
- "$MOUNT" ${PART_SYSTEM_DATA} ${FAKE_ROOT}/${SYSTEM_DATA_MNT}
+ "$MOUNT" -o ro "${PART_ROOTFS}" "${FAKE_ROOT}"
+ "$MOUNT" "${PART_SYSTEM_DATA}" "${FAKE_ROOT}/${SYSTEM_DATA_MNT}"
if [ ! "z${PART_USER}" = "z" ]; then
- "$MOUNT" ${PART_USER} ${FAKE_ROOT}/${USER_MNT}
+ "$MOUNT" "${PART_USER}" "${FAKE_ROOT}/${USER_MNT}"
fi
- "$MOUNT" -t proc none ${FAKE_ROOT}/proc
- "$MOUNT" -t sysfs none ${FAKE_ROOT}/sys
- "$MOUNT" -t devtmpfs devtmpfs ${FAKE_ROOT}/dev
- "$MOUNT" -t devpts devpts ${FAKE_ROOT}/dev/pts
+ "$MOUNT" -t proc none "${FAKE_ROOT}/proc"
+ "$MOUNT" -t sysfs none "${FAKE_ROOT}/sys"
+ "$MOUNT" -t devtmpfs devtmpfs "${FAKE_ROOT}/dev"
+ "$MOUNT" -t devpts devpts "${FAKE_ROOT}/dev/pts"
}
#------------------------------------------------
#------------------------------------------------
umount_partitions() {
- "$UMOUNT" ${FAKE_ROOT}/dev/pts
- "$UMOUNT" ${FAKE_ROOT}/dev
- "$UMOUNT" ${FAKE_ROOT}/sys
- "$UMOUNT" ${FAKE_ROOT}/proc
+ "$UMOUNT" "${FAKE_ROOT}/dev/pts"
+ "$UMOUNT" "${FAKE_ROOT}/dev"
+ "$UMOUNT" "${FAKE_ROOT}/sys"
+ "$UMOUNT" "${FAKE_ROOT}/proc"
if [ ! "z${PART_USER}" = "z" ]; then
- "$UMOUNT" ${FAKE_ROOT}/${USER_MNT}
+ "$UMOUNT" "${FAKE_ROOT}/${USER_MNT}"
fi
- "$UMOUNT" ${FAKE_ROOT}/${SYSTEM_DATA_MNT}
- "$UMOUNT" ${FAKE_ROOT}
+ "$UMOUNT" "${FAKE_ROOT}/${SYSTEM_DATA_MNT}"
+ "$UMOUNT" "${FAKE_ROOT}"
}
#------------------------------------------------
# handle_no_delta
#------------------------------------------------
handle_no_delta() {
- echo "delta does not exist ..." >> ${INT_LOG_FILE}
+ echo "delta does not exist ..." >> "${INT_LOG_FILE}"
- echo "${UPI_NO_DELTA_ERROR}" > ${RESULT_FILE}
+ echo "${UPI_NO_DELTA_ERROR}" > "${RESULT_FILE}"
}
#------------------------------------------------
# handle_no_ua
#------------------------------------------------
handle_no_ua() {
- echo "ua does not exist ..." >> ${INT_LOG_FILE}
+ echo "ua does not exist ..." >> "${INT_LOG_FILE}"
- echo "${UPI_NO_UA_ERROR}" > ${RESULT_FILE}
+ echo "${UPI_NO_UA_ERROR}" > "${RESULT_FILE}"
}
#------------------------------------------------
do_create_part_table() {
EMMC_DEVICE="/dev/mmcblk0"
- PART_LIST=$("$BLKID" -o full | "$GREP" ${EMMC_DEVICE}p |
+ PART_LIST=$("$BLKID" -o full | "$GREP" "${EMMC_DEVICE}p" |
"$SED" -e 's/\/dev\/mmcblk0p//g' -e 's/\ .*LABEL=\"\(.*\).*$/\1/' |
"$CUT" -d '"' -f 1 | "$SED" 's/\:/\ /' |
"$TR" '[:upper:]' '[:lower:]' |
"$SORT" -k 1 -n)
PART_NUM=$(echo "$PART_LIST" | "$WC" -l)
- echo "$PART_NUM" > ${PART_TBL_PATH}
- echo "$PART_LIST" >> ${PART_TBL_PATH}
+ echo "$PART_NUM" > "${PART_TBL_PATH}"
+ echo "$PART_LIST" >> "${PART_TBL_PATH}"
"$SYNC"
}
# do_fota_update
#------------------------------------------------
do_fota_update() {
- echo "fota update start ..." >> ${INT_LOG_FILE}
+ echo "fota update start ..." >> "${INT_LOG_FILE}"
- DELTA_DIR=`cat ${DELTA_PATH_FILE}`
- echo "DELTA_DIR = ${DELTA_DIR}" >> ${INT_LOG_FILE}
+ DELTA_DIR=$("$CAT" "${DELTA_PATH_FILE}")
+ echo "DELTA_DIR = ${DELTA_DIR}" >> "${INT_LOG_FILE}"
RESULT_FILE=${FAKE_ROOT}${FOTA_RESULT_DIR}/result
- if [ -e ${RESULT_FILE} ]; then
- rm -fr ${RESULT_FILE}
+ if [ -e "${RESULT_FILE}" ]; then
+ rm -fr "${RESULT_FILE}"
fi
UA=${DELTA_DIR}/delta.ua
- if [ ! -s ${UA} ]; then
+ if [ ! -s "${UA}" ]; then
handle_no_ua
return 1
fi
- /bin/chmod +x ${UA}
+ /bin/chmod +x "${UA}"
DELTA=${DELTA_DIR}/delta.tar
- if [ ! -s ${DELTA} ]; then
+ if [ ! -s "${DELTA}" ]; then
handle_no_delta
return 1
fi
do_create_part_table
- if [ ! -e ${PART_TBL_PATH} ]; then
- echo "No partition table" >> ${INT_LOG_FILE}
+ if [ ! -e "${PART_TBL_PATH}" ]; then
+ echo "No partition table" >> "${INT_LOG_FILE}"
return 1
fi
VERIFY_TOOL=/usr/sbin/img-verifier
- if [ -e ${VERIFY_TOOL} ]; then
- ${VERIFY_TOOL} -i ${DELTA} -l "/opt/var/log/last_iv.log"
- if [ $? -ne 0 ]; then
- echo "signature verification failed!" >> ${INT_LOG_FILE}
+ if [ -e "${VERIFY_TOOL}" ]; then
+ if ! "${VERIFY_TOOL}" -i "${DELTA}" -l "/opt/var/log/last_iv.log"; then
+ echo "signature verification failed!" >> "${INT_LOG_FILE}"
return 1
else
echo "update package verification success"
fi
else
- echo "Warning: No signature verifier... Skip it" >> ${INT_LOG_FILE}
+ echo "Warning: No signature verifier... Skip it" >> "${INT_LOG_FILE}"
fi
+ FOTA_ARG="1"
if [ "$FOTA_GUI_ENABLE" = "1" ]; then
- ${UA} ${DELTA_DIR} ${FOTA_TEMP_DIR} 0
- else
- ${UA} ${DELTA_DIR} ${FOTA_TEMP_DIR} 1
+ FOTA_ARG="0"
fi
-
- if [ $? -ne 0 ]; then
- echo "update agent fail!!!" >> ${INT_LOG_FILE}
+ if ! "${UA}" "${DELTA_DIR}" "${FOTA_TEMP_DIR}" "$FOTA_ARG"; then
+ echo "update agent fail!!!" >> "${INT_LOG_FILE}"
return 1
else
echo "update agent success"
init_internal_log() {
if [ -e "${INT_LOG_FILE}" ]; then
- /bin/rm -fr ${INT_LOG_FILE}
+ /bin/rm -fr "${INT_LOG_FILE}"
fi
}
#------------------------------------------------
init_fota_dir() {
- TEST_DIR=${FAKE_ROOT}${FOTA_LOG_DIR}
- if [ ! -e ${TEST_DIR} ]; then
- "$MKDIR" -p ${TEST_DIR}
- if [ "$?" = "0" ]; then
- echo "success to create ${TEST_DIR}" >> ${INT_LOG_FILE}
- fi
- fi
-
- TEST_DIR=${FAKE_ROOT}${FOTA_RESULT_DIR}
- if [ ! -e ${TEST_DIR} ]; then
- "$MKDIR" -p ${TEST_DIR}
- if [ "$?" = "0" ]; then
- echo "success to create ${TEST_DIR}" >> ${INT_LOG_FILE}
- fi
- fi
-
- TEST_DIR=${FAKE_ROOT}${FOTA_TEMP_DIR}
- if [ ! -e ${TEST_DIR} ]; then
- "$MKDIR" -p ${TEST_DIR}
- if [ "$?" = "0" ]; then
- echo "success to create ${TEST_DIR}" >> ${INT_LOG_FILE}
+ TEST_DIRS=("${FAKE_ROOT}${FOTA_LOG_DIR}" "${FAKE_ROOT}${FOTA_RESULT_DIR}" "${FAKE_ROOT}${FOTA_TEMP_DIR}")
+ for TEST_DIR in "${TEST_DIRS[@]}"; do
+ if [ ! -e "${TEST_DIR}" ]; then
+ if "$MKDIR" -p "${TEST_DIR}"; then
+ echo "Successfully created <${TEST_DIR}>" >> "${INT_LOG_FILE}"
+ else
+ echo "Unable to create <${TEST_DIR}>"
+ fi
fi
- fi
-
+ done
}
#------------------------------------------------
echo "Reboot"
"$SYNC"
"$REBOOT"
- while [ 1 ]
+ while true
do
sleep 1
echo "."
#------------------------------------------------
check_for_rw_power_fail() {
# Case : Power fail during RW update after RO update
- if [ -r ${STATUS_FILE} ]; then
- echo "${STATUS_FILE} exists" >> ${INT_LOG_FILE}
- /bin/cat ${STATUS_FILE} >> ${INT_LOG_FILE}
+ if [ -r "${STATUS_FILE}" ]; then
+ echo "${STATUS_FILE} exists" >> "${INT_LOG_FILE}"
+ "$CAT" "${STATUS_FILE}" >> "${INT_LOG_FILE}"
"$SYNC"
umount_partitions
exec /sbin/fus_rw-init
# check_for_fota_gui
#------------------------------------------------
check_for_fota_gui() {
- if [ -r ${FOTA_GUI} ]; then
- echo "GUI Enabled" >> ${INT_LOG_FILE}
+ if [ -r "${FOTA_GUI}" ]; then
+ echo "GUI Enabled" >> "${INT_LOG_FILE}"
FOTA_GUI_ENABLE=1
fi
}
#------------------------------------------------
check_debug_mode() {
DEBUG_MODE_FILE=${FAKE_ROOT}/opt/usr/.upgdebug_ro
- if [ -f ${DEBUG_MODE_FILE} ]; then
- DEBUG_MODE_FILE_OWNER=$(${LS} -l ${DEBUG_MODE_FILE} | ${CUT} -d " " -f 3)
+ if [ -f "${DEBUG_MODE_FILE}" ]; then
+ DEBUG_MODE_FILE_OWNER=$("${LS}" -l "${DEBUG_MODE_FILE}" | "${CUT}" -d " " -f 3)
if [ "${DEBUG_MODE_FILE_OWNER}" = "0" ]; then
echo "Enter RO debug mode"
echo "If you want to continue FOTA, please remove ${DEBUG_MODE_FILE}"
# Wait until debug mode file is removed
- while [ -f ${DEBUG_MODE_FILE} ]; do
+ while [ -f "${DEBUG_MODE_FILE}" ]; do
sleep 3
done
echo "Debug mode file is removed. Resume FOTA"
else
- echo "Warning: somebody make non-root debug mode file... ignore it"
+ echo "Warning: somebody made non-root debug mode file... ignore it"
fi
fi
}
remake_hash_table() {
if [ -f "${VERITYCTL}" ]; then
if [ -f "${VERITY_HANDLER}" ]; then
- "$MOUNT" -o remount,ro ${FAKE_ROOT}
+ "$MOUNT" -o remount,ro "${FAKE_ROOT}"
- "${VERITY_HANDLER}" ${PART_ROOTFS}
- if [ $? -ne 0 ]; then
+ if ! "${VERITY_HANDLER}" "${PART_ROOTFS}"; then
echo "verity-handler fail!!!"
return 1
else
return 0
fi
else
- echo "Warning: ${VERITYCTL} exists but ${VERITY_HANDLER} not exists"
+ echo "Warning: ${VERITYCTL} exists but ${VERITY_HANDLER} does not exists"
return 2
fi
else
- echo "verityctl not exist. Skip hash remaking"
+ echo "verityctl does not exist. Skip hash remaking"
return 0
fi
}
check_for_rw_power_fail
-"$MOUNT" -o remount,rw ${FAKE_ROOT}
+"$MOUNT" -o remount,rw "${FAKE_ROOT}"
init_fota_dir
check_for_fota_gui
do_fota_update
fota_result=$?
if [ "$fota_result" = "0" ]; then
- /bin/rm -fr ${DELTA_DIR}/*
+ /bin/rm -fr "${DELTA_DIR:?}"/*
fi
remake_hash_table
remake_result=$?
RO_PROGRESS_FILE=/tmp/upgrade/ro_progress
-if [ -f ${RO_PROGRESS_FILE} ]; then
- echo -1 > ${RO_PROGRESS_FILE}
+if [ -f "${RO_PROGRESS_FILE}" ]; then
+ echo -1 > "${RO_PROGRESS_FILE}"
fi
umount_partitions