mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-19 21:30:10 +01:00
78d37bb13b
allowlist and blocklist are much clearer terms with no cultural baggage. This changes all "whitelist" references to "allowlist", and all "blacklist" references to "blocklist".
139 lines
4.6 KiB
Bash
139 lines
4.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
|
|
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} <<EOH
|
|
y
|
|
|
|
EOH
|
|
|
|
mkdir -p $ANDROID_HOME/licenses/
|
|
|
|
cat << EOF > $ANDROID_HOME/licenses/android-sdk-license
|
|
|
|
8933bad161af4178b1185d1a37fbf41ea5269c55
|
|
|
|
d56f5187479451eabf01fb78af6dfcb131a6481e
|
|
|
|
24333f8a63b6825ea9c5514f83c2829b004d1fee
|
|
EOF
|
|
|
|
cat <<EOF > $ANDROID_HOME/licenses/android-sdk-preview-license
|
|
|
|
84831b9409646a918e30573bab4c9c91346d8abd
|
|
EOF
|
|
|
|
cat <<EOF > $ANDROID_HOME/licenses/android-sdk-preview-license-old
|
|
|
|
79120722343a6f314e0719f863036c702b0e6b2a
|
|
|
|
84831b9409646a918e30573bab4c9c91346d8abd
|
|
EOF
|
|
|
|
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 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
|