mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-09 08:50:11 +01:00
baeae862ad
Google is making gradle automatically download Android SDK components that are needed by the build, but not already present. We need to support that since it would be a lot of work to fight it. Plus, since each build starts from the fresh snapshot, it should not be such a big deal to let each build install stuff during the process. closes #268
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 versions
|
|
chgrp vagrant $ANDROID_HOME/build-tools
|
|
chmod g+w $ANDROID_HOME/build-tools
|
|
|
|
# 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
|