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 7ac9a266f135443e65e87c94e8c60540a71a00b0..0ba5c0287d0e40d79ab30ac4f20d10bbc3bfeae9 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 23077255bc465f0d0199dfe4b79f2e7aa7978b53..4ca6d2d766fcc9ef1f7b16afc0244795e728e5ae 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 9b8618d16906df8c2e53193b6b9b76a995633c84..711150b706a0509bcc235f36eef1296fdd9a05a0 100644 (file)
@@ -18,6 +18,7 @@ WITHLIBS="
 /usr/bin/umount
 /usr/lib/initrd-recovery/minireboot
 /usr/sbin/partx
+/usr/sbin/blkid
 "
 
 # LinkFileName:Target
index 85367abf4764e27b5897f2ce08e67eb414c2fdc1..952da1cad85ace3bfc2e83119e54bd7b4ed8de17 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 99ab2aaece19a4174b11f76d0cd259e9367f6f80..f80200ba5965c83b96ae73650b409135f27098ba 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 6197e864c70c3e82b4c2920123546a884665cd2c..64b1d66a84610837ca067622040b25d7426153f1 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}