SYSTEM_RECOVERY_NON_GUI="@SYSTEM_RECOVERY_LIBEXEC_DIR@/system-recovery.non_gui"
FAKE_ROOT=/system
-GREP="/usr/bin/grep"
MOUNT="/usr/bin/mount"
-PARTX="/usr/sbin/partx"
BLKID="/usr/sbin/blkid"
REBOOT="@INITRD_RECOVERY_LIBEXEC_DIR@/minireboot"
SYNC="/usr/bin/sync"
-TOUCH="/usr/bin/touch"
UMOUNT="/usr/bin/umount"
-TR="/usr/bin/tr"
-SED="/usr/bin/sed"
-CUT="/usr/bin/cut"
#------------------------------------------------
# get partition id
#------------------------------------------------
get_partition_id() {
- EMMC_DEVICE="/dev/mmcblk0"
- RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE})
- TEST=$(echo "$RET_PARTX" | "$TR" -s ' ' | "$SED" -e '1d' -e 's/^ //' | "$CUT" -d ' ' -f 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$(
- echo "$RET_PARTX" |
- "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
- "$GREP" "rootfs" | "$SED" 's/^ //' |
- "$CUT" -d ' ' -f 1)
- PART_SYSTEM_DATA=${EMMC_DEVICE}p$(
- echo "$RET_PARTX" |
- "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
- "$GREP" "system-data" | "$SED" 's/^ //' |
- "$CUT" -d ' ' -f 1)
- PART_USER=${EMMC_DEVICE}p$(
- echo "$RET_PARTX" |
- "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
- "$GREP" "user" | "$SED" 's/^ //' |
- "$CUT" -d ' ' -f 1)
- fi
+ PART_ROOTFS=$("$BLKID" --match-token PARTLABEL=ROOTFS -o device || "$BLKID" --match-token LABEL=rootfs -o device)
+ PART_SYSTEM_DATA=$("$BLKID" --match-token PARTLABEL=SYSTEM-DATA -o device || "$BLKID" --match-token LABEL=system-data -o device)
+ PART_USER=$("$BLKID" --match-token PARTLABEL=USER -o device || "$BLKID" --match-token LABEL=user -o device)
}
#------------------------------------------------
umount_partitions() {
echo "umount partitions"
"$SYNC"
- get_partition_id
"$UMOUNT" ${FAKE_ROOT}/opt/usr
"$UMOUNT" ${FAKE_ROOT}/opt