| #!/usr/bin/env sh | |
| set -ex | |
| # Prep the SDK and emulator | |
| # | |
| # Note that the update process requires that we accept a bunch of licenses, and | |
| # we can't just pipe `yes` into it for some reason, so we take the same strategy | |
| # located in https://github.com/appunite/docker by just wrapping it in a script | |
| # which apparently magically accepts the licenses. | |
| SDK=4333796 | |
| mkdir sdk | |
| curl --retry 20 https://dl.google.com/android/repository/sdk-tools-linux-${SDK}.zip -O | |
| unzip -q -d sdk sdk-tools-linux-${SDK}.zip | |
| case "$1" in | |
| arm | armv7) | |
| api=24 | |
| image="system-images;android-${api};google_apis;armeabi-v7a" | |
| ;; | |
| aarch64) | |
| api=24 | |
| image="system-images;android-${api};google_apis;arm64-v8a" | |
| ;; | |
| i686) | |
| api=28 | |
| image="system-images;android-${api};default;x86" | |
| ;; | |
| x86_64) | |
| api=28 | |
| image="system-images;android-${api};default;x86_64" | |
| ;; | |
| *) | |
| echo "invalid arch: $1" | |
| exit 1 | |
| ;; | |
| esac; | |
| # Try to fix warning about missing file. | |
| # See https://askubuntu.com/a/1078784 | |
| mkdir -p /root/.android/ | |
| echo '### User Sources for Android SDK Manager' >> /root/.android/repositories.cfg | |
| echo '#Fri Nov 03 10:11:27 CET 2017 count=0' >> /root/.android/repositories.cfg | |
| # Print all available packages | |
| # yes | ./sdk/tools/bin/sdkmanager --list --verbose | |
| # --no_https avoids | |
| # javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found | |
| # | |
| # | grep -v = || true removes the progress bar output from the sdkmanager | |
| # which produces an insane amount of output. | |
| yes | ./sdk/tools/bin/sdkmanager --licenses --no_https | grep -v = || true | |
| yes | ./sdk/tools/bin/sdkmanager --no_https \ | |
| "emulator" \ | |
| "platform-tools" \ | |
| "platforms;android-${api}" \ | |
| "${image}" | grep -v = || true | |
| echo "no" | | |
| ./sdk/tools/bin/avdmanager create avd \ | |
| --name "${1}" \ | |
| --package "${image}" | grep -v = || true | |