Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- ################################################################################
- # This file is part of LibreELEC - https://libreelec.tv
- # Copyright (C) 2016 kszaq (kszaquitto (at) gmail.com)
- #
- # LibreELEC is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation, either version 2 of the License, or
- # (at your option) any later version.
- #
- # LibreELEC is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
- ################################################################################
- IMAGE_KERNEL="/flash/kernel.img"
- IMAGE_SYSTEM="/flash/SYSTEM"
- IMAGE_DTB="/flash/dtb.img"
- BACKUP_DATE=$(date +%Y%m%d%H%M%S)
- install_to_nand() {
- if [ -f $IMAGE_KERNEL -a -f $IMAGE_SYSTEM ] ; then
- if grep -q /dev/system /proc/mounts ; then
- echo "Unmounting SYSTEM partiton."
- umount -f /dev/system
- fi
- mkdir -p /tmp/system
- mount -o rw,remount /flash
- if [ -e /dev/dtb ] ; then
- echo -n "Backing up device tree..."
- dd if=/dev/dtb of="/flash/dtb$BACKUP_DATE.img" bs=256k conv=fsync 2> /dev/null
- echo "done."
- fi
- if [ -e /dev/recovery ] ; then
- echo -n "Backing up recovery partition..."
- dd if=/dev/recovery of="/flash/recovery$BACKUP_DATE.img" bs=64k conv=fsync 2> /dev/null
- echo "done."
- fi
- echo -n "Formatting SYSTEM partition..."
- mke2fs -F -q -t ext4 -m 0 /dev/system || exit 1
- e2fsck -n /dev/system || exit 1
- echo "done."
- echo -n "Writing kernel image..."
- dd if="$IMAGE_KERNEL" of=/dev/boot bs=64k 2> /dev/null
- echo "done."
- echo -n "Copying SYSTEM files..."
- mount -o rw /dev/system /tmp/system
- cp $IMAGE_SYSTEM /tmp/system && sync
- echo "done."
- echo -n "Copying remote.conf..."
- cp -PR /flash/remote*.conf /tmp/system
- echo "done."
- umount /tmp/system
- if [ -f $IMAGE_DTB ] ; then
- echo -n "Writing device tree image..."
- dd if=/dev/zero of=/dev/dtb bs=256k count=1 2> /dev/null
- dd if="$IMAGE_DTB" of=/dev/dtb bs=256k 2> /dev/null
- echo "done."
- fi
- echo -n "Formatting DATA partition..."
- mke2fs -F -q -t ext4 -m 0 /dev/data > /dev/null
- e2fsck -n /dev/data &> /dev/null
- echo "done."
- read -p "Do you want to copy your user data to internal data partition? [Y/n] " choice
- case "$choice" in
- [nN]*)
- ;;
- *)
- echo -n "Stopping Kodi..."
- systemctl stop kodi
- echo "done."
- echo "Copying user data..."
- mkdir -p /tmp/data
- mount -o rw /dev/data /tmp/data
- cp -pPRv /storage/. /tmp/data
- ;;
- esac
- echo "All done! Rebooting now..."
- echo "WARNING: If your internal memory layout is different from standard Amlogic, you have to perform this operation again!"
- echo "Your system will continue booting from SD/USB until you remove it."
- reboot
- else
- echo "No LE image found on /flash! Exiting..."
- fi
- }
- echo "This script will erase BOOT, SYSTEM, DATA and DTB on your device"
- echo "and install LE that you booted from SD card/USB drive."
- echo ""
- echo "It will create a backup of device tree and recovery partition on your boot media."
- echo ""
- echo "The script does not have any safeguards!"
- echo ""
- read -p "Type \"yes\" if you know what you are doing or anything else to exit: " choice
- case "$choice" in
- yes) install_to_nand ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement