Modify clone_partitions(service, script) to check bootmode through hal 42/279742/1
authorSangYoun Kwak <sy.kwak@samsung.com>
Wed, 17 Aug 2022 06:23:08 +0000 (15:23 +0900)
committerSangYoun Kwak <sy.kwak@samsung.com>
Wed, 17 Aug 2022 06:23:08 +0000 (15:23 +0900)
Change-Id: I0d0c78a84749003900ce920cb17eb1650fc3bfbb
Signed-off-by: SangYoun Kwak <sy.kwak@samsung.com>
clone_partitions/clone_partitions.service
clone_partitions/clone_partitions.sh

index 7d73385..e296d5b 100644 (file)
@@ -1,13 +1,11 @@
 [Unit]
 Description=Clone partitions
 After=system-delayed-target-done.service
-ConditionKernelCommandLine=|bootmode=normal
-ConditionKernelCommandLine=|bootmode=ramdisk
 
 [Service]
 Type=simple
 SmackProcessLabel=System
-ExecStart=/usr/bin/sh -c "/usr/bin/sleep 60; /usr/bin/clone_partitions.sh"
+ExecStart=/usr/bin/clone_partitions.sh background
 RemainAfterExit=true
 Nice=19
 IOSchedulingClass=idle
index 5519009..faa0016 100644 (file)
@@ -75,6 +75,28 @@ case $1 in
                do_clone
                set_partition_status_ok
                ;;
+       "background")
+               # wait for 60 seconds to wait for bootup
+               sleep 60
+
+               BOOTMODE=$(device_board_get_boot_mode)
+               RET_BOOT_MODE=$?
+               if [ ${RET_BOOT_MODE} -ne 0 ]; then
+                       critical_log "[Error] Cannot get boot mode: ${RET_BOOT_MODE}"
+                       exit 1
+               fi
+
+               if [ "${BOOTMODE}" != "normal" ]; then
+                       log "[Info] bootmode is not \"normal\": ${BOOTMODE}"
+                       exit 0
+               fi
+
+               if [ "$(device_board_get_partition_ab_cloned)" -eq "1" ]; then
+                       log "[Info] Partitions already cloned"
+               else
+                       do_clone
+               fi
+               ;;
        *)
                if [ "$(device_board_get_partition_ab_cloned)" -eq "1" ]; then
                        log "[Info] Partitions already cloned"