1#!/bin/bash 2set -e 3if [ -z "$ANDROID_HOME" -o "$1" = "--help" ]; then 4 echo "" 5 echo "usage: $0" 6 echo "" 7 echo "Please set ANDROID_HOME. We assume you have installed" 8 echo "the Android SDK. You can do that on macOS using:" 9 echo "" 10 echo " brew install --cask android-sdk" 11 echo "" 12 echo "Then make sure you install the required packages:" 13 echo "" 14 echo "sdkmanager --install 'build-tools;29.0.3' 'ndk;21.3.6528147'" 15 echo "" 16 echo "or, if you already installed, that you're up to date:" 17 echo "" 18 echo "sdkmanager --update" 19 echo "" 20 echo "Once you have done that, please export ANDROID_HOME to" 21 echo "point to /usr/local/Caskroom/android-sdk/<version>." 22 echo "" 23 exit 1 24fi 25if [ -d $ANDROID_HOME/ndk-bundle ]; then 26 echo "" 27 echo "FATAL: currently we need 'ndk;21.3.6528147' instead of ndk-bundle" 28 echo "" 29 echo "See https://github.com/ooni/probe-engine/issues/1179." 30 echo "" 31 echo "To fix: sdkmanager --uninstall ndk-bundle" 32 echo "" 33 exit 1 34fi 35export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.3.6528147 36if [ ! -d $ANDROID_NDK_HOME ]; then 37 echo "" 38 echo "FATAL: currently we need 'ndk;21.3.6528147'" 39 echo "" 40 echo "See https://github.com/ooni/probe-engine/issues/1179." 41 echo "" 42 echo "To fix: sdkmanager --install 'ndk;21.3.6528147'" 43 echo "" 44 exit 1 45fi 46 47topdir=$(cd $(dirname $0) && pwd -P) 48set -x 49export PATH=$(go env GOPATH)/bin:$PATH 50export GO111MODULE=off 51go get -u golang.org/x/mobile/cmd/gomobile 52gomobile init 53export GO111MODULE=on 54output=MOBILE/android/oonimkall.aar 55gomobile bind -target=android -o $output -ldflags="-s -w" ./oonimkall 56