12add0d91Sopenharmony_ci#!/usr/bin/env sh
22add0d91Sopenharmony_ci
32add0d91Sopenharmony_ciset -ex
42add0d91Sopenharmony_ci
52add0d91Sopenharmony_ci# Prep the SDK and emulator
62add0d91Sopenharmony_ci#
72add0d91Sopenharmony_ci# Note that the update process requires that we accept a bunch of licenses, and
82add0d91Sopenharmony_ci# we can't just pipe `yes` into it for some reason, so we take the same strategy
92add0d91Sopenharmony_ci# located in https://github.com/appunite/docker by just wrapping it in a script
102add0d91Sopenharmony_ci# which apparently magically accepts the licenses.
112add0d91Sopenharmony_ci
122add0d91Sopenharmony_ciSDK=6609375
132add0d91Sopenharmony_cimkdir -p sdk/cmdline-tools
142add0d91Sopenharmony_ciwget -q --tries=20 https://dl.google.com/android/repository/commandlinetools-linux-${SDK}_latest.zip
152add0d91Sopenharmony_ciunzip -q -d sdk/cmdline-tools commandlinetools-linux-${SDK}_latest.zip
162add0d91Sopenharmony_ci
172add0d91Sopenharmony_cicase "$1" in
182add0d91Sopenharmony_ci  arm | armv7)
192add0d91Sopenharmony_ci    api=24
202add0d91Sopenharmony_ci    image="system-images;android-${api};default;armeabi-v7a"
212add0d91Sopenharmony_ci    ;;
222add0d91Sopenharmony_ci  aarch64)
232add0d91Sopenharmony_ci    api=24
242add0d91Sopenharmony_ci    image="system-images;android-${api};google_apis;arm64-v8a"
252add0d91Sopenharmony_ci    ;;
262add0d91Sopenharmony_ci  i686)
272add0d91Sopenharmony_ci    api=28
282add0d91Sopenharmony_ci    image="system-images;android-${api};default;x86"
292add0d91Sopenharmony_ci    ;;
302add0d91Sopenharmony_ci  x86_64)
312add0d91Sopenharmony_ci    api=28
322add0d91Sopenharmony_ci    image="system-images;android-${api};default;x86_64"
332add0d91Sopenharmony_ci    ;;
342add0d91Sopenharmony_ci  *)
352add0d91Sopenharmony_ci    echo "invalid arch: $1"
362add0d91Sopenharmony_ci    exit 1
372add0d91Sopenharmony_ci    ;;
382add0d91Sopenharmony_ciesac;
392add0d91Sopenharmony_ci
402add0d91Sopenharmony_ci# Try to fix warning about missing file.
412add0d91Sopenharmony_ci# See https://askubuntu.com/a/1078784
422add0d91Sopenharmony_cimkdir -p /root/.android/
432add0d91Sopenharmony_ciecho '### User Sources for Android SDK Manager' >> /root/.android/repositories.cfg
442add0d91Sopenharmony_ciecho '#Fri Nov 03 10:11:27 CET 2017 count=0' >> /root/.android/repositories.cfg
452add0d91Sopenharmony_ci
462add0d91Sopenharmony_ci# Print all available packages
472add0d91Sopenharmony_ci# yes | ./sdk/tools/bin/sdkmanager --list --verbose
482add0d91Sopenharmony_ci
492add0d91Sopenharmony_ci# --no_https avoids
502add0d91Sopenharmony_ci# javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
512add0d91Sopenharmony_ci#
522add0d91Sopenharmony_ci# | grep -v = || true    removes the progress bar output from the sdkmanager
532add0d91Sopenharmony_ci# which produces an insane amount of output.
542add0d91Sopenharmony_ciyes | ./sdk/cmdline-tools/tools/bin/sdkmanager --licenses --no_https | grep -v = || true
552add0d91Sopenharmony_ciyes | ./sdk/cmdline-tools/tools/bin/sdkmanager --no_https \
562add0d91Sopenharmony_ci        "platform-tools" \
572add0d91Sopenharmony_ci        "platforms;android-${api}" \
582add0d91Sopenharmony_ci        "${image}" | grep -v = || true
592add0d91Sopenharmony_ci
602add0d91Sopenharmony_ci# The newer emulator versions (31.3.12 or higher) fail to a valid AVD and the test gets stuck.
612add0d91Sopenharmony_ci# Until we figure out why, we use the older version (31.3.11).
622add0d91Sopenharmony_ciwget -q --tries=20 https://redirector.gvt1.com/edgedl/android/repository/emulator-linux_x64-9058569.zip
632add0d91Sopenharmony_ciunzip -q -d sdk emulator-linux_x64-9058569.zip
642add0d91Sopenharmony_ci
652add0d91Sopenharmony_cicp /android/android-emulator-package.xml /android/sdk/emulator/package.xml
662add0d91Sopenharmony_ci
672add0d91Sopenharmony_ciecho "no" |
682add0d91Sopenharmony_ci    ./sdk/cmdline-tools/tools/bin/avdmanager create avd \
692add0d91Sopenharmony_ci        --name "${1}" \
702add0d91Sopenharmony_ci        --package "${image}" | grep -v = || true
712add0d91Sopenharmony_ci
722add0d91Sopenharmony_cirm -rf commandlinetools-linux-${SDK}_latest.zip emulator-linux_x64-9058569.zip
73