123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #!/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
- #
- # https://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.
- # This script is a wrapper for apktool.jar, so you can simply call "apktool",
- # instead of java -jar apktool.jar. It is heavily based on the "dx" script
- # from the Android SDK
- # Set up prog to be the path of this script, including following symlinks,
- # and set up progdir to be the fully-qualified pathname of its directory.
- prog="$0"
- while [ -h "${prog}" ]; do
- newProg=`/bin/ls -ld "${prog}"`
- newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
- if expr "x${newProg}" : 'x/' >/dev/null; then
- prog="${newProg}"
- else
- progdir=`dirname "${prog}"`
- prog="${progdir}/${newProg}"
- fi
- done
- oldwd=`pwd`
- progdir=`dirname "${prog}"`
- cd "${progdir}"
- progdir=`pwd`
- prog="${progdir}"/`basename "${prog}"`
- cd "${oldwd}"
- jarfile=apktool.jar
- libdir="$progdir"
- if [ ! -r "$libdir/$jarfile" ]
- then
- # Find the highest version of apktool_*.jar in the directory.
- highest_jarfile=$(ls "$libdir"/apktool_*.jar 2>/dev/null | sort -V | tail -n 1)
- if [ -n "$highest_jarfile" ]; then
- jarfile=$(basename "$highest_jarfile")
- else
- echo `basename "$prog"`": can't find $jarfile"
- exit 1
- fi
- fi
- javaOpts=""
- # If you want DX to have more memory when executing, uncomment the following
- # line and adjust the value accordingly. Use "java -X" for a list of options
- # you can pass here.
- #
- javaOpts="-Xmx1024M -Dfile.encoding=utf-8 -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true"
- # Alternatively, this will extract any parameter "-Jxxx" from the command line
- # and pass them to Java (instead of to dx). This makes it possible for you to
- # add a command-line parameter such as "-JXmx256M" in your ant scripts, for
- # example.
- while expr "x$1" : 'x-J' >/dev/null; do
- opt=`expr "$1" : '-J\(.*\)'`
- javaOpts="${javaOpts} -${opt}"
- shift
- done
- if [ "$OSTYPE" = "cygwin" ] ; then
- jarpath=`cygpath -w "$libdir/$jarfile"`
- else
- jarpath="$libdir/$jarfile"
- fi
- # add current location to path for aapt
- PATH=$PATH:`pwd`;
- export PATH;
- exec java $javaOpts -Djava.awt.headless=true -jar "$jarpath" "$@"
|