From bee7de476b51dea746f500df850065498bc87c75 Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Thu, 8 Feb 2018 18:53:41 +0530 Subject: [PATCH] Data ota Based on privileged-extension 0.2.7 scripts --- app/src/main/scripts/update-binary | 45 ++++++++++++++++ create_ota.sh | 79 +++++++++++++++++++++++++++++ f-droid.org-signing-key.gpg | Bin 0 -> 8022 bytes 3 files changed, 124 insertions(+) create mode 100755 app/src/main/scripts/update-binary create mode 100755 create_ota.sh create mode 100644 f-droid.org-signing-key.gpg diff --git a/app/src/main/scripts/update-binary b/app/src/main/scripts/update-binary new file mode 100755 index 000000000..95828f3c5 --- /dev/null +++ b/app/src/main/scripts/update-binary @@ -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 diff --git a/create_ota.sh b/create_ota.sh new file mode 100755 index 000000000..e07a2275f --- /dev/null +++ b/create_ota.sh @@ -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 diff --git a/f-droid.org-signing-key.gpg b/f-droid.org-signing-key.gpg new file mode 100644 index 0000000000000000000000000000000000000000..16f1f017acb1872f6ff074a434f23edcb1427207 GIT binary patch literal 8022 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

d%|U?iPH%An*!&2K)doLZ za!^m3ZqJS7ZB&}hG0hjdAXR@=QhhQ=zfVTY z{qC2p!B-MsPlD8aG8^EwNZ9~C!os<);`1q&6z$&FHFFb;F#Q-N`4Z zjVC9pHEGNGcc>^n2WXy_YB0>Rf1~o@>t`Z{QZw#C6xZsGL<@2ZU}rw{c!7b6UWJ`4 zxzXt&?;t1fi(pU2Te@Bi9bCTJZ}6Vomr9!=bWn#z6${e0?e@l+F_&Pu+HV7n`})0g z4X{khS~v)lxbDGr`T|5Y%V;er4)C&RWzeAp@ZQ%8B?XBmeit?K1{bru8J=xPD_MhQ zy;m#zA3G_=fK;Zq2#$-mg`0B}_j(fS5-_~H#Cb7C7wr-ixgq0m+?dqL{jKNzB@1XiCH?PeIO;5}aWm$`rZ|iwCuDT>7)|Z&yBkwvCHlZGgo%fci z@uNX%Y@qUnPu&RN0w&S=_o`z7D)9^V%VB&oe1Vw!Lv|H4WLg!g04B1*#YN7zsV;(w zBHhhmc@%M*q%^fG!`YOR)eqS%@|T{Jw#qkUEpsN2mR zRSH`1tj1aFyC0uAJNZH480Ajw{HfTKdElbWhV&Xz9?QWe&^9BeES8$1PWAv7j3K@t z5Ij;W-9ezU4mZck8IA8?!ctK4pH|J-{?Te@%#KZI7a0vEMTzr?J@Pn3FOfhm;}2!3 zAKh(&MmoZ4k)&S|zYbA8qluEW-DJ9>Wv?zagtR7<(4icJYNTN{>YLGM-mdO$EB0y( z%X@nk`Gvc5yZL4bC)l(BQ$9l=$M@_utt*g!E{ckZ26YMqOrDFPF10!7Ber{ao!X1p zAR?neV(7X=EcGlNVUaw1L+hx3$4V>HbJu*3nYS$=g&_N5O8k+FFE2^{0dqCM1j^7{|VzX%Dk3AkgYLQ7-UKGw+mor!X5hm=y{DIAx2pMMt zGB|iiW`kAPOrR+=RRPwfMzO%olFAB;xVJ;5C{~0L_z5ay4v~aza7!ALJ{>4w=M7-8m+a5IxuWu)Rsq!i zr&TjH03phMTK((J|NlzWFa>%+cC$vyyS!3@_#Vv8czCL@2<;nP%Fr5cWHpg}XW^PWGl@y?iE%~=F>XFU-7TZ36ByNxk1 z9hcRKRe!I$n!s9Ux~k;_Kh7aLBJ>jBI;H#Jjd;|d%S(F&hur9gr9vlo#XkWFUuXkUsk0RCpRi$Z*8Lj>b z_mdZ*K7Sh1BX-Z79;ri3eLZGE$bJ2@awXK;ljIam>fx*^^RLs8f&@ulsR literal 0 HcmV?d00001