DOWNLOAD_DELTA=$1
IMG_VERIFIER="/usr/sbin/img-verifier"
+SCRIPT_NAME="upgrade-trigger.sh"
+LOG_FILE="/tmp/upgrade-trigger.log"
+#------------------------------------------------
+# log msg [file]
+#------------------------------------------------
+log() {
+ # log format: [script_name][tag]actual_log
+ LOG="[${SCRIPT_NAME}]$1"
+ if [ "$2" != "" ]; then
+ echo "$LOG" >> "$2"
+ fi
+ echo "$LOG"
+}
+
+rm -f "$LOG_FILE" && touch "$LOG_FILE"
+
if [ "$#" != "1" ] || [ ! -f "$1" ]; then
- echo "[Error] Usage: $0 path_to_delta.tar[.gz]"
+ log "[Error] Usage: $0 path_to_delta.tar[.gz]" "$LOG_FILE"
exit 1
fi
elif tar tf "$DOWNLOAD_DELTA" 1>/dev/null; then
DELTA_TAR="$FOTA_DIR/delta.tar"
else
- echo "[Error] Usage $0 path_to_delta.tar[.gz]"
+ log "[Error] Usage $0 path_to_delta.tar[.gz]" "$LOG_FILE"
exit 1
fi
+log "[Info] Using <$DELTA_TAR> delta file." "$LOG_FILE"
+
flash_pre_image() {
- echo "[Info] Flash images for update..."
+ log "[Info] Flash images for update..." "$LOG_FILE"
CONFIG_FILE="update.cfg"
/bin/tar xvfp "$DELTA_TAR" -C "$FOTA_DIR" "$CONFIG_FILE"
if [ ! -e "$FOTA_DIR/$CONFIG_FILE" ]; then
- echo "[Error] There is no $CONFIG_FILE"
+ log "[Error] There is no $CONFIG_FILE" "$LOG_FILE"
return
fi
if [ "$TYPE" = "PRE_UA" ]; then
/bin/tar xvfp "$DELTA_TAR" -C "$FOTA_DIR" "$DELTA_NAME"
if [ ! -e "$FOTA_DIR/$DELTA_NAME" ]; then
- echo "[Info] There is no delta for $PART_NAME"
+ log "[Info] There is no delta for $PART_NAME" "$LOG_FILE"
continue
fi
DEV="${EMMC_DEVICE}p${DEV_NUM}"
fi
- echo "[Info] Flashing $DELTA_NAME... to $DEV"
+ log "[Info] Flashing $DELTA_NAME... to $DEV" "$LOG_FILE"
dd if="$FOTA_DIR/$DELTA_NAME" of="$DEV" bs=1024
rm -f "$FOTA_DIR/$DELTA_NAME"
fi
SETUP_SCRIPT_PATH=$FOTA_DIR/$SETUP_SCRIPT_NAME
/bin/tar xvfp "$DELTA_TAR" -C "$FOTA_DIR" "$SETUP_SCRIPT_NAME" ||\
- (echo "setup.sh does not exist, skipping." && return)
+ (log "[Error] setup.sh does not exist, skipping." "$LOG_FILE" && return)
if [ -e "$SETUP_SCRIPT_PATH" ]; then
/bin/sh "$SETUP_SCRIPT_PATH"
# Check fota directory
if [ ! -d "$FOTA_DIR" ]; then
- echo "[Info] Create fota dir..."
+ log "[Info] Create fota dir..." "$LOG_FILE"
/bin/mkdir -p "$FOTA_DIR"
fi
if [ ! -d "$STATUS_DIR" ]; then
- echo "[Info] Create status dir..."
+ log "[Info] Create status dir..." "$LOG_FILE"
/bin/mkdir -p "$STATUS_DIR"
fi
fi
if [ "$DOWNLOAD_DELTA" -ef "$DELTA_TAR" ]; then
- echo "[Info] delta.tar[.gz] is already placed in correct directory."
+ log "[Info] delta.tar[.gz] is already placed in correct directory." "$LOG_FILE"
else
- echo "[Info] Copy delta.tar[.gz]..."
+ log "[Info] Copy delta.tar[.gz]..." "$LOG_FILE"
/bin/cp "$DOWNLOAD_DELTA" "$DELTA_TAR"
fi
# Verify delta.tar
if [ -e "$IMG_VERIFIER" ]; then
- echo "[Info] Package verifier is found. Verify $DELTA_TAR"
+ log "[Info] Package verifier is found. Verify $DELTA_TAR" "$LOG_FILE"
if ! "$IMG_VERIFIER" -i "$DELTA_TAR" -l "/opt/var/log/last_iv.log"; then
- echo "[Error] Update package verification FAILED..."
+ log "[Error] Update package verification FAILED..." "$LOG_FILE"
echo 5 > "$STATUS_DIR"/result
exit 1
else
- echo "[Info] Update package verification PASSED!"
+ log "[Info] Update package verification PASSED!" "$LOG_FILE"
fi
fi
flash_pre_image
# Extract delta.ua
-echo "[Info] Extract delta.ua..."
+log "[Info] Extract delta.ua..." "$LOG_FILE"
/bin/tar xvfp "$DELTA_TAR" -C "$FOTA_DIR" delta.ua
sync
sleep 1
# FOTA: /usr/bin/rw-update-prepare.sh
# Write delta saved path
-echo "[Info] Write paths..."
+log "[Info] Write paths..." "$LOG_FILE"
echo "$FOTA_DIR" > "$STATUS_DIR/DELTA.PATH"
dirname "$DOWNLOAD_DELTA" > "$STATUS_DIR/DOWNLOAD.PATH"
sync
# go to fota mode
-echo "[Info] Go TOTA update..."
+log "[Info] Go TOTA update..." "$LOG_FILE"
if ! /sbin/reboot fota; then
- echo "[Error] Failed to reboot fota"
+ log "[Error] Failed to reboot fota" "$LOG_FILE"
exit 100
fi