CUT="/usr/bin/cut"
TR="/usr/bin/tr"
PARTX="/usr/sbin/partx"
+BLKID="/usr/sbin/blkid"
#------------------------------------------------
# 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_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
}
#------------------------------------------------
"$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
}
#------------------------------------------------
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
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
}
#------------------------------------------------
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
"$SYNC"
get_partition_id
- "$UMOUNT" ${FAKE_ROOT}/opt/system/csc
"$UMOUNT" ${FAKE_ROOT}/opt/usr
"$UMOUNT" ${FAKE_ROOT}/opt
"$UMOUNT" ${FAKE_ROOT}