mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
update: check for enough space before copying KERNEL and SYSTEM files, closes #1984
This commit is contained in:
parent
ef955a58e2
commit
0f6c67d008
@ -209,7 +209,7 @@ CONFIG_CP=y
|
||||
# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
|
||||
# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
|
||||
# CONFIG_FEATURE_DD_IBS_OBS is not set
|
||||
# CONFIG_DF is not set
|
||||
CONFIG_DF=y
|
||||
# CONFIG_FEATURE_DF_FANCY is not set
|
||||
# CONFIG_DIRNAME is not set
|
||||
# CONFIG_DOS2UNIX is not set
|
||||
@ -273,7 +273,7 @@ CONFIG_SLEEP=y
|
||||
# CONFIG_FEATURE_SORT_BIG is not set
|
||||
# CONFIG_SPLIT is not set
|
||||
# CONFIG_FEATURE_SPLIT_FANCY is not set
|
||||
# CONFIG_STAT is not set
|
||||
CONFIG_STAT=y
|
||||
# CONFIG_FEATURE_STAT_FORMAT is not set
|
||||
# CONFIG_STTY is not set
|
||||
# CONFIG_SUM is not set
|
||||
|
@ -39,8 +39,10 @@
|
||||
REBOOT="0"
|
||||
MD5_FAILED="0"
|
||||
MD5_NOCHECK="0"
|
||||
SIZE_FAILED="0"
|
||||
|
||||
NBD_DEVS="0"
|
||||
FLASH_FREE_MIN="5"
|
||||
|
||||
INSTALLED_MEMORY=`cat /proc/meminfo | grep 'MemTotal:' | awk '{print $2}'`
|
||||
SYSTEM_TORAM_LIMIT=1024000
|
||||
@ -444,21 +446,53 @@
|
||||
MD5_FAILED="1"
|
||||
fi
|
||||
|
||||
# update if md5 check is ok or .nocheck exists
|
||||
if [ "$MD5_FAILED" -eq "0" -o "$MD5_NOCHECK" -eq "1" ] ; then
|
||||
update "Kernel" "$UPDATE_KERNEL" "/flash/$IMAGE_KERNEL"
|
||||
update "System" "$UPDATE_SYSTEM" "/flash/$IMAGE_SYSTEM"
|
||||
update_bootloader
|
||||
REBOOT="1"
|
||||
# get sizes
|
||||
FLASH_FREE=$(/bin/busybox df /flash/ | awk '/[0-9]%/{print $4}')
|
||||
FLASH_FREE=$(( $FLASH_FREE * 1024 ))
|
||||
OLD_KERNEL=$(/bin/busybox stat -t "/flash/$IMAGE_KERNEL" | awk '{print $2}')
|
||||
OLD_SYSTEM=$(/bin/busybox stat -t "/flash/$IMAGE_SYSTEM" | awk '{print $2}')
|
||||
NEW_KERNEL=$(/bin/busybox stat -t "$UPDATE_DIR/$UPDATE_KERNEL" | awk '{print $2}')
|
||||
NEW_SYSTEM=$(/bin/busybox stat -t "$UPDATE_DIR/$UPDATE_SYSTEM" | awk '{print $2}')
|
||||
|
||||
# old KERNEL+SYSTEM+free space - new KERNEL+SYSTEM must be higher then 5MB
|
||||
# at least 5MB free after update
|
||||
|
||||
TMP_SIZE=$(($OLD_KERNEL+$OLD_SYSTEM+$FLASH_FREE-$NEW_KERNEL-$NEW_SYSTEM))
|
||||
FLASH_FREE_MIN=$(($FLASH_FREE_MIN*1024*1024))
|
||||
|
||||
if [ $TMP_SIZE -ge $FLASH_FREE_MIN ]; then
|
||||
echo "Checking size: OK"
|
||||
else
|
||||
echo "Checking size: FAILED"
|
||||
SIZE_FAILED="1"
|
||||
fi
|
||||
|
||||
# update if size check is ok
|
||||
if [ "$SIZE_FAILED" -eq "0" ] ; then
|
||||
# update if md5 check is ok or .nocheck exists
|
||||
if [ "$MD5_FAILED" -eq "0" -o "$MD5_NOCHECK" -eq "1" ] ; then
|
||||
update "Kernel" "$UPDATE_KERNEL" "/flash/$IMAGE_KERNEL"
|
||||
update "System" "$UPDATE_SYSTEM" "/flash/$IMAGE_SYSTEM"
|
||||
update_bootloader
|
||||
REBOOT="1"
|
||||
else
|
||||
/bin/busybox rm "$UPDATE_DIR/$UPDATE_KERNEL"
|
||||
/bin/busybox rm "$UPDATE_DIR/$UPDATE_SYSTEM"
|
||||
echo "md5 check failed. normal startup in 30s..."
|
||||
/bin/busybox sync
|
||||
/bin/busybox usleep 30000000
|
||||
fi
|
||||
/bin/busybox rm "$UPDATE_DIR/${UPDATE_KERNEL}.md5" &>/dev/null
|
||||
/bin/busybox rm "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" &>/dev/null
|
||||
else
|
||||
/bin/busybox rm "$UPDATE_DIR/$UPDATE_KERNEL"
|
||||
/bin/busybox rm "$UPDATE_DIR/$UPDATE_SYSTEM"
|
||||
echo "md5 check failed. normal startup in 30s..."
|
||||
/bin/busybox rm "$UPDATE_DIR/${UPDATE_KERNEL}.md5" &>/dev/null
|
||||
/bin/busybox rm "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" &>/dev/null
|
||||
echo "size check failed. normal startup in 30s..."
|
||||
/bin/busybox sync
|
||||
/bin/busybox usleep 30000000
|
||||
fi
|
||||
/bin/busybox rm "$UPDATE_DIR/${UPDATE_KERNEL}.md5" &>/dev/null
|
||||
/bin/busybox rm "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" &>/dev/null
|
||||
fi
|
||||
|
||||
if test "$REBOOT" -eq "1"; then
|
||||
|
Loading…
x
Reference in New Issue
Block a user