Revert "Apply TZ_SYS_UPGRADE path to initrd scripts" 06/208506/2 accepted/tizen/unified/20190626.114504 submit/tizen/20190626.063141
authorKichan Kwon <k_c.kwon@samsung.com>
Tue, 25 Jun 2019 08:00:26 +0000 (17:00 +0900)
committerKichan Kwon <k_c.kwon@samsung.com>
Wed, 26 Jun 2019 01:08:57 +0000 (10:08 +0900)
This reverts commit 24eccbbd98802c7d6ccab307b95b35ed62b4cbc8.

Change-Id: I1793aa1e4360a2e1038115446b9e6080dd89387f
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
CMakeLists.txt [deleted file]
packaging/initrd-fota.spec
scripts/fota-init.sh [new file with mode: 0755]
scripts/fota-init.sh.in [deleted file]
scripts/fus_rw-init.sh [new file with mode: 0755]
scripts/fus_rw-init.sh.in [deleted file]
scripts/restore-passwd.sh [new file with mode: 0755]
scripts/restore-passwd.sh.in [deleted file]

diff --git a/CMakeLists.txt b/CMakeLists.txt
deleted file mode 100644 (file)
index 516f9c5..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-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)
index ffe36fa3c2b8b82df77c8c18029c3ceab0dffe43..74e5e56f5d07980adf0092c83dcfc7bf081922bb 100755 (executable)
@@ -1,6 +1,6 @@
 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
@@ -8,7 +8,6 @@ Source0:    %{name}-%{version}.tar.gz
 ExclusiveArch: %{arm}
 BuildRequires: cmake
 BuildRequires: gettext-tools
-BuildRequires: pkgconfig(libtzplatform-config)
 
 Requires: util-linux
 Requires: grep
@@ -25,14 +24,14 @@ package for building partition image for RAMDISK2 (ramdisk-recovery.img)
 %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
@@ -50,3 +49,4 @@ cp ./scripts/40-fota.list %{buildroot}%{_datadir}/initrd-recovery/initrd.list.d
 %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
diff --git a/scripts/fota-init.sh b/scripts/fota-init.sh
new file mode 100755 (executable)
index 0000000..34ea885
--- /dev/null
@@ -0,0 +1,320 @@
+#!/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
diff --git a/scripts/fota-init.sh.in b/scripts/fota-init.sh.in
deleted file mode 100755 (executable)
index 8cff12a..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-#!/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
diff --git a/scripts/fus_rw-init.sh b/scripts/fus_rw-init.sh
new file mode 100755 (executable)
index 0000000..7aba163
--- /dev/null
@@ -0,0 +1,104 @@
+#!/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
+
diff --git a/scripts/fus_rw-init.sh.in b/scripts/fus_rw-init.sh.in
deleted file mode 100755 (executable)
index b58ac9b..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/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
-
diff --git a/scripts/restore-passwd.sh b/scripts/restore-passwd.sh
new file mode 100755 (executable)
index 0000000..9efb8ed
--- /dev/null
@@ -0,0 +1,33 @@
+#!/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
diff --git a/scripts/restore-passwd.sh.in b/scripts/restore-passwd.sh.in
deleted file mode 100755 (executable)
index f779bf4..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/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