2020-05-26 18:45:48 +03:00
#!/bin/bash
################################################################################
## File: android.sh
## Desc: Installs Android SDK
################################################################################
set -e
# Source the helpers for use with the script
source $HELPER_SCRIPTS /os.sh
2020-10-01 11:03:39 +03:00
verlte() {
sortedVersion = $( echo -e " $1 \n $2 " | sort -V | head -n1)
[ " $1 " = " $sortedVersion " ]
}
2020-09-29 17:26:59 +03:00
function install_android_packages {
2020-10-01 11:03:39 +03:00
minimumVersion = $1
2020-09-29 17:26:59 +03:00
shift
toolsArr =( " $@ " )
for item in ${ toolsArr [@] }
do
2020-10-01 11:03:39 +03:00
version = $( echo " ${ item ##*[-;] } " )
if verlte $minimumVersion $version
2020-09-29 17:26:59 +03:00
then
echo "Start installing $item "
echo "y" | ${ ANDROID_SDK_ROOT } /tools/bin/sdkmanager $item
fi
done
}
2020-05-26 18:45:48 +03:00
# 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
if isUbuntu20 ; then
# Sdk manager doesn't work with Java > 8, set version 8 explicitly
sed -i "2i export JAVA_HOME= ${ JAVA_HOME_8_X64 } " /usr/local/lib/android/sdk/tools/bin/sdkmanager
fi
# 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
2020-09-08 19:09:31 +03:00
toolset = " $INSTALLER_SCRIPT_FOLDER /toolset.json"
2020-09-29 17:26:59 +03:00
minimumBuildToolVersion = $( jq -r '.android.build_tools_min_version' $toolset )
minimumPlatformVersion = $( jq -r '.android.platform_min_version' $toolset )
2020-09-08 19:09:31 +03:00
extras = $( jq -r '.android.extra_list[]|"extras;" + .' $toolset )
addons = $( jq -r '.android.addon_list[]|"add-ons;" + .' $toolset )
additional = $( jq -r '.android.additional_tools[]' $toolset )
2020-08-20 13:39:33 +05:00
2020-05-26 18:45:48 +03:00
# Install the following SDKs and build tools, passing in "y" to accept licenses.
2020-09-29 17:26:59 +03:00
echo "y" | ${ ANDROID_SDK_ROOT } /tools/bin/sdkmanager $extras $google_api_list $addons $additional
2020-05-26 18:45:48 +03:00
2020-09-29 17:26:59 +03:00
platforms = $( ${ ANDROID_SDK_ROOT } /tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android" | sed -E "s/[[:space:]]+//g" | sed -E "s/\|.*//g" )
buildTools = $( ${ ANDROID_SDK_ROOT } /tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "build-tools;" | sed -E "s/[[:space:]]+//g" | sed -E "s/\|.*//g" )
2020-08-20 13:39:33 +05:00
2020-09-29 17:26:59 +03:00
platformsArr =( ${ platforms } )
install_android_packages $minimumPlatformVersion " ${ platformsArr [@] } "
buildToolsArr =( ${ buildTools } )
install_android_packages $minimumBuildToolVersion " ${ buildToolsArr [@] } "
2020-08-20 13:39:33 +05:00
2020-08-28 16:17:22 +03:00
# Add required permissions
chmod -R a+rwx ${ ANDROID_SDK_ROOT }