# EX_ARM, EX_X86, BB_ARM, and BB_X86 should be generated in build.py getdir() { case "$1" in */*) dir=${1%/*}; [ -z $dir ] && echo "/" || echo $dir ;; *) echo "." ;; esac } extract_bb() { EXBIN=$BBDIR/b64xz; BBBIN=$BBDIR/busybox touch $EXBIN; touch $BBBIN; chmod 755 $EXBIN $BBBIN echo -ne $EX_ARM > $EXBIN if $EXBIN --test 2>/dev/null; then echo $BB_ARM | $EXBIN > $BBBIN else echo -ne $EX_X86 > $EXBIN echo $BB_X86 | $EXBIN > $BBBIN fi rm $EXBIN } setup_bb() { BBDIR=$TMPDIR/bin; mkdir -p $BBDIR 2>/dev/null extract_bb $BBBIN --install -s $BBDIR export PATH=$BBDIR:$PATH } case "$1" in "extract") [ -z "$2" ] && BBDIR=. || BBDIR="$2" extract_bb ;; "indep") TMPDIR="`getdir "${BASH_SOURCE:-$0}"`"; setup_bb shift; exec sh "$@" ;; *) TMPDIR=/dev/tmp; rm -rf $TMPDIR 2>/dev/null; setup_bb INSTALLER=$TMPDIR/install; mkdir -p $INSTALLER; unzip -o "$3" -d $INSTALLER exec sh $INSTALLER/META-INF/com/google/android/updater-script $@ ;; esac