mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-07-07 09:50:07 +02:00
The new ConstraintLayout library in Android Support has some new custom way of handling the license. I suspect that they are going to use this new way with all of the bits that gradle downloads. We also have to support it for apps that use it, including soon fdroidclient. fdroiddata!2094 ci-images!1
84 lines
3.0 KiB
Bash
84 lines
3.0 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
|
|
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/
|
|
find $ANDROID_HOME/ -type f -executable -print0 | xargs -0 chmod a+x
|