From c88a508544616af093d0e2d6bc541b5bc7d61ec1 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 24 Nov 2020 11:35:43 +0100 Subject: [PATCH] bcm2835-bootloader: check config.txt version in update.sh Replace current config.txt with default version if the version info is missing or below the required minimum version. This is needed to roll out required changes if users update from LibreELEC 9.x Signed-off-by: Matthias Reichl --- .../tools/bcm2835-bootloader/files/update.sh | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/tools/bcm2835-bootloader/files/update.sh b/packages/tools/bcm2835-bootloader/files/update.sh index ad6ddd2fa0..cf645523a8 100755 --- a/packages/tools/bcm2835-bootloader/files/update.sh +++ b/packages/tools/bcm2835-bootloader/files/update.sh @@ -2,10 +2,13 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) [ -z "$BOOT_ROOT" ] && BOOT_ROOT="/flash" [ -z "$SYSTEM_ROOT" ] && SYSTEM_ROOT="" +MIN_CONFIG_TXT_VERSION=1 + # mount $BOOT_ROOT r/w mount -o remount,rw $BOOT_ROOT @@ -30,10 +33,18 @@ rm -rf $BOOT_ROOT/start_x.elf # some config.txt magic if [ ! -f $BOOT_ROOT/config.txt ]; then cp -p $SYSTEM_ROOT/usr/share/bootloader/config.txt $BOOT_ROOT -elif [ -z "`grep "^[ ]*gpu_mem.*" $BOOT_ROOT/config.txt`" ]; then - mv $BOOT_ROOT/config.txt $BOOT_ROOT/config.txt.bk - cat $SYSTEM_ROOT/usr/share/bootloader/config.txt \ - $BOOT_ROOT/config.txt.bk > $BOOT_ROOT/config.txt +else + CONFIG_TXT_VERSION=$( \ + grep "^# config.txt version v[0-9]\+" $BOOT_ROOT/config.txt | \ + head -n 1 | \ + sed 's/^# config.txt version v\([0-9]\+\) .*$/\1/' \ + ) + if [ ${CONFIG_TXT_VERSION:-0} -lt $MIN_CONFIG_TXT_VERSION ]; then + mv -f $BOOT_ROOT/config.txt $BOOT_ROOT/config.txt.old + cp -p $SYSTEM_ROOT/usr/share/bootloader/config.txt $BOOT_ROOT/config.txt + echo "WARNING incompatible config.txt detected, replacing with default." + echo "Previous config.txt has been moved to config.txt.old" + fi fi # Add distro config file