chiark / gitweb /
Weblate
[fdroidserver.git] / buildserver / provision-android-sdk
1 #!/bin/bash
2 #
3
4 echo $0
5 set -e
6 set -x
7
8 if [ -z $ANDROID_HOME ]; then
9     echo "ANDROID_HOME env var must be set!"
10     exit 1
11 fi
12
13 # TODO remove the rm, this should work with an existing ANDROID_HOME
14 if [ ! -x $ANDROID_HOME/tools/android ]; then
15     rm -rf $ANDROID_HOME
16     mkdir ${ANDROID_HOME}
17     mkdir ${ANDROID_HOME}/temp
18     mkdir ${ANDROID_HOME}/platforms
19     mkdir ${ANDROID_HOME}/build-tools
20     cd $ANDROID_HOME
21
22     tools=`ls -1 /vagrant/cache/tools_*.zip | sort -n | tail -1`
23     unzip -qq $tools
24 fi
25
26 # disable the repositories of proprietary stuff
27 disabled="
28 @version@=1
29 @disabled@https\://dl.google.com/android/repository/extras/intel/addon.xml=disabled
30 @disabled@https\://dl.google.com/android/repository/glass/addon.xml=disabled
31 @disabled@https\://dl.google.com/android/repository/sys-img/android/sys-img.xml=disabled
32 @disabled@https\://dl.google.com/android/repository/sys-img/android-tv/sys-img.xml=disabled
33 @disabled@https\://dl.google.com/android/repository/sys-img/android-wear/sys-img.xml=disabled
34 @disabled@https\://dl.google.com/android/repository/sys-img/google_apis/sys-img.xml=disabled
35 "
36 test -d ${HOME}/.android || mkdir ${HOME}/.android
37 # there are currently zero user repos
38 echo 'count=0' > ${HOME}/.android/repositories.cfg
39 for line in $disabled; do
40     echo $line >> ${HOME}/.android/sites-settings.cfg
41 done
42
43
44 cd /vagrant/cache
45
46 # make links for `android update sdk` to use and delete
47 latestm2=`ls -1 android_m2repository*.zip | sort -n | tail -1`
48 for f in $latestm2 android-[0-9]*.zip platform-[0-9]*.zip build-tools_r*-linux.zip; do
49     rm -f ${ANDROID_HOME}/temp/$f
50     ln -s /vagrant/cache/$f ${ANDROID_HOME}/temp/
51 done
52
53 # install all cached platforms
54 cached=""
55 for f in `ls -1 android-[0-9]*.zip platform-[0-9]*.zip`; do
56     sdk=`unzip -c $f "*/build.prop" | sed -n 's,^ro.build.version.sdk=,,p'`
57     cached=,android-${sdk}${cached}
58 done
59
60 # install all cached build-tools
61 for f in `ls -1 build-tools*.zip`; do
62     ver=`unzip -c $f "*/source.properties" | sed -n 's,^Pkg.Revision=,,p'`
63     if [[ $ver == 24.0.0 ]] && [[ $f =~ .*r24\.0\.1.* ]]; then
64         # 24.0.1 has the wrong revision in the zip
65         ver=24.0.1
66     fi
67     cached=,build-tools-${ver}${cached}
68 done
69
70 ${ANDROID_HOME}/tools/android update sdk --no-ui --all \
71     --filter platform-tools,extra-android-m2repository${cached} <<EOH
72 y
73
74 EOH
75
76 mkdir -p $ANDROID_HOME/licenses/
77
78 cat << EOF > $ANDROID_HOME/licenses/android-sdk-license
79
80 8933bad161af4178b1185d1a37fbf41ea5269c55
81
82 d56f5187479451eabf01fb78af6dfcb131a6481e
83 EOF
84
85 cat <<EOF > $ANDROID_HOME/licenses/android-sdk-preview-license
86
87 84831b9409646a918e30573bab4c9c91346d8abd
88 EOF
89
90 cat <<EOF > $ANDROID_HOME/licenses/android-sdk-preview-license-old
91 79120722343a6f314e0719f863036c702b0e6b2a
92
93 84831b9409646a918e30573bab4c9c91346d8abd
94 EOF
95
96 echo y | $ANDROID_HOME/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1"
97 echo y | $ANDROID_HOME/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1"
98 echo y | $ANDROID_HOME/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2"
99 echo y | $ANDROID_HOME/tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2"
100
101 chmod -R a+rX $ANDROID_HOME/
102 chgrp vagrant $ANDROID_HOME
103 chmod g+w $ANDROID_HOME
104 find $ANDROID_HOME/ -type f -executable -print0 | xargs -0 chmod a+x
105
106 # allow gradle to install newer build-tools and platforms
107 chgrp vagrant $ANDROID_HOME/{build-tools,platforms}
108 chmod g+w $ANDROID_HOME/{build-tools,platforms}
109
110 # allow gradle/sdkmanager to install into the new m2repository
111 test -d $ANDROID_HOME/extras/m2repository || mkdir -p $ANDROID_HOME/extras/m2repository
112 find $ANDROID_HOME/extras/m2repository -type d | xargs chgrp vagrant
113 find $ANDROID_HOME/extras/m2repository -type d | xargs chmod g+w