mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/sh
 | ||
| #
 | ||
| # OpenIPC.org | v.20210901
 | ||
| #
 | ||
| 
 | ||
| set -e
 | ||
| 
 | ||
| soc=$(fw_printenv -n soc)
 | ||
| kernel=$(awk -F ':' '/"kernel"/ {print $1}' /proc/mtd)
 | ||
| rootfs=$(awk -F ':' '/"rootfs"/ {print $1}' /proc/mtd)
 | ||
| overlay=$(awk -F ':' '/"rootfs_data"/ {print $1}' /proc/mtd)
 | ||
| github="https://github.com/OpenIPC/openipc-2.1/releases/download/latest"
 | ||
| option="-s --connect-timeout 30 --max-time 60"
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| stop_services() {
 | ||
|   echo -e "\n\e[1;31mForced shutdown of services...\e[0m\n"
 | ||
|   killall majestic || true
 | ||
|   killall crond klogd ntpd rngd syslogd || true
 | ||
| }
 | ||
| 
 | ||
| download_firmware() {
 | ||
|   echo -e "\n\e[1;31mDownloading the latest firmware...\e[0m\n"
 | ||
|   curl ${option} -L ${github}/openipc.${soc}-br.tgz -o - | gzip -d | tar xvf - -C /tmp || (echo -e "\n\e[1;31mError receiving the update file, execution was interrupted....\e[0m\n"; exit 1)
 | ||
| }
 | ||
| 
 | ||
| writing_kernel() {
 | ||
|   echo -e "\n\e[1;31mWriting a new kernel...\e[0m\n"
 | ||
|   flashcp -v /tmp/uImage.${soc} /dev/${kernel}
 | ||
| }
 | ||
| 
 | ||
| writing_rootfs() {
 | ||
|   echo -e "\n\e[1;31mWriting a new rootfs...\e[0m\n"
 | ||
|   flashcp -v /tmp/rootfs.squashfs.${soc} /dev/${rootfs}
 | ||
| }
 | ||
| 
 | ||
| clearing_overlayfs() {
 | ||
|   echo -e "\n\e[1;31mСlearing the overlayfs partition...\e[0m\n"
 | ||
|   flash_eraseall -j /dev/${overlay}
 | ||
| }
 | ||
| 
 | ||
| quick_reboot() {
 | ||
|   echo -e "\n\e[1;31mRebooting without any questions...\e[0m\n"
 | ||
|   sleep 1
 | ||
|   reboot -f
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| if [ "$(curl -o /dev/null -s -w '%{http_code}\n' http://github.com)" != "301" ]; then
 | ||
|   echo -e "\n\e[1;31mThere is no access to the github.com, please check the Internet connection...\e[0m\n"
 | ||
|   exit 1
 | ||
| else
 | ||
|   stop_services
 | ||
|   download_firmware && writing_kernel && writing_rootfs
 | ||
|   sleep 1
 | ||
|   if [ "$1" = "-n" ]; then
 | ||
|     clearing_overlayfs
 | ||
|   fi
 | ||
|   quick_reboot
 | ||
| fi
 |