Remove obsolete OTA tools
Resolves http://code.google.com/p/android/issues/detail?id=2077
This commit is contained in:
		| @@ -1,118 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # | ||||
| # Copyright (C) 2007 The Android Open Source Project | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #      http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| # | ||||
|  | ||||
| PROGNAME=`basename $0` | ||||
|  | ||||
| function cleantmp | ||||
| { | ||||
|     if [ ! -z "$TMPDIR" ] | ||||
|     then | ||||
|         rm -rf "$TMPDIR" | ||||
|         TMPDIR= | ||||
|     fi | ||||
| } | ||||
|  | ||||
| function println | ||||
| { | ||||
|     if [ $# -gt 0 ] | ||||
|     then | ||||
|         echo "$PROGNAME: $@" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| function fail | ||||
| { | ||||
|     println "$@" | ||||
|     cleantmp | ||||
|     exit 1 | ||||
| } | ||||
|  | ||||
| function usage | ||||
| { | ||||
|     println "$@" | ||||
|     echo "Usage: $PROGNAME <input file> <output file>" | ||||
|     fail | ||||
| } | ||||
|  | ||||
| OTATOOL=`which otatool` | ||||
| if [ -z "$OTATOOL" ] | ||||
| then | ||||
|     OTATOOL="`dirname $0`/otatool" | ||||
|     if [ ! -x "$OTATOOL" ] | ||||
|     then | ||||
|         fail "Can't find otatool" | ||||
|     fi | ||||
| fi | ||||
|  | ||||
|  | ||||
| if [ $# -ne 2 ] | ||||
| then | ||||
|     usage | ||||
| fi | ||||
|  | ||||
| INFILE="$1" | ||||
| OUTFILE="$2" | ||||
|  | ||||
| if [ ! -f "$INFILE" ] | ||||
| then | ||||
|     fail "$INFILE doesn't exist or isn't a file" | ||||
| fi | ||||
|  | ||||
| if [ -z "$OUTFILE" ] | ||||
| then | ||||
|     usage "Output file not specified" | ||||
| fi | ||||
|  | ||||
| if [ -d "$OUTFILE" ] | ||||
| then | ||||
|     usage "Output file may not be a directory" | ||||
| fi | ||||
|  | ||||
| if [ "$INFILE" -ef "$OUTFILE" ] | ||||
| then | ||||
|     fail "Refusing to use the input file as the output file" | ||||
| fi | ||||
|  | ||||
| TMPDIR=`mktemp -d "/tmp/$PROGNAME.XXXXXX"` | ||||
| if [ $? -ne 0 ] | ||||
| then | ||||
|     TMPDIR= | ||||
|     fail "Can't create temporary directory" | ||||
| fi | ||||
|  | ||||
| ORIGSCRIPT="$TMPDIR/orig" | ||||
| NEWSCRIPT="$TMPDIR/new" | ||||
|  | ||||
| "$OTATOOL" --dump-script "$INFILE" | | ||||
| awk ' | ||||
|     { print } | ||||
|     /^format SYSTEM:$/ { | ||||
|         print "delete_recursive DATA:" | ||||
|     } | ||||
| ' > "$NEWSCRIPT" | ||||
| if [ $? -ne 0 ] | ||||
| then | ||||
|     fail "Couldn't modify script" | ||||
| fi | ||||
|  | ||||
| "$OTATOOL" --replace-script "$NEWSCRIPT" -o "$OUTFILE" "$INFILE" | ||||
| if [ $? -ne 0 ] | ||||
| then | ||||
|     fail "Couldn't replace script" | ||||
| fi | ||||
|  | ||||
| cleantmp | ||||
| @@ -1,225 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # | ||||
| # Copyright (C) 2007 The Android Open Source Project | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #      http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| # | ||||
|  | ||||
| PROGNAME=`basename "$0"` | ||||
|  | ||||
| INSTALL_SCRIPT_NAME=META-INF/com/android/update-script | ||||
|  | ||||
| function cleantmp | ||||
| { | ||||
|     if [ ! -z "$TMPDIR" ] | ||||
|     then | ||||
|         rm -rf "$TMPDIR" | ||||
|         TMPDIR= | ||||
|     fi | ||||
| } | ||||
|  | ||||
| function println | ||||
| { | ||||
|     if [ $# -gt 0 ] | ||||
|     then | ||||
|         echo "$PROGNAME: $@" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| function fail | ||||
| { | ||||
|     println "$@" | ||||
|     cleantmp | ||||
|     exit 1 | ||||
| } | ||||
|  | ||||
| function usage | ||||
| { | ||||
|     println "$@" | ||||
|     echo "Usage: $PROGNAME <command> [command-options] <ota-file>" | ||||
|     echo "       Where <command> is one of:" | ||||
|     echo "           --dump" | ||||
|     echo "               Dump a description of the ota file" | ||||
|     echo "           --dump-script" | ||||
|     echo "               Dumps the install script to standard out" | ||||
|     echo "           --append-script <file> -o|--output <outfile>" | ||||
|     echo "               Append the contents of <file> to the install script" | ||||
|     echo "           --replace-script <file> -o|--output <outfile>" | ||||
|     echo "               Replace the install script with the contents of <file>" | ||||
|     fail | ||||
| } | ||||
|  | ||||
| if [ $# -lt 2 ] | ||||
| then | ||||
|     usage | ||||
| fi | ||||
| CMD="$1" | ||||
| shift | ||||
| if [ "$CMD" = --dump ] | ||||
| then | ||||
|     CMD_DUMP=1 | ||||
|     UNPACK_FILE=1 | ||||
| elif [ "$CMD" = --dump-script ] | ||||
| then | ||||
|     CMD_DUMP_SCRIPT=1 | ||||
| elif [ "$CMD" = --append-script ] | ||||
| then | ||||
|     CMD_APPEND_SCRIPT=1 | ||||
|     SCRIPT_FILE=$1 | ||||
|     shift | ||||
|     NEEDS_SCRIPT_FILE=1 | ||||
|     NEEDS_OUTPUT=1 | ||||
| elif [ "$CMD" = --replace-script ] | ||||
| then | ||||
|     CMD_REPLACE_SCRIPT=1 | ||||
|     SCRIPT_FILE=$1 | ||||
|     shift | ||||
|     NEEDS_SCRIPT_FILE=1 | ||||
|     NEEDS_OUTPUT=1 | ||||
| else | ||||
|     usage "Unknown command $CMD" | ||||
| fi | ||||
|  | ||||
| if [ ! -z "$NEED_SCRIPT_FILE" ] | ||||
| then | ||||
|     if [ -z "$SCRIPT_FILE" -o ! -f "$SCRIPT_FILE" ] | ||||
|     then | ||||
|         usage "$CMD requires a valid script file" | ||||
|     fi | ||||
| fi | ||||
|  | ||||
| if [ ! -z "$NEEDS_OUTPUT" ] | ||||
| then | ||||
|     if [ "x$1" != "x-o" -a "x$1" != "x--output" ] | ||||
|     then | ||||
|         usage "$CMD requires \"-o <file>\" or \"--output <file>\"" | ||||
|     fi | ||||
|     shift | ||||
|  | ||||
|     OUTFILE="$1" | ||||
|     shift | ||||
|     if [ -z "$OUTFILE" ] | ||||
|     then | ||||
|         usage "$CMD requires \"-o <file>\" or \"--output <file>\"" | ||||
|     fi | ||||
|     if [ -d "$OUTFILE" ] | ||||
|     then | ||||
|         fail "Output file \"$OUTFILE\" is a directory" | ||||
|     fi | ||||
| fi | ||||
|  | ||||
| FILE="$1" | ||||
| if [ ! -f "$FILE" ] | ||||
| then | ||||
|     fail "$FILE doesn't exist or isn't a file" | ||||
| fi | ||||
| if [ ! -z "$OUTFILE" -a "$FILE" -ef "$OUTFILE" ] | ||||
| then | ||||
|     fail "Refusing to use the input file as the output file" | ||||
| fi | ||||
|  | ||||
| if [ $CMD_DUMP_SCRIPT ] | ||||
| then | ||||
|     unzip -p "$FILE" "$INSTALL_SCRIPT_NAME" | ||||
|     exit 0 | ||||
| fi | ||||
|  | ||||
| # Create a temporary directory for scratch files. | ||||
| # | ||||
| TMPDIR=`mktemp -d /tmp/$PROGNAME.XXXXXX` | ||||
| if [ $? -ne 0 ] | ||||
| then | ||||
|     TMPDIR= | ||||
|     fail "Can't create temporary directory" | ||||
| fi | ||||
|  | ||||
|  | ||||
| if [ $UNPACK_FILE ] | ||||
| then | ||||
|     ROOTDIR="$TMPDIR/root" | ||||
|     mkdir -p "$ROOTDIR" | ||||
|  | ||||
|     println "Unpacking `basename $FILE`..." | ||||
|  | ||||
|     unzip -q -d "$ROOTDIR" "$FILE" | ||||
|     if [ $? -ne 0 ] | ||||
|     then | ||||
|         fail "Couldn't unpack $FILE" | ||||
|     fi | ||||
| fi | ||||
|  | ||||
|  | ||||
| if [ $CMD_DUMP ] | ||||
| then | ||||
|     function dumpfile | ||||
|     { | ||||
|         echo "BEGIN `basename $1`" | ||||
|         cat "$1" | sed -e 's/^/    /' | ||||
|         echo "END `basename $1`" | ||||
|     } | ||||
|  | ||||
|     echo Contents of root: | ||||
|     ls -1 "$ROOTDIR" | sed -e 's/^/    /' | ||||
|     echo | ||||
|     echo Contents of META-INF: | ||||
|     (cd "$ROOTDIR" && find META-INF -type f) | sed -e 's/^/    /' | ||||
|  | ||||
|     echo | ||||
|     dumpfile "$ROOTDIR/META-INF/MANIFEST.MF" | ||||
|     echo | ||||
|     dumpfile "$ROOTDIR/$INSTALL_SCRIPT_NAME" | ||||
|     echo | ||||
|     dumpfile "$ROOTDIR/android-product.txt" | ||||
|     echo | ||||
|     dumpfile "$ROOTDIR/system/build.prop" | ||||
| fi | ||||
|  | ||||
| if [ $CMD_APPEND_SCRIPT ] | ||||
| then | ||||
|     TMPSCRIPT="$TMPDIR/script" | ||||
|     NEWSCRIPT="$TMPDIR/$INSTALL_SCRIPT_NAME" | ||||
|     unzip -p "$FILE" "$INSTALL_SCRIPT_NAME" > "$TMPSCRIPT" | ||||
|     if [ $? -ne 0 ] | ||||
|     then | ||||
|         fail "Couldn't extract $INSTALL_SCRIPT_NAME from $FILE" | ||||
|     fi | ||||
|     mkdir -p `dirname "$NEWSCRIPT"` | ||||
|     cat "$TMPSCRIPT" "$SCRIPT_FILE" > "$NEWSCRIPT" | ||||
|  | ||||
|     OVERWRITE_SCRIPT=1 | ||||
| fi | ||||
|  | ||||
| if [ $CMD_REPLACE_SCRIPT ] | ||||
| then | ||||
|     NEWSCRIPT="$TMPDIR/$INSTALL_SCRIPT_NAME" | ||||
|     mkdir -p `dirname "$NEWSCRIPT"` | ||||
|     cp "$SCRIPT_FILE" "$NEWSCRIPT" | ||||
|  | ||||
|     OVERWRITE_SCRIPT=1 | ||||
| fi | ||||
|  | ||||
| if [ $OVERWRITE_SCRIPT ] | ||||
| then | ||||
|     cp "$FILE" "$TMPDIR/outfile.zip" | ||||
|     (cd "$TMPDIR" && zip -qu outfile.zip "$INSTALL_SCRIPT_NAME") | ||||
|     if [ $? -ne 0 ] | ||||
|     then | ||||
|         fail "Couldn't add new $INSTALL_SCRIPT_NAME to output file" | ||||
|     fi | ||||
|  | ||||
|     rm -f "$OUTFILE" | ||||
|     mkdir -p `dirname "$OUTFILE"` | ||||
|     mv "$TMPDIR/outfile.zip" "$OUTFILE" | ||||
| fi | ||||
|  | ||||
| cleantmp | ||||
		Reference in New Issue
	
	Block a user