blob: 90afffa0f598efff2ad62b37abd119f73f38a43d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
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
export ANDROID_EXTERNAL_FILES_DIR="$PWD/local/data/$pkgname/files"
export ANDROID_EXTERNAL_OBB_DIR="$PWD/local/data/$pkgname/obb"
XXX
./andre "$tmpdir/lib/$arch/libunity.so"
|