From 18005be04480b814faa5a0ef488814ab4064d843 Mon Sep 17 00:00:00 2001 From: Ian Leonard Date: Fri, 3 Jul 2020 23:37:14 +0000 Subject: [PATCH 1/2] factory-reset: cleanup Signed-off-by: Ian Leonard --- .../mediacenter/LibreELEC-settings/package.mk | 2 + .../LibreELEC-settings/scripts/factory-reset | 50 +++++++++---------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/packages/mediacenter/LibreELEC-settings/package.mk b/packages/mediacenter/LibreELEC-settings/package.mk index 541f4e82ca..52c6f82f0b 100644 --- a/packages/mediacenter/LibreELEC-settings/package.mk +++ b/packages/mediacenter/LibreELEC-settings/package.mk @@ -26,6 +26,8 @@ post_makeinstall_target() { cp ${PKG_DIR}/scripts/* ${INSTALL}/usr/lib/libreelec sed -e "s/@DISTRONAME@/${DISTRONAME}/g" \ -i ${INSTALL}/usr/lib/libreelec/backup-restore + sed -e "s/@DISTRONAME@/${DISTRONAME}/g" \ + -i ${INSTALL}/usr/lib/libreelec/factory-reset ADDON_INSTALL_DIR=${INSTALL}/usr/share/kodi/addons/service.libreelec.settings python_compile ${ADDON_INSTALL_DIR}/resources/lib/ diff --git a/packages/mediacenter/LibreELEC-settings/scripts/factory-reset b/packages/mediacenter/LibreELEC-settings/scripts/factory-reset index a619f1d482..4053dc8842 100755 --- a/packages/mediacenter/LibreELEC-settings/scripts/factory-reset +++ b/packages/mediacenter/LibreELEC-settings/scripts/factory-reset @@ -2,17 +2,15 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2020-present Team LibreELEC (https://libreelec.tv) . /usr/lib/libreelec/functions -# Get NAME, which is DISTRONAME, ie. LibreELEC -. /etc/os-release - hidecursor -label= -target= -uuid= +label="" +target="" +uuid="" get_target() { for arg in $(cat /proc/cmdline); do @@ -22,11 +20,11 @@ get_target() { case $disk in LABEL=*) label="${disk#*=}" - target="$(blkid -L $label)" + target="$(blkid -L ${label})" ;; UUID=*) uuid="${disk#*=}" - target="$(blkid -U $uuid)" + target="$(blkid -U ${uuid})" ;; /*) target="$disk" @@ -38,43 +36,45 @@ get_target() { } show_reset_msg() { - echo "RESET IN PROGRESS" - echo "" - echo "Please do not reboot or turn off your ${NAME} device!" - echo "" + echo -e "RESET IN PROGRESS\n" + echo -e "Please do not reboot or turn off your @DISTRONAME@ device!\n" } -if [ -f /storage/.cache/reset_oe ] ; then +if [ -f /storage/.cache/reset_oe ]; then # hard reset rm -f /storage/.cache/reset_oe get_target - if [ ! -z $target ] ; then + if [ -n "${target}" ]; then show_reset_msg StartProgress spinner "Performing hard reset... " - umount /storage - mke2fs -t ext4 -m 0 $target &>/dev/null - if [ ! -z $label ] ; then - tune2fs -U random -L $label $target &>/dev/null + if [ -b "${target}" -a $(blkid -o value -s TYPE "${target}") = "ext4" ]; then + umount /storage/ + mke2fs -t ext4 -m 0 "${target}" &>/dev/null + if [ -n "${label}" ]; then + tune2fs -U random -L "${label}" "${target}" &>/dev/null fi - if [ ! -z $uuid ] ; then - tune2fs -U $uuid $target &>/dev/null + if [ -n "${uuid}" ]; then + tune2fs -U "${uuid}" "${target}" &>/dev/null fi - StopProgress "done!" + else + find /storage/ -mindepth 1 -delete + fi + StopProgress "done!" echo StartProgress countdown "Rebooting in 5s... " 5 "NOW" fi -elif [ -f /storage/.cache/reset_xbmc ] ; then +elif [ -f /storage/.cache/reset_xbmc ]; then # soft reset rm -f /storage/.cache/reset_xbmc get_target - if [ ! -z $target ] ; then + if [ -n "${target}" ]; then show_reset_msg StartProgress spinner "Performing soft reset... " - rm -rf /storage/.??* &>/dev/null - StopProgress "done!" + find /storage/.cache/ /storage/.config/ /storage/.kodi/ -mindepth 1 -delete + StopProgress "done!" echo StartProgress countdown "Rebooting in 5s... " 5 "NOW" From d852a3b6e77011e34f2297d55be9fd6c918cb323 Mon Sep 17 00:00:00 2001 From: Ian Leonard Date: Fri, 2 Oct 2020 20:21:00 +0000 Subject: [PATCH 2/2] system: use generic filenames for reset trigger Signed-off-by: Ian Leonard --- .../mediacenter/LibreELEC-settings/scripts/factory-reset | 8 ++++---- .../sysutils/busybox/scripts/libreelec-target-generator | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/mediacenter/LibreELEC-settings/scripts/factory-reset b/packages/mediacenter/LibreELEC-settings/scripts/factory-reset index 4053dc8842..c78ee2b9db 100755 --- a/packages/mediacenter/LibreELEC-settings/scripts/factory-reset +++ b/packages/mediacenter/LibreELEC-settings/scripts/factory-reset @@ -40,9 +40,9 @@ show_reset_msg() { echo -e "Please do not reboot or turn off your @DISTRONAME@ device!\n" } -if [ -f /storage/.cache/reset_oe ]; then +if [ -f /storage/.cache/reset_hard ]; then # hard reset - rm -f /storage/.cache/reset_oe + rm -f /storage/.cache/reset_hard get_target if [ -n "${target}" ]; then show_reset_msg @@ -65,9 +65,9 @@ if [ -f /storage/.cache/reset_oe ]; then echo StartProgress countdown "Rebooting in 5s... " 5 "NOW" fi -elif [ -f /storage/.cache/reset_xbmc ]; then +elif [ -f /storage/.cache/reset_soft ]; then # soft reset - rm -f /storage/.cache/reset_xbmc + rm -f /storage/.cache/reset_soft get_target if [ -n "${target}" ]; then show_reset_msg diff --git a/packages/sysutils/busybox/scripts/libreelec-target-generator b/packages/sysutils/busybox/scripts/libreelec-target-generator index aae6b4b44c..edb902c5fb 100755 --- a/packages/sysutils/busybox/scripts/libreelec-target-generator +++ b/packages/sysutils/busybox/scripts/libreelec-target-generator @@ -36,7 +36,7 @@ done if [ -f /storage/.please_resize_me ]; then TARGET="fs-resize.target" -elif [ -f /storage/.cache/reset_oe -o -f /storage/.cache/reset_xbmc ]; then +elif [ -f /storage/.cache/reset_hard -o -f /storage/.cache/reset_soft ]; then TARGET="factory-reset.target" elif [ -f "$BACKUP_FILE" ]; then TARGET="backup-restore.target"