12068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project#!/bin/sh 22068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 32068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# These routines contain the filesystem generation code. 42068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# This code is sourced by the other scripts so that digest 52068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# generation is consistent. 62068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 72068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# dgen - Exercises the -d directory option of genext2fs 82068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Creates an image with a file of given size 92068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Usage: dgen file-size number-of-blocks 102068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectdgen () { 112068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project size=$1; blocks=$2 122068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -rf test 132068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project mkdir -p test 142068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project cd test 152068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if [ x$size = x0 ]; then 162068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project > file.$1 172068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 182068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project dd if=/dev/zero of=file.$1 bs=$size count=1 2>/dev/null 192068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 202068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project chmod 777 file.$1 212068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project TZ=UTC-11 touch -t 200502070321.43 file.$1 . 222068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project cd .. 232068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ./genext2fs -N 17 -b $blocks -d test -f -q ext2.img 242068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project} 252068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 262068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# fgen - Exercises the -f spec-file option of genext2fs 272068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Creates an image with the devices mentioned in the given spec file 282068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Usage: fgen spec-file number-of-blocks 292068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectfgen () { 302068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fname=$1; blocks=$2; 312068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project mkdir -p test 322068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project cp $fname test 332068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project TZ=UTC-11 touch -t 200502070321.43 test/$fname 342068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ./genext2fs -N 92 -b $blocks -D test/$fname -f ext2.img 352068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project} 362068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 372068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# gen_cleanup - Remove the files generated by the above functions 382068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Usage: gen_cleanup 392068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectgen_cleanup () { 402068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -rf ext2.img test 412068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project} 422068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 432068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# calc_digest - Return the MD5 digest of the test image 442068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Usage: calc_digest 452068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectcalc_digest () { 462068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project digest=`md5sum ext2.img 2>/dev/null | cut -f 1 -d " "` 472068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if [ x$digest != x ] ; then 482068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo $digest 492068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 502068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project digest=`md5 ext2.img 2>/dev/null | cut -f 4 -d " "` 512068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo $digest 522068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 532068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project} 542068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 552068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source ProjectLC_ALL=C 562068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectexport LC_ALL 57