+++ /dev/null
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-
-CONFIGURE_FILE(scripts/fota-init.sh.in scripts/fota-init.sh @ONLY)
-CONFIGURE_FILE(scripts/fus_rw-init.sh.in scripts/fus_rw-init.sh @ONLY)
-CONFIGURE_FILE(scripts/restore-passwd.sh.in scripts/restore-passwd.sh @ONLY)
Name: initrd-fota
Summary: package for building ramdisk-recovery.img
-Version: 1.1.2
+Version: 1.1.3
Release: 0
Group: System/Utilities
License: Apache-2.0
ExclusiveArch: %{arm}
BuildRequires: cmake
BuildRequires: gettext-tools
-BuildRequires: pkgconfig(libtzplatform-config)
Requires: util-linux
Requires: grep
%setup -q
%build
-%cmake . -DTZ_SYS_UPGRADE_DATA=%TZ_SYS_UPGRADE_DATA \
- -DTZ_SYS_UPGRADE=%TZ_SYS_UPGRADE
-%__make %{?jobs:-j%jobs}
+
%install
%define init_script_dir %{_libdir}/initrd-recovery/fota
-%define upgrade_dir %TZ_SYS_UPGRADE
+%define upgrade_dir %{_datadir}/upgrade
+
+mkdir -p %{buildroot}/opt/data/update
mkdir -p %{buildroot}%{init_script_dir}
cp ./scripts/fota-init.sh %{buildroot}%{init_script_dir}/fota-init.sh
%attr(700,root,root) %{init_script_dir}/*.sh
%attr(700,root,root) %{upgrade_dir}/restore-passwd.sh
%attr(700,root,root) %{_datadir}/initrd-recovery/initrd.list.d/*.list
+%attr(777,system,system) /opt/data/update
--- /dev/null
+#!/bin/bash
+
+WITH_USR_PART=
+
+FAKE_ROOT=/system
+
+UPI_NO_DELTA_ERROR=fb15
+UPI_NO_UA_ERROR=fa17
+
+STATUS_DIR=${FAKE_ROOT}/opt/data/update
+STATUS_FILE=${STATUS_DIR}/RW.STATUS
+DELTA_PATH_FILE=${STATUS_DIR}/DELTA.PATH
+INT_LOG_DIR=${STATUS_DIR}
+INT_LOG_FILE=${INT_LOG_DIR}/fota_internal.log
+
+FOTA_LOG_DIR=/opt/data/update
+FOTA_RESULT_DIR=${FOTA_LOG_DIR}
+FOTA_TEMP_DIR=${FOTA_LOG_DIR}
+
+PART_TBL_FILE="part_tbl.txt"
+PART_TBL_PATH=${FOTA_TEMP_DIR}/${PART_TBL_FILE}
+
+CAT="/bin/cat"
+SYNC="/bin/sync"
+MKDIR="/bin/mkdir"
+REBOOT="/sbin/reboot"
+MOUNT="/bin/mount"
+UMOUNT="/bin/umount"
+GREP="/bin/grep"
+CUT="/usr/bin/cut"
+TR="/usr/bin/tr"
+BLKID="/usr/sbin/blkid"
+SORT="/usr/bin/sort"
+SED="/usr/bin/sed"
+WC="/usr/bin/wc"
+
+FOTA_GUI="/usr/bin/fota_gui"
+FOTA_GUI_ENABLE=
+
+SYSTEM_DATA_MNT=opt
+USER_MNT=opt/usr
+
+#------------------------------------------------
+# get partition id
+#------------------------------------------------
+get_partition_id() {
+ PART_ROOTFS=$("$BLKID" --match-token PARTLABEL=rootfs -o device || "$BLKID" --match-token LABEL=rootfs -o device)
+ PART_SYSTEM_DATA=$("$BLKID" --match-token PARTLABEL=system-data -o device || "$BLKID" --match-token LABEL=system-data -o device)
+ PART_USER=$("$BLKID" --match-token PARTLABEL=user -o device || "$BLKID" --match-token LABEL=user -o device)
+}
+
+#------------------------------------------------
+# check_user_partition
+#------------------------------------------------
+check_user_partition() {
+ RET=$("$CAT" ${FAKE_ROOT}/etc/fstab | "$GREP" "user")
+ if [ "z$RET" = "z" ]; then
+ return 0
+ fi
+ return 1
+}
+
+#------------------------------------------------
+# mount_partitions
+#------------------------------------------------
+mount_partitions() {
+ get_partition_id
+
+ "$MOUNT" -t ext4 -o ro ${PART_ROOTFS} ${FAKE_ROOT}
+ "$MOUNT" -t ext4 ${PART_SYSTEM_DATA} ${FAKE_ROOT}/${SYSTEM_DATA_MNT}
+
+ check_user_partition
+ WITH_USR_PART=$?
+ if [ "$WITH_USR_PART" = "1" ]; then
+ "$MOUNT" -t ext4 ${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
+}
+
+#------------------------------------------------
+# umount_partitions
+#------------------------------------------------
+umount_partitions() {
+
+ "$UMOUNT" ${FAKE_ROOT}/dev/pts
+ "$UMOUNT" ${FAKE_ROOT}/dev
+ "$UMOUNT" ${FAKE_ROOT}/sys
+ "$UMOUNT" ${FAKE_ROOT}/proc
+
+ if [ "$WITH_USR_PART" = "1" ]; then
+ "$UMOUNT" ${FAKE_ROOT}/${USER_MNT}
+ fi
+ "$UMOUNT" ${FAKE_ROOT}/${SYSTEM_DATA_MNT}
+ "$UMOUNT" ${FAKE_ROOT}
+}
+
+#------------------------------------------------
+# handle_no_delta
+#------------------------------------------------
+handle_no_delta() {
+ echo "delta does not exist ..." >> ${INT_LOG_FILE}
+
+ echo "${UPI_NO_DELTA_ERROR}" > ${RESULT_FILE}
+}
+
+#------------------------------------------------
+# handle_no_ua
+#------------------------------------------------
+handle_no_ua() {
+ echo "ua does not exist ..." >> ${INT_LOG_FILE}
+
+ echo "${UPI_NO_UA_ERROR}" > ${RESULT_FILE}
+}
+
+#------------------------------------------------
+# do_create_part_table
+#------------------------------------------------
+do_create_part_table() {
+
+ EMMC_DEVICE="/dev/mmcblk0"
+ 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}
+ "$SYNC"
+}
+
+#------------------------------------------------
+# do_fota_update
+#------------------------------------------------
+do_fota_update() {
+ echo "fota update start ..." >> ${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}
+ fi
+
+ UA=${DELTA_DIR}/delta.ua
+ if [ ! -s ${UA} ]; then
+ handle_no_ua
+ return 1
+ fi
+
+ /bin/chmod +x ${UA}
+
+ DELTA=${DELTA_DIR}/delta.tar
+ 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}
+ return 1
+ fi
+
+ VERIFY_TOOL=/usr/sbin/upg-verifier
+ if [ -e ${VERIFY_TOOL} ]; then
+ ${VERIFY_TOOL} ${DELTA}
+ if [ $? -ne 0 ]; 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}
+ fi
+
+ if [ "$FOTA_GUI_ENABLE" = "1" ]; then
+ ${UA} ${DELTA_DIR} ${FOTA_TEMP_DIR} 0
+ else
+ ${UA} ${DELTA_DIR} ${FOTA_TEMP_DIR} 1
+ fi
+
+ if [ $? -ne 0 ]; then
+ echo "update agent fail!!!" >> ${INT_LOG_FILE}
+ return 1
+ else
+ echo "update agent success"
+ return 0
+ fi
+
+}
+
+#------------------------------------------------
+# init_internal_log
+#------------------------------------------------
+init_internal_log() {
+
+ if [ -e "${INT_LOG_FILE}" ]; then
+ /bin/rm -fr ${INT_LOG_FILE}
+ fi
+}
+
+
+#------------------------------------------------
+# init_fota_dir
+#------------------------------------------------
+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}
+ fi
+ fi
+
+}
+
+#------------------------------------------------
+# do_reboot
+#------------------------------------------------
+do_reboot() {
+ echo "Reboot"
+ "$SYNC"
+ "$REBOOT"
+ while [ 1 ]
+ do
+ sleep 1
+ echo "."
+ done
+}
+
+#------------------------------------------------
+# check_for_rw_power_fail
+#------------------------------------------------
+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}
+ "$SYNC"
+ umount_partitions
+ exec /sbin/fus_rw-init
+ fi
+}
+
+#------------------------------------------------
+# check_for_fota_gui
+#------------------------------------------------
+check_for_fota_gui() {
+ if [ -r ${FOTA_GUI} ]; then
+ echo "GUI Enabled" >> ${INT_LOG_FILE}
+ FOTA_GUI_ENABLE=1
+ fi
+}
+
+
+#------------------------------------------------
+# Main Routine Start
+#------------------------------------------------
+
+mount_partitions
+
+# For debugging - It should be deleted on Release (TODO : tty like ttyS0, S1 should be selected automatically)
+/sbin/agetty -l /bin/bash -n --keep-baud 115200,38400,9600 ttyS0 linux &
+
+init_internal_log
+
+check_for_rw_power_fail
+
+"$MOUNT" -o remount,rw ${FAKE_ROOT}
+init_fota_dir
+
+check_for_fota_gui
+if [ "$FOTA_GUI_ENABLE" = "1" ]; then
+ export XDG_RUNTIME_DIR=/run
+ export TBM_DISPLAY_SERVER=1
+
+ /usr/bin/fota_gui &
+ /usr/bin/sleep 2
+fi
+do_fota_update
+fota_result=$?
+if [ "$FOTA_GUI_ENABLE" = "1" ]; then
+ /usr/bin/fota_gui_test -1
+fi
+if [ "$fota_result" = "0" ]; then
+ /bin/rm -fr ${DELTA_DIR}
+fi
+umount_partitions
+
+if [ "$fota_result" = "0" ]; then
+ exec /sbin/fus_rw-init
+else
+ echo "Upgrade FAILED"
+ do_reboot
+fi
+++ /dev/null
-#!/bin/bash
-
-WITH_USR_PART=
-
-FAKE_ROOT=/system
-
-UPI_NO_DELTA_ERROR=fb15
-UPI_NO_UA_ERROR=fa17
-
-STATUS_DIR=${FAKE_ROOT}@TZ_SYS_UPGRADE_DATA@
-STATUS_FILE=${STATUS_DIR}/RW.STATUS
-DELTA_PATH_FILE=${STATUS_DIR}/DELTA.PATH
-INT_LOG_DIR=${STATUS_DIR}
-INT_LOG_FILE=${INT_LOG_DIR}/fota_internal.log
-
-FOTA_LOG_DIR=@TZ_SYS_UPGRADE_DATA@
-FOTA_RESULT_DIR=${FOTA_LOG_DIR}
-FOTA_TEMP_DIR=${FOTA_LOG_DIR}
-
-PART_TBL_FILE="part_tbl.txt"
-PART_TBL_PATH=${FOTA_TEMP_DIR}/${PART_TBL_FILE}
-
-CAT="/bin/cat"
-SYNC="/bin/sync"
-MKDIR="/bin/mkdir"
-REBOOT="/sbin/reboot"
-MOUNT="/bin/mount"
-UMOUNT="/bin/umount"
-GREP="/bin/grep"
-CUT="/usr/bin/cut"
-TR="/usr/bin/tr"
-BLKID="/usr/sbin/blkid"
-SORT="/usr/bin/sort"
-SED="/usr/bin/sed"
-WC="/usr/bin/wc"
-
-FOTA_GUI="/usr/bin/fota_gui"
-FOTA_GUI_ENABLE=
-
-SYSTEM_DATA_MNT=opt
-USER_MNT=opt/usr
-
-#------------------------------------------------
-# get partition id
-#------------------------------------------------
-get_partition_id() {
- PART_ROOTFS=$("$BLKID" --match-token PARTLABEL=rootfs -o device || "$BLKID" --match-token LABEL=rootfs -o device)
- PART_SYSTEM_DATA=$("$BLKID" --match-token PARTLABEL=system-data -o device || "$BLKID" --match-token LABEL=system-data -o device)
- PART_USER=$("$BLKID" --match-token PARTLABEL=user -o device || "$BLKID" --match-token LABEL=user -o device)
-}
-
-#------------------------------------------------
-# check_user_partition
-#------------------------------------------------
-check_user_partition() {
- RET=$("$CAT" ${FAKE_ROOT}/etc/fstab | "$GREP" "user")
- if [ "z$RET" = "z" ]; then
- return 0
- fi
- return 1
-}
-
-#------------------------------------------------
-# mount_partitions
-#------------------------------------------------
-mount_partitions() {
- get_partition_id
-
- "$MOUNT" -t ext4 -o ro ${PART_ROOTFS} ${FAKE_ROOT}
- "$MOUNT" -t ext4 ${PART_SYSTEM_DATA} ${FAKE_ROOT}/${SYSTEM_DATA_MNT}
-
- check_user_partition
- WITH_USR_PART=$?
- if [ "$WITH_USR_PART" = "1" ]; then
- "$MOUNT" -t ext4 ${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
-}
-
-#------------------------------------------------
-# umount_partitions
-#------------------------------------------------
-umount_partitions() {
-
- "$UMOUNT" ${FAKE_ROOT}/dev/pts
- "$UMOUNT" ${FAKE_ROOT}/dev
- "$UMOUNT" ${FAKE_ROOT}/sys
- "$UMOUNT" ${FAKE_ROOT}/proc
-
- if [ "$WITH_USR_PART" = "1" ]; then
- "$UMOUNT" ${FAKE_ROOT}/${USER_MNT}
- fi
- "$UMOUNT" ${FAKE_ROOT}/${SYSTEM_DATA_MNT}
- "$UMOUNT" ${FAKE_ROOT}
-}
-
-#------------------------------------------------
-# handle_no_delta
-#------------------------------------------------
-handle_no_delta() {
- echo "delta does not exist ..." >> ${INT_LOG_FILE}
-
- echo "${UPI_NO_DELTA_ERROR}" > ${RESULT_FILE}
-}
-
-#------------------------------------------------
-# handle_no_ua
-#------------------------------------------------
-handle_no_ua() {
- echo "ua does not exist ..." >> ${INT_LOG_FILE}
-
- echo "${UPI_NO_UA_ERROR}" > ${RESULT_FILE}
-}
-
-#------------------------------------------------
-# do_create_part_table
-#------------------------------------------------
-do_create_part_table() {
-
- EMMC_DEVICE="/dev/mmcblk0"
- 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}
- "$SYNC"
-}
-
-#------------------------------------------------
-# do_fota_update
-#------------------------------------------------
-do_fota_update() {
- echo "fota update start ..." >> ${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}
- fi
-
- UA=${DELTA_DIR}/delta.ua
- if [ ! -s ${UA} ]; then
- handle_no_ua
- return 1
- fi
-
- /bin/chmod +x ${UA}
-
- DELTA=${DELTA_DIR}/delta.tar
- 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}
- return 1
- fi
-
- VERIFY_TOOL=/usr/sbin/upg-verifier
- if [ -e ${VERIFY_TOOL} ]; then
- ${VERIFY_TOOL} ${DELTA}
- if [ $? -ne 0 ]; 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}
- fi
-
- if [ "$FOTA_GUI_ENABLE" = "1" ]; then
- ${UA} ${DELTA_DIR} ${FOTA_TEMP_DIR} 0
- else
- ${UA} ${DELTA_DIR} ${FOTA_TEMP_DIR} 1
- fi
-
- if [ $? -ne 0 ]; then
- echo "update agent fail!!!" >> ${INT_LOG_FILE}
- return 1
- else
- echo "update agent success"
- return 0
- fi
-
-}
-
-#------------------------------------------------
-# init_internal_log
-#------------------------------------------------
-init_internal_log() {
-
- if [ -e "${INT_LOG_FILE}" ]; then
- /bin/rm -fr ${INT_LOG_FILE}
- fi
-}
-
-
-#------------------------------------------------
-# init_fota_dir
-#------------------------------------------------
-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}
- fi
- fi
-
-}
-
-#------------------------------------------------
-# do_reboot
-#------------------------------------------------
-do_reboot() {
- echo "Reboot"
- "$SYNC"
- "$REBOOT"
- while [ 1 ]
- do
- sleep 1
- echo "."
- done
-}
-
-#------------------------------------------------
-# check_for_rw_power_fail
-#------------------------------------------------
-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}
- "$SYNC"
- umount_partitions
- exec /sbin/fus_rw-init
- fi
-}
-
-#------------------------------------------------
-# check_for_fota_gui
-#------------------------------------------------
-check_for_fota_gui() {
- if [ -r ${FOTA_GUI} ]; then
- echo "GUI Enabled" >> ${INT_LOG_FILE}
- FOTA_GUI_ENABLE=1
- fi
-}
-
-
-#------------------------------------------------
-# Main Routine Start
-#------------------------------------------------
-
-mount_partitions
-
-# For debugging - It should be deleted on Release (TODO : tty like ttyS0, S1 should be selected automatically)
-/sbin/agetty -l /bin/bash -n --keep-baud 115200,38400,9600 ttyS0 linux &
-
-init_internal_log
-
-check_for_rw_power_fail
-
-"$MOUNT" -o remount,rw ${FAKE_ROOT}
-init_fota_dir
-
-check_for_fota_gui
-if [ "$FOTA_GUI_ENABLE" = "1" ]; then
- export XDG_RUNTIME_DIR=/run
- export TBM_DISPLAY_SERVER=1
-
- /usr/bin/fota_gui &
- /usr/bin/sleep 2
-fi
-do_fota_update
-fota_result=$?
-if [ "$FOTA_GUI_ENABLE" = "1" ]; then
- /usr/bin/fota_gui_test -1
-fi
-if [ "$fota_result" = "0" ]; then
- /bin/rm -fr ${DELTA_DIR}
-fi
-umount_partitions
-
-if [ "$fota_result" = "0" ]; then
- exec /sbin/fus_rw-init
-else
- echo "Upgrade FAILED"
- do_reboot
-fi
--- /dev/null
+#!/bin/bash
+
+WITH_USR_PART=
+
+FAKE_ROOT=/system
+
+SYNC="/bin/sync"
+REBOOT="/sbin/reboot"
+
+INT_LOG_DIR=${FAKE_ROOT}/opt/data/update
+INT_LOG_FILE=${INT_LOG_DIR}/fota_internal.log
+
+CAT="/bin/cat"
+MOUNT="/bin/mount"
+UMOUNT="/bin/umount"
+GREP="/bin/grep"
+BLKID="/usr/sbin/blkid"
+
+SYSTEM_DATA_MNT=opt
+USER_MNT=opt/usr
+
+#------------------------------------------------
+# get partition id
+#------------------------------------------------
+get_partition_id() {
+ PART_ROOTFS=$("$BLKID" --match-token PARTLABEL=rootfs -o device || "$BLKID" --match-token LABEL=rootfs -o device)
+ PART_SYSTEM_DATA=$("$BLKID" --match-token PARTLABEL=system-data -o device || "$BLKID" --match-token LABEL=system-data -o device)
+ PART_USER=$("$BLKID" --match-token PARTLABEL=user -o device || "$BLKID" --match-token LABEL=user -o device)
+}
+
+#------------------------------------------------
+# check_user_partition
+#------------------------------------------------
+check_user_partition() {
+ RET=$("$CAT" ${FAKE_ROOT}/etc/fstab | "$GREP" "user")
+ if [ "z$RET" = "z" ]; then
+ return 0
+ fi
+ return 1
+}
+
+#------------------------------------------------
+# mount_partitions
+#------------------------------------------------
+mount_partitions() {
+ get_partition_id
+
+ "$MOUNT" -t ext4 -o ro ${PART_ROOTFS} ${FAKE_ROOT}
+ "$MOUNT" -t ext4 ${PART_SYSTEM_DATA} ${FAKE_ROOT}/${SYSTEM_DATA_MNT}
+
+ check_user_partition
+ WITH_USR_PART=$?
+ if [ "$WITH_USR_PART" = "1" ]; then
+ "$MOUNT" -t ext4 ${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 tmpfs tmpfs ${FAKE_ROOT}/tmp
+}
+
+#------------------------------------------------
+# do_reboot
+#------------------------------------------------
+do_reboot() {
+ echo "Reboot"
+ "$SYNC"
+ "$REBOOT"
+ while [ 1 ]
+ do
+ sleep 1
+ echo "."
+ done
+}
+
+#------------------------------------------------
+# do_rw_update
+#------------------------------------------------
+do_rw_update() {
+ echo "Change into rw update mode" >> ${INT_LOG_FILE}
+
+ # Pre-patches
+ /bin/chroot ${FAKE_ROOT} /bin/sh -c /usr/share/upgrade/restore-passwd.sh
+
+ # Go to system-update.target
+ if [ $$ = 1 ]; then
+ cd ${FAKE_ROOT}
+ exec /bin/chroot . /sbin/init --unit=system-update.target $@
+ fi
+ do_reboot
+}
+
+#------------------------------------------------
+# Main Routine Start
+#------------------------------------------------
+mount_partitions
+
+echo "rw update mode start ..." >> ${INT_LOG_FILE}
+"$SYNC"
+
+do_rw_update
+
+++ /dev/null
-#!/bin/bash
-
-WITH_USR_PART=
-
-FAKE_ROOT=/system
-
-SYNC="/bin/sync"
-REBOOT="/sbin/reboot"
-
-INT_LOG_DIR=${FAKE_ROOT}@TZ_SYS_UPGRADE_DATA@
-INT_LOG_FILE=${INT_LOG_DIR}/fota_internal.log
-
-RESTORE_PASSWD_SCRIPT=@TZ_SYS_UPGRADE@/restore-passwd.sh
-
-CAT="/bin/cat"
-MOUNT="/bin/mount"
-UMOUNT="/bin/umount"
-GREP="/bin/grep"
-BLKID="/usr/sbin/blkid"
-
-SYSTEM_DATA_MNT=opt
-USER_MNT=opt/usr
-
-#------------------------------------------------
-# get partition id
-#------------------------------------------------
-get_partition_id() {
- PART_ROOTFS=$("$BLKID" --match-token PARTLABEL=rootfs -o device || "$BLKID" --match-token LABEL=rootfs -o device)
- PART_SYSTEM_DATA=$("$BLKID" --match-token PARTLABEL=system-data -o device || "$BLKID" --match-token LABEL=system-data -o device)
- PART_USER=$("$BLKID" --match-token PARTLABEL=user -o device || "$BLKID" --match-token LABEL=user -o device)
-}
-
-#------------------------------------------------
-# check_user_partition
-#------------------------------------------------
-check_user_partition() {
- RET=$("$CAT" ${FAKE_ROOT}/etc/fstab | "$GREP" "user")
- if [ "z$RET" = "z" ]; then
- return 0
- fi
- return 1
-}
-
-#------------------------------------------------
-# mount_partitions
-#------------------------------------------------
-mount_partitions() {
- get_partition_id
-
- "$MOUNT" -t ext4 -o ro ${PART_ROOTFS} ${FAKE_ROOT}
- "$MOUNT" -t ext4 ${PART_SYSTEM_DATA} ${FAKE_ROOT}/${SYSTEM_DATA_MNT}
-
- check_user_partition
- WITH_USR_PART=$?
- if [ "$WITH_USR_PART" = "1" ]; then
- "$MOUNT" -t ext4 ${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 tmpfs tmpfs ${FAKE_ROOT}/tmp
-}
-
-#------------------------------------------------
-# do_reboot
-#------------------------------------------------
-do_reboot() {
- echo "Reboot"
- "$SYNC"
- "$REBOOT"
- while [ 1 ]
- do
- sleep 1
- echo "."
- done
-}
-
-#------------------------------------------------
-# do_rw_update
-#------------------------------------------------
-do_rw_update() {
- echo "Change into rw update mode" >> ${INT_LOG_FILE}
-
- # Pre-patches
- /bin/chroot ${FAKE_ROOT} /bin/sh -c ${RESTORE_PASSWD_SCRIPT}
-
- # Go to system-update.target
- if [ $$ = 1 ]; then
- cd ${FAKE_ROOT}
- exec /bin/chroot . /sbin/init --unit=system-update.target $@
- fi
- do_reboot
-}
-
-#------------------------------------------------
-# Main Routine Start
-#------------------------------------------------
-mount_partitions
-
-echo "rw update mode start ..." >> ${INT_LOG_FILE}
-"$SYNC"
-
-do_rw_update
-
--- /dev/null
+#!/bin/sh
+BACKUP_HELPER="/usr/share/upgrade/rw-update-macro.inc"
+ETC_DIR="/opt/etc"
+UID_REGULAR_USER_MIN=5001
+UID_REGULAR_USER_MAX=10000
+
+source $BACKUP_HELPER
+
+# Restore etc links
+cp -af "$ETC_DIR/passwd" "$ETC_DIR/old_passwd"
+cp -af "$ETC_DIR/shadow" "$ETC_DIR/old_shadow"
+cp -af "$ETC_DIR/group" "$ETC_DIR/old_group"
+cp -af "$ETC_DIR/gshadow" "$ETC_DIR/old_gshadow"
+restore_backup_file -f "$ETC_DIR/passwd"
+restore_backup_file -f "$ETC_DIR/passwd-"
+restore_backup_file -f "$ETC_DIR/passwd.old"
+restore_backup_file -f "$ETC_DIR/shadow"
+restore_backup_file -f "$ETC_DIR/shadow-"
+restore_backup_file -f "$ETC_DIR/shadow.old"
+restore_backup_file -f "$ETC_DIR/group"
+restore_backup_file -f "$ETC_DIR/group-"
+restore_backup_file -f "$ETC_DIR/group.old"
+restore_backup_file -f "$ETC_DIR/gshadow"
+restore_backup_file -f "$ETC_DIR/gshadow-"
+restore_backup_file -f "$ETC_DIR/gshadow.old"
+
+awk -F':' '('${UID_REGULAR_USER_MIN}' < $3 && $3 < '${UID_REGULAR_USER_MAX}'){system("/usr/bin/getent shadow " $1 " || /usr/bin/sed -n " NR "," NR "p '${ETC_DIR}'/old_shadow >> '${ETC_DIR}'/shadow")}' $ETC_DIR/old_passwd
+awk -F':' '('${UID_REGULAR_USER_MIN}' < $3 && $3 < '${UID_REGULAR_USER_MAX}'){system("/usr/bin/getent passwd " $1 " || /usr/bin/echo " $0 " >> '${ETC_DIR}'/passwd")}' $ETC_DIR/old_passwd
+
+rm $ETC_DIR/old_passwd
+rm $ETC_DIR/old_shadow
+rm $ETC_DIR/old_group
+rm $ETC_DIR/old_gshadow
+++ /dev/null
-#!/bin/sh
-BACKUP_HELPER="@TZ_SYS_UPGRADE@/rw-update-macro.inc"
-ETC_DIR="/opt/etc"
-UID_REGULAR_USER_MIN=5001
-UID_REGULAR_USER_MAX=10000
-
-source $BACKUP_HELPER
-
-# Restore etc links
-cp -af "$ETC_DIR/passwd" "$ETC_DIR/old_passwd"
-cp -af "$ETC_DIR/shadow" "$ETC_DIR/old_shadow"
-cp -af "$ETC_DIR/group" "$ETC_DIR/old_group"
-cp -af "$ETC_DIR/gshadow" "$ETC_DIR/old_gshadow"
-restore_backup_file -f "$ETC_DIR/passwd"
-restore_backup_file -f "$ETC_DIR/passwd-"
-restore_backup_file -f "$ETC_DIR/passwd.old"
-restore_backup_file -f "$ETC_DIR/shadow"
-restore_backup_file -f "$ETC_DIR/shadow-"
-restore_backup_file -f "$ETC_DIR/shadow.old"
-restore_backup_file -f "$ETC_DIR/group"
-restore_backup_file -f "$ETC_DIR/group-"
-restore_backup_file -f "$ETC_DIR/group.old"
-restore_backup_file -f "$ETC_DIR/gshadow"
-restore_backup_file -f "$ETC_DIR/gshadow-"
-restore_backup_file -f "$ETC_DIR/gshadow.old"
-
-awk -F':' '('${UID_REGULAR_USER_MIN}' < $3 && $3 < '${UID_REGULAR_USER_MAX}'){system("/usr/bin/getent shadow " $1 " || /usr/bin/sed -n " NR "," NR "p '${ETC_DIR}'/old_shadow >> '${ETC_DIR}'/shadow")}' $ETC_DIR/old_passwd
-awk -F':' '('${UID_REGULAR_USER_MIN}' < $3 && $3 < '${UID_REGULAR_USER_MAX}'){system("/usr/bin/getent passwd " $1 " || /usr/bin/echo " $0 " >> '${ETC_DIR}'/passwd")}' $ETC_DIR/old_passwd
-
-rm $ETC_DIR/old_passwd
-rm $ETC_DIR/old_shadow
-rm $ETC_DIR/old_group
-rm $ETC_DIR/old_gshadow