Skip to content

Instantly share code, notes, and snippets.

@fkirc
Created September 23, 2019 15:29
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fkirc/371fc25c0fd255125a4bb6f9f8a4ab3b to your computer and use it in GitHub Desktop.
Save fkirc/371fc25c0fd255125a4bb6f9f8a4ab3b to your computer and use it in GitHub Desktop.
Unzip an Android Archive (AAR)
#!/usr/bin/env bash
set -xe # Log everything, abort if anything fails
# Simple script to unzip Android Archive libraries (AAR files)
usage() {
echo "Usage: $0 <aar file>"
exit 1
}
[[ $# -eq 1 ]] || {
usage
}
AAR_FILE=$1
EXTRACT_DIR=exaar
rm -rf $EXTRACT_DIR
mkdir $EXTRACT_DIR || true
unzip -v $AAR_FILE
unzip $AAR_FILE -d $EXTRACT_DIR
unzip -v $EXTRACT_DIR/classes.jar
unzip $EXTRACT_DIR/classes.jar -d $EXTRACT_DIR/extracted_classes.jar
@Tony---Zhang
Copy link

Tony---Zhang commented Apr 12, 2023

Hi, I update this script with output jar file name, and automatic create jar file folder

#!/usr/bin/env bash
set -xe # Log everything, abort if anything fails

# Simple script to unzip Android Archive libraries (AAR files)

usage() {
    echo "Usage: $0 <aar file> <jar file>"
    exit 1
}

[[ $# -eq 2 ]] || {
    usage
}

AAR_FILE=$1
JAR_FILE=$2
EXTRACT_DIR=exaar

rm -rf $EXTRACT_DIR
mkdir $EXTRACT_DIR || true

#unzip -v $AAR_FILE
unzip $AAR_FILE -d $EXTRACT_DIR

#unzip -v $EXTRACT_DIR/classes.jar
#unzip $EXTRACT_DIR/classes.jar -d $EXTRACT_DIR/extracted_classes.jar

# Create jar file folder
mkdir -p "$(dirname $JAR_FILE)"

echo "$EXTRACT_DIR/classes.jar"
mv $EXTRACT_DIR/classes.jar $JAR_FILE
rm -rf $EXTRACT_DIR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment