Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 1 | #!/bin/bash |
Jon West | 1c44e90 | 2021-04-01 19:29:47 -0400 | [diff] [blame] | 2 | #~ set -e |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 3 | |
Jon West | 9fd0d66 | 2021-04-01 16:07:30 -0400 | [diff] [blame] | 4 | RED='\033[0;31m' |
| 5 | GREEN='\033[0;32m' |
| 6 | YELLOW='\033[0;33m' |
| 7 | LT_BLUE='\033[0;34m' |
| 8 | |
| 9 | NC='\033[0m' # No Color |
| 10 | |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 11 | repo="https://f-droid.org/repo/" |
| 12 | |
Jon West | 81cd34f | 2021-04-01 19:30:33 -0400 | [diff] [blame] | 13 | # Device type selection |
| 14 | PS3='Which device type do you plan on building?: ' |
| 15 | echo -e ${CL_CYN}"(default is 'ABI:x86_64 & ABI2:x86')" |
| 16 | TMOUT=10 |
| 17 | options=("ABI:x86_64 & ABI2:x86" |
| 18 | "ABI:arm64-v8a & ABI2:armeabi-v7a") |
| 19 | echo "Timeout in $TMOUT sec."${CL_RST} |
| 20 | select opt in "${options[@]}" |
| 21 | do |
| 22 | case $opt in |
| 23 | "ABI:x86_64 & ABI2:x86") |
| 24 | echo "you chose choice $REPLY which is $opt" |
| 25 | MAIN_ARCH="x86_64" |
| 26 | SUB_ARCH="x86" |
| 27 | break |
| 28 | ;; |
| 29 | "ABI:arm64-v8a & ABI2:armeabi-v7a") |
| 30 | echo "you chose choice $REPLY which is $opt" |
| 31 | MAIN_ARCH="arm64-v8a" |
| 32 | SUB_ARCH="armeabi-v7a" |
| 33 | break |
| 34 | ;; |
| 35 | *) echo "invalid option $REPLY";; |
| 36 | esac |
| 37 | done |
| 38 | if [ "$opt" == "" ]; then |
| 39 | MAIN_ARCH="x86_64" |
| 40 | SUB_ARCH="x86" |
| 41 | fi |
Jon West | 1c44e90 | 2021-04-01 19:29:47 -0400 | [diff] [blame] | 42 | |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 43 | addCopy() { |
Pierre-Hugues Husson | 16644af | 2020-04-05 16:08:40 +0200 | [diff] [blame] | 44 | addition="" |
Jon West | 1c44e90 | 2021-04-01 19:29:47 -0400 | [diff] [blame] | 45 | if [ "$native" != "" ] |
| 46 | then |
| 47 | unzip bin/$1 "lib/*" |
| 48 | if [ "$native" == "$MAIN_ARCH" ];then |
| 49 | addition=" |
| 50 | LOCAL_PREBUILT_JNI_LIBS := \\ |
| 51 | $(unzip -lv bin/$1 |grep -v Stored |sed -nE 's;.*(lib/'"$MAIN_ARCH"'/.*);\t\1 \\;p') |
| 52 | " |
| 53 | fi |
| 54 | if [ "$native" == "$SUB_ARCH" ];then |
| 55 | addition=" |
| 56 | LOCAL_MULTILIB := 32 |
| 57 | LOCAL_PREBUILT_JNI_LIBS := \\ |
| 58 | $(unzip -lv bin/$1 |grep -v Stored |sed -nE 's;.*(lib/'"$SUB_ARCH"'/.*);\t\1 \\;p') |
| 59 | " |
| 60 | fi |
| 61 | fi |
Pierre-Hugues Husson | e1b56f5 | 2020-11-03 18:15:49 +0100 | [diff] [blame] | 62 | if [ "$2" == com.google.android.gms ] || [ "$2" == com.android.vending ] ;then |
| 63 | addition="LOCAL_PRIVILEGED_MODULE := true" |
| 64 | fi |
Pierre-Hugues Husson | c1f73e8 | 2017-12-04 16:43:14 +0100 | [diff] [blame] | 65 | cat >> Android.mk <<EOF |
| 66 | include \$(CLEAR_VARS) |
Pierre-Hugues Husson | c1f73e8 | 2017-12-04 16:43:14 +0100 | [diff] [blame] | 67 | LOCAL_MODULE := $2 |
| 68 | LOCAL_MODULE_TAGS := optional |
| 69 | LOCAL_SRC_FILES := bin/$1 |
| 70 | LOCAL_MODULE_CLASS := APPS |
Pierre-Hugues Husson | ea4517b | 2017-12-04 16:45:04 +0100 | [diff] [blame] | 71 | LOCAL_CERTIFICATE := PRESIGNED |
Pierre-Hugues Husson | 3811d16 | 2017-12-04 23:07:00 +0100 | [diff] [blame] | 72 | LOCAL_OVERRIDES_PACKAGES := $3 |
Pierre-Hugues Husson | 16644af | 2020-04-05 16:08:40 +0200 | [diff] [blame] | 73 | $addition |
Pierre-Hugues Husson | c1f73e8 | 2017-12-04 16:43:14 +0100 | [diff] [blame] | 74 | include \$(BUILD_PREBUILT) |
Pierre-Hugues Husson | 5250fdd | 2017-12-04 22:18:22 +0100 | [diff] [blame] | 75 | |
Pierre-Hugues Husson | c1f73e8 | 2017-12-04 16:43:14 +0100 | [diff] [blame] | 76 | EOF |
| 77 | echo -e "\t$2 \\" >> apps.mk |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 78 | } |
| 79 | |
Jon West | 9fd0d66 | 2021-04-01 16:07:30 -0400 | [diff] [blame] | 80 | echo -e "${LT_BLUE}# Setting Up${NC}" |
Pierre-Hugues Husson | 16644af | 2020-04-05 16:08:40 +0200 | [diff] [blame] | 81 | rm -Rf apps.mk lib |
Pierre-Hugues Husson | c1f73e8 | 2017-12-04 16:43:14 +0100 | [diff] [blame] | 82 | cat > Android.mk <<EOF |
| 83 | LOCAL_PATH := \$(my-dir) |
| 84 | |
| 85 | EOF |
| 86 | echo -e 'PRODUCT_PACKAGES += \\' > apps.mk |
| 87 | |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 88 | mkdir -p bin |
Pierre-Hugues Husson | e1b56f5 | 2020-11-03 18:15:49 +0100 | [diff] [blame] | 89 | |
Pierre-Hugues Husson | 5250fdd | 2017-12-04 22:18:22 +0100 | [diff] [blame] | 90 | #downloadFromFdroid packageName overrides |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 91 | downloadFromFdroid() { |
| 92 | mkdir -p tmp |
Pierre-Hugues Husson | e1b56f5 | 2020-11-03 18:15:49 +0100 | [diff] [blame] | 93 | [ "$oldRepo" != "$repo" ] && rm -f tmp/index.xml |
| 94 | oldRepo="$repo" |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 95 | if [ ! -f tmp/index.xml ];then |
| 96 | #TODO: Check security keys |
Pierre-Hugues Husson | 3db36f7 | 2019-04-01 23:14:30 +0200 | [diff] [blame] | 97 | wget --connect-timeout=10 $repo/index.jar -O tmp/index.jar |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 98 | unzip -p tmp/index.jar index.xml > tmp/index.xml |
| 99 | fi |
Jon West | 1c44e90 | 2021-04-01 19:29:47 -0400 | [diff] [blame] | 100 | |
| 101 | index=1 |
| 102 | apk="$(xmlstarlet sel -t -m '//application[id="'"$1"'"]/package['$index']' -v ./apkname tmp/index.xml)" |
| 103 | native="$(xmlstarlet sel -t -m '//application[id="'"$1"'"]/package['$index']' -v ./nativecode tmp/index.xml)" |
| 104 | if [ "$native" != "" ] |
| 105 | then |
| 106 | index=1 |
| 107 | while true |
| 108 | do |
| 109 | apk="$(xmlstarlet sel -t -m '//application[id="'"$1"'"]/package['$index']' -v ./apkname tmp/index.xml)" |
| 110 | native="$(xmlstarlet sel -t -m '//application[id="'"$1"'"]/package['$index']' -v ./nativecode tmp/index.xml)" |
| 111 | if [ "$native" != "" ] && [ "$(echo $native | grep $MAIN_ARCH)" != "" ] |
| 112 | then |
| 113 | native=$MAIN_ARCH |
| 114 | echo -e "${YELLOW}# native is $native ${NC}" |
| 115 | break |
| 116 | fi |
| 117 | if [ "$native" == "" ] |
| 118 | then |
| 119 | echo -e "${YELLOW}# native is blank or $native ${NC}" |
| 120 | break |
| 121 | fi |
| 122 | index=$((index + 1)) |
| 123 | done |
| 124 | if [ "$native" != "$MAIN_ARCH" ] |
| 125 | then |
| 126 | index=1 |
| 127 | while true |
| 128 | do |
| 129 | apk="$(xmlstarlet sel -t -m '//application[id="'"$1"'"]/package['$index']' -v ./apkname tmp/index.xml)" |
| 130 | native="$(xmlstarlet sel -t -m '//application[id="'"$1"'"]/package['$index']' -v ./nativecode tmp/index.xml)" |
| 131 | if [ "$native" != "" ] && [ "$(echo $native | grep $SUB_ARCH)" != "" ] |
| 132 | then |
| 133 | native=$SUB_ARCH |
| 134 | echo -e "${YELLOW}# native is $native ${NC}" |
| 135 | break |
| 136 | fi |
| 137 | index=$((index + 1)) |
| 138 | done |
| 139 | if [ "$native" != "$SUB_ARCH" ] |
| 140 | then |
| 141 | echo -e "${RED} $1 is not available in $MAIN_ARCH nor $SUB_ARCH ${NC}" |
| 142 | exit 1 |
| 143 | fi |
| 144 | fi |
| 145 | fi |
paledega | 6303e2a | 2020-03-02 09:39:50 +0300 | [diff] [blame] | 146 | if [ ! -f bin/$apk ];then |
| 147 | while ! wget --connect-timeout=10 $repo/$apk -O bin/$apk;do sleep 1;done |
Jon West | ed6857b | 2021-04-01 16:37:30 -0400 | [diff] [blame] | 148 | else |
| 149 | echo -e "${GREEN}# Already grabbed $apk ${NC}" |
paledega | 6303e2a | 2020-03-02 09:39:50 +0300 | [diff] [blame] | 150 | fi |
Pierre-Hugues Husson | 5250fdd | 2017-12-04 22:18:22 +0100 | [diff] [blame] | 151 | addCopy $apk $1 "$2" |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 152 | } |
Jon West | 1c44e90 | 2021-04-01 19:29:47 -0400 | [diff] [blame] | 153 | |
Jon West | 9fd0d66 | 2021-04-01 16:07:30 -0400 | [diff] [blame] | 154 | echo -e "${YELLOW}# grabbing F-Droid Apps${NC}" |
Jon West | 311f0ca | 2021-04-01 15:42:33 -0400 | [diff] [blame] | 155 | # Terminal Emulator |
| 156 | downloadFromFdroid com.termoneplus |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 157 | #Navigation |
| 158 | downloadFromFdroid net.osmand.plus |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 159 | #Calendar |
Jon West | ed6857b | 2021-04-01 16:37:30 -0400 | [diff] [blame] | 160 | downloadFromFdroid ws.xsoh.etar "Calendar" |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 161 | #Pdf viewer |
Pierre-Hugues Husson | 02f4dcb | 2018-06-04 21:19:03 +0200 | [diff] [blame] | 162 | downloadFromFdroid com.artifex.mupdf.viewer.app |
Unknown | 2974a75 | 2020-11-07 20:18:09 -0500 | [diff] [blame] | 163 | # Aurora App Store |
Pierre-Hugues Husson | 06683c2 | 2020-03-31 23:16:24 +0200 | [diff] [blame] | 164 | downloadFromFdroid com.aurora.store |
Pierre-Hugues Husson | b7a5f4a | 2017-12-04 17:07:27 +0100 | [diff] [blame] | 165 | #Mail client |
Pierre-Hugues Husson | 5250fdd | 2017-12-04 22:18:22 +0100 | [diff] [blame] | 166 | downloadFromFdroid com.fsck.k9 "Email" |
Pierre-Hugues Husson | e46e370 | 2018-06-04 21:19:57 +0200 | [diff] [blame] | 167 | #Calendar/Contacts sync |
Pierre-Hugues Husson | 06683c2 | 2020-03-31 23:16:24 +0200 | [diff] [blame] | 168 | downloadFromFdroid com.etesync.syncadapter |
Pierre-Hugues Husson | 06683c2 | 2020-03-31 23:16:24 +0200 | [diff] [blame] | 169 | # Todo lists |
| 170 | downloadFromFdroid org.tasks |
Unknown | 2974a75 | 2020-11-07 20:18:09 -0500 | [diff] [blame] | 171 | #Fake assistant that research on duckduckgo |
| 172 | downloadFromFdroid co.pxhouse.sas |
| 173 | # Gallery App |
| 174 | downloadFromFdroid com.simplemobiletools.gallery.pro "Photos Gallery Gallery2" |
| 175 | # Aurora Fdroid |
| 176 | downloadFromFdroid com.aurora.adroid |
Jon West | ed6857b | 2021-04-01 16:37:30 -0400 | [diff] [blame] | 177 | # F-Droid App Store |
| 178 | #~ downloadFromFdroid org.fdroid.fdroid |
Jon West | 1c44e90 | 2021-04-01 19:29:47 -0400 | [diff] [blame] | 179 | #fdroid extension |
| 180 | #~ downloadFromFdroid org.fdroid.fdroid.privileged |
q0kHaN | 77f0943 | 2019-11-11 12:36:35 +0000 | [diff] [blame] | 181 | #Phonograph |
| 182 | downloadFromFdroid com.kabouzeid.gramophone "Eleven" |
kisekinopureya | 6a3d036 | 2020-01-19 21:35:08 +0300 | [diff] [blame] | 183 | #Alarmio |
| 184 | downloadFromFdroid me.jfenn.alarmio "GoogleClock DeskClock" |
kisekinopureya | 13634d7 | 2019-12-12 01:23:53 +0300 | [diff] [blame] | 185 | #Mozilla Nlp |
kisekinopureya | e47d088 | 2020-01-19 21:44:48 +0300 | [diff] [blame] | 186 | downloadFromFdroid org.microg.nlp.backend.ichnaea |
kisekinopureya | bb4217d | 2019-12-10 20:47:31 +0300 | [diff] [blame] | 187 | #Nominatim Nlp |
| 188 | downloadFromFdroid org.microg.nlp.backend.nominatim |
Jon West | bc3240a | 2021-04-01 15:30:41 -0400 | [diff] [blame] | 189 | # Midori Browser |
Jon West | ed6857b | 2021-04-01 16:37:30 -0400 | [diff] [blame] | 190 | downloadFromFdroid org.midorinext.android "Browser2 QuickSearchBox" |
Jon West | ddb6a38 | 2021-04-01 15:43:49 -0400 | [diff] [blame] | 191 | # EtchDroid USB Writer |
| 192 | downloadFromFdroid eu.depau.etchdroid |
Pierre-Hugues Husson | b7a5f4a | 2017-12-04 17:07:27 +0100 | [diff] [blame] | 193 | |
kisekinopureya | bb4217d | 2019-12-10 20:47:31 +0300 | [diff] [blame] | 194 | #Web browser |
Unknown | 2974a75 | 2020-11-07 20:18:09 -0500 | [diff] [blame] | 195 | #~ downloadFromFdroid org.mozilla.fennec_fdroid "Browser2 QuickSearchBox" |
| 196 | #Public transportation |
| 197 | #~ downloadFromFdroid de.grobox.liberario |
| 198 | #Ciphered Instant Messaging |
| 199 | #downloadFromFdroid im.vector.alpha |
| 200 | #Nextcloud client |
| 201 | #~ downloadFromFdroid com.nextcloud.client |
| 202 | # Social Media Apps |
Unknown | a0b877c | 2020-11-07 19:48:33 -0500 | [diff] [blame] | 203 | #~ downloadFromFdroid org.mariotaku.twidere |
| 204 | #~ downloadFromFdroid com.pitchedapps.frost |
| 205 | #~ downloadFromFdroid com.keylesspalace.tusky |
paledega | 6303e2a | 2020-03-02 09:39:50 +0300 | [diff] [blame] | 206 | |
Jon West | 9fd0d66 | 2021-04-01 16:07:30 -0400 | [diff] [blame] | 207 | echo -e "${YELLOW}# grabbing MicroG Apps${NC}" |
Pierre-Hugues Husson | e1b56f5 | 2020-11-03 18:15:49 +0100 | [diff] [blame] | 208 | repo=https://microg.org/fdroid/repo/ |
| 209 | downloadFromFdroid com.google.android.gms |
| 210 | downloadFromFdroid com.google.android.gsf |
| 211 | downloadFromFdroid com.android.vending |
| 212 | downloadFromFdroid org.microg.gms.droidguard |
| 213 | |
Jon West | 9fd0d66 | 2021-04-01 16:07:30 -0400 | [diff] [blame] | 214 | echo -e "${YELLOW}# grabbing NanoLX Apps${NC}" |
Unknown | 2974a75 | 2020-11-07 20:18:09 -0500 | [diff] [blame] | 215 | repo=https://nanolx.org/fdroid/repo/ |
| 216 | downloadFromFdroid is.xyz.mpv |
| 217 | |
Jon West | 9fd0d66 | 2021-04-01 16:07:30 -0400 | [diff] [blame] | 218 | echo -e "${LT_BLUE}# finishing up apps.mk${NC}" |
Pierre-Hugues Husson | c1f73e8 | 2017-12-04 16:43:14 +0100 | [diff] [blame] | 219 | echo >> apps.mk |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 220 | |
Jon West | 9fd0d66 | 2021-04-01 16:07:30 -0400 | [diff] [blame] | 221 | echo -e "${YELLOW}# Cleaning up${NC}" |
Pierre-Hugues Husson | bcc5b64 | 2017-12-04 16:27:25 +0100 | [diff] [blame] | 222 | rm -Rf tmp |
Jon West | 9fd0d66 | 2021-04-01 16:07:30 -0400 | [diff] [blame] | 223 | |
| 224 | echo -e "${GREEN}# DONE${NC}" |