BLKID for PARTX not supported target 81/133281/7 accepted/tizen/unified/20170717.172321 submit/tizen/20170714.080717
authorSunmin Lee <sunm.lee@samsung.com>
Mon, 19 Jun 2017 06:12:35 +0000 (15:12 +0900)
committerSunmin Lee <sunm.lee@samsung.com>
Fri, 14 Jul 2017 01:49:49 +0000 (10:49 +0900)
In case of no partition name in some profile,
it can not get block device path properly.

BLKID, could be the substitution of PARTX.
BLKID would be used in case of some targets
that PARTX is not supported.

Change-Id: I910eda4ab59e760e35ea36addab8abd92fa08ec9
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
configure.ac
packaging/initrd-recovery.spec
src/initrd-recovery/00-initrd-recovery.list
src/initrd-recovery/init
src/system-recovery/50-system-recovery.list.m4
src/system-recovery/recovery-init.in

index 7ac9a26..0ba5c02 100644 (file)
@@ -77,6 +77,8 @@ if test "x$enable_recovery_gui" == "xyes"; then
        PKG_CHECK_MODULES(LIBPNG, [libpng])
        PKG_CHECK_MODULES(VCONF_INTERNAL_KEYS, [vconf-internal-keys])
        RECOVERY_GUI="GUI"
+else
+       RECOVERY_GUI="NO"
 fi
 
 AC_SUBST([RECOVERY_GUI])
index 2307725..4ca6d2d 100644 (file)
@@ -1,7 +1,7 @@
 Name:           initrd-recovery
 Summary:        Tools for system recovery
-Version:        0.1.0
-Release:        1
+Version:        0.1.1
+Release:        2
 Group:          System/Utilities
 License:        Apache-2.0
 ExclusiveArch:  %{arm}
index 9b8618d..711150b 100644 (file)
@@ -18,6 +18,7 @@ WITHLIBS="
 /usr/bin/umount
 /usr/lib/initrd-recovery/minireboot
 /usr/sbin/partx
+/usr/sbin/blkid
 "
 
 # LinkFileName:Target
index 85367ab..952da1c 100755 (executable)
@@ -18,6 +18,7 @@ AWK="/usr/bin/awk"
 CUT="/usr/bin/cut"
 TR="/usr/bin/tr"
 PARTX="/usr/sbin/partx"
+BLKID="/usr/sbin/blkid"
 
 #------------------------------------------------
 #       get partition id
@@ -25,11 +26,16 @@ PARTX="/usr/sbin/partx"
 get_partition_id() {
     EMMC_DEVICE="/dev/mmcblk0"
     RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE})
-    PART_ROOTFS=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "rootfs" {print $1}')
-    PART_SYSTEM_DATA=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "system-data" {print $1}')
-    PART_USER=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "user" {print $1}')
-    PART_CSC=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "csc" {print $1}')
-    PART_MODULES=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "module" {print $1}')
+    TEST=$(IFS=; echo $RET_PARTX | "$AWK" 'NR>1' | "$AWK" '{print $6}')
+    if [ "z$TEST" == "z" ]; then
+        PART_ROOTFS=$("$BLKID" -L "rootfs" -o device)
+        PART_SYSTEM_DATA=$("$BLKID" -L "system-data" -o device)
+        PART_USER=$("$BLKID" -L "user" -o device)
+    else
+        PART_ROOTFS=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "rootfs" {print $1}')
+        PART_SYSTEM_DATA=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "system-data" {print $1}')
+        PART_USER=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "user" {print $1}')
+    fi
 }
 
 #------------------------------------------------
@@ -42,7 +48,6 @@ mount_blk_partitions() {
     "$MOUNT" -t ext4 ${PART_ROOTFS} ${FAKE_ROOT}
     "$MOUNT" -t ext4 ${PART_SYSTEM_DATA} ${FAKE_ROOT}/opt
     "$MOUNT" -t ext4 ${PART_USER} ${FAKE_ROOT}/opt/usr
-    "$MOUNT" -t ext4 ${PART_CSC} ${FAKE_ROOT}/opt/system/csc
 }
 
 #------------------------------------------------
