#!/bin/bash ################################################################################ ## File: android.sh ## Desc: Installs Android SDK ################################################################################ set -e # Source the helpers for use with the script source $HELPER_SCRIPTS/document.sh source $HELPER_SCRIPTS/apt.sh # Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables) ANDROID_ROOT=/usr/local/lib/android ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" | tee -a /etc/environment # ANDROID_HOME is deprecated, but older versions of Gradle rely on it echo "ANDROID_HOME=${ANDROID_SDK_ROOT}" | tee -a /etc/environment # Create android sdk directory mkdir -p ${ANDROID_SDK_ROOT} # Download the latest command line tools so that we can accept all of the licenses. # See https://developer.android.com/studio/#command-tools wget -O android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip unzip android-sdk.zip -d ${ANDROID_SDK_ROOT} rm -f android-sdk.zip # Add required permissions chmod -R a+X ${ANDROID_SDK_ROOT} # Check sdk manager installation /usr/local/lib/android/sdk/tools/bin/sdkmanager --list 1>/dev/null if [ $? -eq 0 ] then echo "Android SDK manager was installed" else echo "Android SDK manager was not installed" exit 1 fi # Install the following SDKs and build tools, passing in "y" to accept licenses. echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \ "ndk-bundle" \ "platform-tools" \ "platforms;android-29" \ "platforms;android-28" \ "platforms;android-27" \ "build-tools;29.0.3" \ "build-tools;29.0.2" \ "build-tools;29.0.0" \ "build-tools;28.0.3" \ "build-tools;28.0.2" \ "build-tools;28.0.1" \ "build-tools;28.0.0" \ "build-tools;27.0.3" \ "build-tools;27.0.2" \ "build-tools;27.0.1" \ "build-tools;27.0.0" \ "extras;android;m2repository" \ "extras;google;m2repository" \ "extras;google;google_play_services" \ "cmake;3.10.2.4988404" \ "patcher;v4" # Document what was added to the image echo "Lastly, document what was added to the metadata file" DocumentInstalledItem "Google Repository $(cat ${ANDROID_SDK_ROOT}/extras/google/m2repository/source.properties 2>&1 | grep Pkg.Revision | cut -d '=' -f 2)" DocumentInstalledItem "Google Play services $(cat ${ANDROID_SDK_ROOT}/extras/google/google_play_services/source.properties 2>&1 | grep Pkg.Revision | cut -d '=' -f 2)" DocumentInstalledItem "CMake $(ls ${ANDROID_SDK_ROOT}/cmake 2>&1)" DocumentInstalledItem "Android Support Repository 47.0.0" DocumentInstalledItem "Android SDK Platform-Tools $(cat ${ANDROID_SDK_ROOT}/platform-tools/source.properties 2>&1 | grep Pkg.Revision | cut -d '=' -f 2)" DocumentInstalledItem "Android SDK Platform 29" DocumentInstalledItem "Android SDK Platform 28" DocumentInstalledItem "Android SDK Platform 27" DocumentInstalledItem "Android SDK Patch Applier v4" DocumentInstalledItem "Android SDK Build-Tools 29.0.3" DocumentInstalledItem "Android SDK Build-Tools 29.0.2" DocumentInstalledItem "Android SDK Build-Tools 29.0.0" DocumentInstalledItem "Android SDK Build-Tools 28.0.3" DocumentInstalledItem "Android SDK Build-Tools 28.0.2" DocumentInstalledItem "Android SDK Build-Tools 28.0.1" DocumentInstalledItem "Android SDK Build-Tools 28.0.0" DocumentInstalledItem "Android SDK Build-Tools 27.0.3" DocumentInstalledItem "Android SDK Build-Tools 27.0.2" DocumentInstalledItem "Android SDK Build-Tools 27.0.1" DocumentInstalledItem "Android SDK Build-Tools 27.0.0" DocumentInstalledItem "Android NDK $(cat ${ANDROID_SDK_ROOT}/ndk-bundle/source.properties 2>&1 | grep Pkg.Revision | cut -d ' ' -f 3)"