#!/bin/bash # echo $0 set -e set -x if [ -z $ANDROID_HOME ]; then echo "ANDROID_HOME env var must be set!" exit 1 fi # TODO remove the rm, this should work with an existing ANDROID_HOME if [ ! -x $ANDROID_HOME/tools/android ]; then rm -rf $ANDROID_HOME mkdir ${ANDROID_HOME} mkdir ${ANDROID_HOME}/temp mkdir ${ANDROID_HOME}/platforms mkdir ${ANDROID_HOME}/build-tools cd $ANDROID_HOME tools=`ls -1 /vagrant/cache/tools_*.zip | sort -n | tail -1` unzip -qq $tools fi # disable the repositories of proprietary stuff disabled=" @version@=1 @disabled@https\://dl.google.com/android/repository/extras/intel/addon.xml=disabled @disabled@https\://dl.google.com/android/repository/glass/addon.xml=disabled @disabled@https\://dl.google.com/android/repository/sys-img/android/sys-img.xml=disabled @disabled@https\://dl.google.com/android/repository/sys-img/android-tv/sys-img.xml=disabled @disabled@https\://dl.google.com/android/repository/sys-img/android-wear/sys-img.xml=disabled @disabled@https\://dl.google.com/android/repository/sys-img/google_apis/sys-img.xml=disabled " test -d ${HOME}/.android || mkdir ${HOME}/.android # there are currently zero user repos echo 'count=0' > ${HOME}/.android/repositories.cfg for line in $disabled; do echo $line >> ${HOME}/.android/sites-settings.cfg done cd /vagrant/cache # make links for `android update sdk` to use and delete blocklist="build-tools_r17-linux.zip build-tools_r18.0.1-linux.zip build-tools_r18.1-linux.zip build-tools_r18.1.1-linux.zip build-tools_r19-linux.zip build-tools_r19.0.1-linux.zip build-tools_r19.0.2-linux.zip build-tools_r19.0.3-linux.zip build-tools_r21-linux.zip build-tools_r21.0.1-linux.zip build-tools_r21.0.2-linux.zip build-tools_r21.1-linux.zip build-tools_r21.1.1-linux.zip build-tools_r22-linux.zip build-tools_r23-linux.zip android-1.5_r04-linux.zip android-1.6_r03-linux.zip android-2.0_r01-linux.zip android-2.0.1_r01-linux.zip" latestm2=`ls -1 android_m2repository*.zip | sort -n | tail -1` for f in $latestm2 android-[0-9]*.zip platform-[0-9]*.zip build-tools_r*-linux.zip; do rm -f ${ANDROID_HOME}/temp/$f if [[ $blocklist != *$f* ]]; then ln -s /vagrant/cache/$f ${ANDROID_HOME}/temp/ fi done # install all cached platforms cached="" for f in `ls -1 android-[0-9]*.zip platform-[0-9]*.zip`; do sdk=`unzip -c $f "*/build.prop" | sed -n 's,^ro.build.version.sdk=,,p'` cached=,android-${sdk}${cached} done # install all cached build-tools for f in `ls -1 build-tools*.zip`; do ver=`unzip -c $f "*/source.properties" | sed -n 's,^Pkg.Revision=,,p'` if [[ $ver == 24.0.0 ]] && [[ $f =~ .*r24\.0\.1.* ]]; then # 24.0.1 has the wrong revision in the zip ver=24.0.1 fi cached=,build-tools-${ver}${cached} done ${ANDROID_HOME}/tools/android update sdk --no-ui --all \ --filter platform-tools,extra-android-m2repository${cached} < $ANDROID_HOME/licenses/android-sdk-license 8933bad161af4178b1185d1a37fbf41ea5269c55 d56f5187479451eabf01fb78af6dfcb131a6481e 24333f8a63b6825ea9c5514f83c2829b004d1fee EOF cat < $ANDROID_HOME/licenses/android-sdk-preview-license 84831b9409646a918e30573bab4c9c91346d8abd EOF cat < $ANDROID_HOME/licenses/android-sdk-preview-license-old 79120722343a6f314e0719f863036c702b0e6b2a 84831b9409646a918e30573bab4c9c91346d8abd EOF cat < $ANDROID_HOME/licenses/intel-android-extra-license d975f751698a77b662f1254ddbeed3901e976f5a EOF chmod a+X $(dirname $ANDROID_HOME/) chmod -R a+rX $ANDROID_HOME/ chgrp vagrant $ANDROID_HOME chmod g+w $ANDROID_HOME find $ANDROID_HOME/ -type f -executable -print0 | xargs -0 chmod a+x # allow gradle to install newer build-tools and platforms chgrp vagrant $ANDROID_HOME/{build-tools,platforms} chmod g+w $ANDROID_HOME/{build-tools,platforms} # allow gradle/sdkmanager to install into the new m2repository test -d $ANDROID_HOME/extras/m2repository || mkdir -p $ANDROID_HOME/extras/m2repository find $ANDROID_HOME/extras/m2repository -type d | xargs chgrp vagrant find $ANDROID_HOME/extras/m2repository -type d | xargs chmod g+w