index 99ab2aa..f80200b 100644 (file)
@@ -37,8 +37,8 @@ WITHLIBS="
 /usr/bin/umount
 /usr/lib/initrd-recovery/minireboot
 /usr/sbin/partx
+/usr/sbin/blkid
 m4_ifdef(`RECOVERY_GUI', `/usr/lib/system-recovery/system-recovery')
-m4_ifdef(`WITH_DM_VERITY', `/usr/bin/verityctl')
 "
 
 # LinkFileName:Target
index 6197e86..64b1d66 100644 (file)
@@ -7,11 +7,11 @@ AWK="/usr/bin/awk"
 GREP="/usr/bin/grep"
 MOUNT="/usr/bin/mount"
 PARTX="/usr/sbin/partx"
+BLKID="/usr/sbin/blkid"
 REBOOT="/usr/lib/initrd-recovery/minireboot"
 SYNC="/usr/bin/sync"
 TOUCH="/usr/bin/touch"
 UMOUNT="/usr/bin/umount"
-VERITYCTL="/usr/bin/verityctl"
 
 #------------------------------------------------
 #       get partition id
@@ -19,11 +19,16 @@ VERITYCTL="/usr/bin/verityctl"
 get_partition_id() {
     EMMC_DEVICE="/dev/mmcblk0"
     RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE})
-    PART_ROOTFS=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "rootfs" {print $1}')
-    PART_SYSTEM_DATA=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "system-data" {print $1}')
-    PART_USER=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "user" {print $1}')
-    PART_CSC=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "csc" {print $1}')
-    PART_MODULES=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "module" {print $1}')
+    TEST=$(IFS=; echo $RET_PARTX | "$AWK" 'NR>1' | "$AWK" '{print $6}')
+    if [ "z$TEST" == "z" ]; then
+        PART_ROOTFS=$("$BLKID" -L "rootfs" -o device)
+        PART_SYSTEM_DATA=$("$BLKID" -L "system-data" -o device)
+        PART_USER=$("$BLKID" -L "user" -o device)
+    else
+        PART_ROOTFS=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "rootfs" {print $1}')
+        PART_SYSTEM_DATA=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "system-data" {print $1}')
+        PART_USER=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "user" {print $1}')
+    fi
 }
 
 #------------------------------------------------
@@ -33,21 +38,9 @@ mount_partitions() {
     echo "mount partitions"
     get_partition_id
 
-    if [ -e "$VERITYCTL" ]; then
-       "$VERITYCTL" dump ${PART_ROOTFS} | "$GREP" "HASH mode" | "$GREP" "on" > /dev/null
-       if [ $? -eq 0 ]; then
-            "$VERITYCTL" create rootfs ${PART_ROOTFS}
-            "$MOUNT" -t ext4 /dev/mapper/rootfs ${FAKE_ROOT} -o ro
-       else
-            "$MOUNT" -t ext4 ${PART_ROOTFS} ${FAKE_ROOT} -o ro
-       fi
-    else
-       "$MOUNT" -t ext4 ${PART_ROOTFS} ${FAKE_ROOT} -o ro
-    fi
-
+    "$MOUNT" -t ext4 ${PART_ROOTFS} ${FAKE_ROOT} -o ro
     "$MOUNT" -t ext4 ${PART_SYSTEM_DATA} ${FAKE_ROOT}/opt
     "$MOUNT" -t ext4 ${PART_USER} ${FAKE_ROOT}/opt/usr
-    "$MOUNT" -t ext4 ${PART_CSC} ${FAKE_ROOT}/opt/system/csc
 
     "$MOUNT" -t proc none ${FAKE_ROOT}/proc
     "$MOUNT" -t sysfs none ${FAKE_ROOT}/sys
@@ -65,7 +58,6 @@ umount_partitions() {
    "$SYNC"
     get_partition_id
 
-    "$UMOUNT" ${FAKE_ROOT}/opt/system/csc
     "$UMOUNT" ${FAKE_ROOT}/opt/usr
     "$UMOUNT" ${FAKE_ROOT}/opt
     "$UMOUNT" ${FAKE_ROOT}