BLKID for PARTX not supported target 14/143414/2
authorSunmin Lee <sunm.lee@samsung.com>
Wed, 9 Aug 2017 23:37:55 +0000 (08:37 +0900)
committerSunmin Lee <sunm.lee@samsung.com>
Thu, 10 Aug 2017 11:21:20 +0000 (20:21 +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: Ib98fb9358ef027e2673aaea3b5c7593a389d4d7d
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
scripts/40-fota.list
scripts/fota-init.sh
scripts/fus_rw-init.sh

index 7a481d0c6c1cddf67a886111c950dc79d1db6e6a..8d91a7bef51d64caed75d61712ec46f798d45dd4 100755 (executable)
@@ -30,6 +30,7 @@ WITHLIBS="
 /bin/sync
 /bin/umount
 /bin/cp
+/bin/sort
 "
 
 # LinkFileName:Target
index cdf9ebcf56accba0d03f56b1732dfefe762a6661..9c49d3051e72b9b27fcf6e69fc39def005307e56 100755 (executable)
@@ -30,6 +30,8 @@ UMOUNT="/bin/umount"
 GREP="/bin/grep"
 AWK="/usr/bin/awk"
 PARTX="/usr/sbin/partx"
+BLKID="/usr/sbin/blkid"
+SORT="/usr/bin/sort"
 
 SYSTEM_DATA_MNT=opt
 USER_MNT=opt/usr
@@ -38,12 +40,18 @@ USER_MNT=opt/usr
 #       get partition id
 #------------------------------------------------
 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_MODULES=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "module" {print $1}')
+       EMMC_DEVICE="/dev/mmcblk0"
+       RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE})
+       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
 }
 
 #------------------------------------------------
@@ -55,9 +63,6 @@ mount_partitions() {
        "$MOUNT" -t ext4 -o ro ${PART_ROOTFS} ${FAKE_ROOT}
        "$MOUNT" -t ext4 ${PART_SYSTEM_DATA} ${FAKE_ROOT}/${SYSTEM_DATA_MNT}
        "$MOUNT" -t ext4 ${PART_USER} ${FAKE_ROOT}/${USER_MNT}
-       if [ "${MODULE_MOUNT_FLAG}" = "ON" ]; then
-           "$MOUNT" -t ext4 ${PART_MODULES} ${FAKE_ROOT}/lib/modules
-       fi
 
        "$MOUNT" -t proc none ${FAKE_ROOT}/proc
        "$MOUNT" -t sysfs none ${FAKE_ROOT}/sys
@@ -75,9 +80,6 @@ umount_partitions() {
        "$UMOUNT" ${FAKE_ROOT}/sys
        "$UMOUNT" ${FAKE_ROOT}/proc
 
-       if [ "${MODULE_MOUNT_FLAG}" = "ON" ]; then
-               "$UMOUNT" ${FAKE_ROOT}/lib/modules
-       fi
        "$UMOUNT" ${FAKE_ROOT}/${USER_MNT}
        "$UMOUNT" ${FAKE_ROOT}/${SYSTEM_DATA_MNT}
        "$UMOUNT" ${FAKE_ROOT}
@@ -107,7 +109,15 @@ handle_no_ua() {
 do_create_part_table() {
 
        EMMC_DEVICE="/dev/mmcblk0"
-       RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE} | "$AWK" 'NR>1' | "$AWK" '{print $1 " " toupper($6)}')
+       RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE})
+       TEST=$(IFS=; echo $RET_PARTX | "$AWK" 'NR>1' | "$AWK" '{print $6}')
+       if [ "z$TEST" == "z" ]; then
+               RET_PARTX=$("$BLKID" -o full | "$GREP" ${EMMC_DEVICE}p | "$SED" 's/\/dev\/mmcblk0p//g' |
+                               "$AWK" '{for (n=1;n<=NF;n++) if($n ~ "LABEL") print $1 " " toupper($n)}' |
+                               "$SED" 's/LABEL=//g' | "$SED" 's/[\"\:]//g' | "$SORT" -k 1 -n)
+       else
+               RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE} | "$AWK" 'NR>1' | "$AWK" '{print $1 " " toupper($6)}')
+       fi
        PART_NUM=$(echo "$RET_PARTX" | "$AWK" 'END{print FNR}')
 
        echo "$PART_NUM" > ${PART_TBL_PATH}
index 69473d92eef49ff369ad31fe3ea2a274108596ce..422d2aaa53cd7c75038ea1377abd021e068cf7f3 100755 (executable)
@@ -13,6 +13,7 @@ UMOUNT="/bin/umount"
 GREP="/bin/grep"
 AWK="/usr/bin/awk"
 PARTX="/usr/sbin/partx"
+BLKID="/usr/sbin/blkid"
 
 SYSTEM_DATA_MNT=opt
 USER_MNT=opt/usr
@@ -23,10 +24,16 @@ USER_MNT=opt/usr
 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_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
 }
 
 #------------------------------------------------