Merge branch 'data-ota' into 'master'
Create an ota zip for installing data to f-droid See merge request fdroid/fdroidclient!640
This commit is contained in:
		
						commit
						31b6bbcd3e
					
				
							
								
								
									
										45
									
								
								app/src/main/scripts/update-binary
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										45
									
								
								app/src/main/scripts/update-binary
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,45 @@
 | 
			
		||||
#!/sbin/sh
 | 
			
		||||
 | 
			
		||||
# Copyright 2013 Koushik Dutta, 2014 Ron Rieve
 | 
			
		||||
#
 | 
			
		||||
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
# you may not use this file except in compliance with the License.
 | 
			
		||||
# You may obtain a copy of the License at
 | 
			
		||||
#
 | 
			
		||||
# http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
#
 | 
			
		||||
# Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
# See the License for the specific language governing permissions and
 | 
			
		||||
# limitations under the License.
 | 
			
		||||
 | 
			
		||||
# arg 1 is recovery api version, generally 3.
 | 
			
		||||
# arg 2 is the pipe fd, to the recovery binary.
 | 
			
		||||
# communicate with it using the recovery api.
 | 
			
		||||
# arg 3 is the zip file
 | 
			
		||||
 | 
			
		||||
echo -n -e 'ui_print Installing F-Droid...\n' > /proc/self/fd/$2
 | 
			
		||||
 | 
			
		||||
FDROID_NAME=F-Droid
 | 
			
		||||
FDROID=${FDROID_NAME}.apk
 | 
			
		||||
FDROIDDIR=/data/app
 | 
			
		||||
 | 
			
		||||
cd /tmp
 | 
			
		||||
mkdir fdroid
 | 
			
		||||
cd fdroid
 | 
			
		||||
unzip -o "$3"
 | 
			
		||||
if [ "$?" -ne "0" ]
 | 
			
		||||
then
 | 
			
		||||
  cp /cache/${FDROID} .
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
mount /data
 | 
			
		||||
 | 
			
		||||
cp ${FDROID} ${FDROIDDIR}
 | 
			
		||||
chmod 644 ${FDROIDDIR}/${FDROID}
 | 
			
		||||
 | 
			
		||||
umount /data
 | 
			
		||||
 | 
			
		||||
echo -n -e 'ui_print done\n' > /proc/self/fd/$2
 | 
			
		||||
echo -n -e 'ui_print\n' > /proc/self/fd/$2
 | 
			
		||||
							
								
								
									
										79
									
								
								create_ota.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										79
									
								
								create_ota.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,79 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
#
 | 
			
		||||
# Script to prepare an update.zip containing F-Droid
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
PROG_DIR=$(dirname $(realpath $0))
 | 
			
		||||
 | 
			
		||||
TMP_DIR=$(mktemp -d -t fdroidclient.tmp.XXXXXXXX)
 | 
			
		||||
trap "rm -rf $TMP_DIR" EXIT
 | 
			
		||||
 | 
			
		||||
function error() {
 | 
			
		||||
	echo "*** ERROR: " $@
 | 
			
		||||
	usage
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function usage() {
 | 
			
		||||
	cat << EOFU
 | 
			
		||||
Usage: $0 variant
 | 
			
		||||
where:
 | 
			
		||||
 - variant is one of: debug, release, or binary
 | 
			
		||||
EOFU
 | 
			
		||||
	exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Parse input
 | 
			
		||||
VARIANT="$1"
 | 
			
		||||
[[ -z "$VARIANT" ]] && error "Missing variant"
 | 
			
		||||
 | 
			
		||||
BINARIES="$2"
 | 
			
		||||
 | 
			
		||||
GPG="gpg --keyring $PROG_DIR/f-droid.org-signing-key.gpg --no-default-keyring --trust-model always"
 | 
			
		||||
 | 
			
		||||
GITVERSION=$(git describe --tags --always)
 | 
			
		||||
 | 
			
		||||
FDROID_APK=F-Droid.apk
 | 
			
		||||
 | 
			
		||||
# Collect files
 | 
			
		||||
mkdir -p $TMP_DIR/META-INF/com/google/android/
 | 
			
		||||
cp app/src/main/scripts/update-binary $TMP_DIR/META-INF/com/google/android/
 | 
			
		||||
 | 
			
		||||
if [ $VARIANT == "binary" ] ; then
 | 
			
		||||
	curl -L https://f-droid.org/$FDROID_APK > $TMP_DIR/$FDROID_APK
 | 
			
		||||
	curl -L https://f-droid.org/${FDROID_APK}.asc > $TMP_DIR/${FDROID_APK}.asc
 | 
			
		||||
	$GPG --verify $TMP_DIR/${FDROID_APK}.asc
 | 
			
		||||
	rm $TMP_DIR/${FDROID_APK}.asc
 | 
			
		||||
else
 | 
			
		||||
	cd $PROG_DIR
 | 
			
		||||
    ./gradlew assemble$(echo $VARIANT | tr 'dr' 'DR')
 | 
			
		||||
    OUT_DIR=$PROG_DIR/app/build/outputs/apk
 | 
			
		||||
    if [ $VARIANT == "debug" ]; then
 | 
			
		||||
	cp $OUT_DIR/app-${VARIANT}.apk \
 | 
			
		||||
	   $TMP_DIR/$FDROID_APK
 | 
			
		||||
    elif [ -f $OUT_DIR/app-${VARIANT}-signed.apk ]; then
 | 
			
		||||
	cp $OUT_DIR/app-${VARIANT}-signed.apk \
 | 
			
		||||
	   $TMP_DIR/$FDROID_APK
 | 
			
		||||
    else
 | 
			
		||||
	cp $OUT_DIR/app-${VARIANT}-unsigned.apk \
 | 
			
		||||
	   $TMP_DIR/$FDROID_APK
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Make zip
 | 
			
		||||
if [ $VARIANT == "binary" ] ; then
 | 
			
		||||
	ZIPBASE=F-DroidFromBinaries-${GITVERSION}
 | 
			
		||||
else
 | 
			
		||||
	ZIPBASE=F-Droid-${GITVERSION}
 | 
			
		||||
fi
 | 
			
		||||
if [ $VARIANT == "debug" ]; then
 | 
			
		||||
	ZIP=${ZIPBASE}-debug.zip
 | 
			
		||||
else
 | 
			
		||||
	ZIP=${ZIPBASE}.zip
 | 
			
		||||
fi
 | 
			
		||||
OUT_DIR=$PROG_DIR/app/build/distributions
 | 
			
		||||
mkdir -p $OUT_DIR
 | 
			
		||||
[ -f $OUT_DIR/$ZIP ] && rm -f $OUT_DIR/$ZIP
 | 
			
		||||
pushd $TMP_DIR
 | 
			
		||||
zip -r $OUT_DIR/$ZIP .
 | 
			
		||||
popd
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								f-droid.org-signing-key.gpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								f-droid.org-signing-key.gpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user