mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/sh
 | 
						|
# Copyright (C) 2010 Daniel Dickinson
 | 
						|
# This is free software, licensed under the GNU General Public License v2.
 | 
						|
# See /LICENSE for more information.
 | 
						|
 | 
						|
 | 
						|
check_set_md5sum() {
 | 
						|
	local er_md5sum_file
 | 
						|
	er_md5sum_file="${ER_OVERLAY_PREFIX}/.extroot.md5sum"
 | 
						|
 | 
						|
	local er_extroot_md5sum
 | 
						|
	if [ -f $md5sum_file ]; then
 | 
						|
		er_extroot_md5sum="$(cat $er_md5sum_file)"
 | 
						|
	fi
 | 
						|
 | 
						|
	local er_extroot_overlay_md5sum
 | 
						|
	if [ -f "/overlay/etc/extroot.md5sum" ]; then
 | 
						|
		er_extroot_overlay_md5sum="$(cat /overlay/.extroot.md5sum)"
 | 
						|
	fi
 | 
						|
 | 
						|
	if [ -z "$er_extroot_overlay_md5sum" ]; then
 | 
						|
		cat $er_md5sum_file >/overlay/.extroot.md5sum
 | 
						|
	elif [ "$er_extroot_overlay_md5sum" != "$er_extroot_md5sum" ]; then
 | 
						|
		pi_extroot_mount_success="false"
 | 
						|
		mkdir -p /tmp/overlay-disabled
 | 
						|
		mount --move /overlay /tmp/overlay-disabled
 | 
						|
	fi
 | 
						|
}
 | 
						|
 | 
						|
set_jffs_md5sum() {
 | 
						|
	# We do this anytime block-extroot exists, even on the first boot with
 | 
						|
	# no extroot defined.
 | 
						|
 | 
						|
	local er_md5sum_file
 | 
						|
	er_md5sum_file="${ER_OVERLAY_PREFIX}/.extroot.md5sum"
 | 
						|
 | 
						|
	local er_extroot_md5sum
 | 
						|
	if [ -f $er_md5sum_file ]; then
 | 
						|
		er_extroot_md5sum="$(cat $er_md5sum_file)"
 | 
						|
	fi
 | 
						|
	if [ -z "$er_extroot_md5sum" ]; then
 | 
						|
		dd if=/dev/urandom count=32 bs=1k 2>/dev/null | md5sum | cut -f1 -d\  >$er_md5sum_file
 | 
						|
	fi
 | 
						|
}
 | 
						|
 | 
						|
determine_extroot_sysupgrade() {
 | 
						|
	check_skip || set_jffs_md5sum
 | 
						|
 | 
						|
	check_skip || [ "$pi_extroot_mount_success" != "true" ] || {
 | 
						|
		check_set_md5sum
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
boot_hook_add preinit_mount_root determine_extroot_sysupgrade
 | 
						|
 |