| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- #!/bin/sh
 
- get_magic_word() {
 
- 	dd if=$1 bs=4 count=1 2>/dev/null | od -A n -N 4 -t x1 | tr -d ' '
 
- }
 
- get_post_padding_word() {
 
- 	local rootfs_length="$(stat -c%s "$1")"
 
- 	[ "$rootfs_length" -ge 4 ] || return
 
- 	rootfs_length=$((rootfs_length-4))
 
- 	# the JFFS2 end marker must be on a 4K boundary (often 64K or 256K)
 
- 	local unaligned_bytes=$((rootfs_length%4096))
 
- 	[ "$unaligned_bytes" = 0 ] || return
 
- 	# skip rootfs data except the potential EOF marker
 
- 	dd if="$1" bs=1 skip="$rootfs_length" 2>/dev/null | od -A n -N 4 -t x1 | tr -d ' '
 
- }
 
- get_fs_type() {
 
- 	local magic_word="$(get_magic_word "$1")"
 
- 	case "$magic_word" in
 
- 	"3118"*)
 
- 		echo "ubifs"
 
- 		;;
 
- 	"68737173")
 
- 		local post_padding_word="$(get_post_padding_word "$1")"
 
- 		case "$post_padding_word" in
 
- 		"deadc0de")
 
- 			echo "squashfs-jffs2"
 
- 			;;
 
- 		*)
 
- 			echo "squashfs"
 
- 			;;
 
- 		esac
 
- 		;;
 
- 	*)
 
- 		echo "unknown"
 
- 		;;
 
- 	esac
 
- }
 
- round_up() {
 
- 	echo "$(((($1 + ($2 - 1))/ $2) * $2))"
 
- }
 
 
  |