| #!/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 |
| |