mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-07-07 09:50:07 +02:00
Google releases new API SDKs quite rarely (about 2 times a year), but when they do this, many apps quickly start using it. Allow downloading new API SDKs to avoid waiting for the next buildserver rebuild.
97 lines
3.6 KiB
Bash
97 lines
3.6 KiB
Bash
#!/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
|
|
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
|
|
ln -s /vagrant/cache/$f ${ANDROID_HOME}/temp/
|
|
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} <<EOH
|
|
y
|
|
|
|
EOH
|
|
|
|
mkdir -p $ANDROID_HOME/licenses/
|
|
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_HOME/licenses/android-sdk-license
|
|
echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > $ANDROID_HOME/licenses/android-sdk-preview-license
|
|
echo y | $ANDROID_HOME/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1"
|
|
echo y | $ANDROID_HOME/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1"
|
|
echo y | $ANDROID_HOME/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2"
|
|
echo y | $ANDROID_HOME/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2"
|
|
|
|
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
|