mirror of
				https://github.com/f-droid/fdroidserver.git
				synced 2025-11-04 14:30:30 +03:00 
			
		
		
		
	sdkmanager does not work anymore with Java 11 and these can be installed in the app's build metadata.
		
			
				
	
	
		
			138 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
	
		
			4.3 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
 | 
						|
 | 
						|
cat <<EOF > $ANDROID_HOME/licenses/intel-android-extra-license
 | 
						|
 | 
						|
d975f751698a77b662f1254ddbeed3901e976f5a
 | 
						|
EOF
 | 
						|
 | 
						|
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
 |