brcm2708: implement sysupgrade image check
Implement a crude but functioning sysupgrade image check for the Raspberry Pi. The code only checks if the master boot record boot signature (0x55aa) is present in the first 512-bytes at the correct location. This can prevent the odd bricking of a system when flashing the wrong file. Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
This commit is contained in:
		
				
					committed by
					
						
						Álvaro Fernández Rojas
					
				
			
			
				
	
			
			
			
						parent
						
							9dee77795d
						
					
				
				
					commit
					3339f41d26
				
			@@ -1,5 +1,19 @@
 | 
			
		||||
get_magic_at() {
 | 
			
		||||
	local file="$1"
 | 
			
		||||
	local pos="$2"
 | 
			
		||||
	get_image "$file" | dd bs=1 count=2 skip="$pos" 2>/dev/null | hexdump -v -n 2 -e '1/1 "%02x"'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
platform_check_image() {
 | 
			
		||||
	# i know no way to verify the image
 | 
			
		||||
	local file="$1"
 | 
			
		||||
	local magic
 | 
			
		||||
 | 
			
		||||
	magic=$(get_magic_at "$file" 510)
 | 
			
		||||
	[ "$magic" != "55aa" ] && {
 | 
			
		||||
		echo "Failed to verify MBR boot signature."
 | 
			
		||||
		return 1
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user