diff options
author | Jari Vetoniemi <mailroxas@gmail.com> | 2018-11-19 13:24:35 +0200 |
---|---|---|
committer | Jari Vetoniemi <mailroxas@gmail.com> | 2018-11-19 13:24:35 +0200 |
commit | 5568b3760eb518f4ab727dec66d5a528d6f919ac (patch) | |
tree | 7f9da96ea084903234770db378319564c789ac68 /andre-apk.sh | |
parent | 39f0b37c3703ef1765c91f5ae847f4315e0bb66a (diff) |
remove hard coded paths, add andre-apk.sh
Diffstat (limited to 'andre-apk.sh')
-rw-r--r-- | andre-apk.sh | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/andre-apk.sh b/andre-apk.sh new file mode 100644 index 0000000..90afffa --- /dev/null +++ b/andre-apk.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +argv0="$0" +msg() { printf -- '%s: %s\n' "$(basename "$argv0")" "$@" 1>&2; } +err() { msg "$@"; exit 1; } + +[ -z "$1" ] && err 'usage: <apk>' +pkgfile="$(realpath "$1")" + +arch="$(file ./andre | awk -F', ' '{print $2}')" +case "$arch" in + 'Intel 80386') + arch="x86" + ;; + 'ARM') + arch="armeabi-v7a" + ;; + *) + err "dont know how to convert from elf arch '$arch' to android arch" + ;; +esac + +pkgname="$(aapt2 dump --file AndroidManifest.xml "$1" | grep -o '^ \+A: package="[a-zA-Z0-9._]\+"' | awk -F'"' '{print $2}')" +[ -z "$pkgname" ] && err "not a valid apk (missing package name)" + +tmpdir="$(mktemp -d)" +trap 'rm -rf "$tmpdir"' EXIT +unzip "$1" -d "$tmpdir" + +export ANDROID_PACKAGE_FILE="$pkgfile" +export ANDROID_PACKAGE_CODE_PATH="$tmpdir" +export ANDROID_PACKAGE_NAME="$pkgname" + +# TODO: when we have first release, make this follow XDG spec +export ANDROID_EXTERNAL_FILES_DIR="$PWD/local/data/$pkgname/files" +export ANDROID_EXTERNAL_OBB_DIR="$PWD/local/data/$pkgname/obb" + +# XXX: We only work with unity stuff for now +./andre "$tmpdir/lib/$arch/libunity.so" |