From 23580ca27a0a8109312fdd36cc363ad1f4719889 Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Tue, 21 Oct 2008 07:00:00 -0700 Subject: Initial Contribution --- tools/ota/add-data-wipe | 118 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100755 tools/ota/add-data-wipe (limited to 'tools/ota/add-data-wipe') diff --git a/tools/ota/add-data-wipe b/tools/ota/add-data-wipe new file mode 100755 index 000000000..8d2626ffe --- /dev/null +++ b/tools/ota/add-data-wipe @@ -0,0 +1,118 @@ +#!/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 " + 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 -- cgit v1.2.3