mirror of
				https://github.com/f-droid/fdroidserver.git
				synced 2025-11-04 06:30:27 +03:00 
			
		
		
		
	allowlist and blocklist are much clearer terms with no cultural baggage. This changes all "whitelist" references to "allowlist", and all "blacklist" references to "blocklist".
		
			
				
	
	
		
			138 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			138 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
 |