blob: c957a09fbcfe38ce1f34972c44cb2215c3c5801d [file] [log] [blame]
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +01001#!/bin/bash
Jon West1c44e902021-04-01 19:29:47 -04002#~ set -e
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +01003
Jon West9fd0d662021-04-01 16:07:30 -04004RED='\033[0;31m'
5GREEN='\033[0;32m'
6YELLOW='\033[0;33m'
7LT_BLUE='\033[0;34m'
8
9NC='\033[0m' # No Color
10
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +010011repo="https://f-droid.org/repo/"
12
Jon West1c44e902021-04-01 19:29:47 -040013MAIN_ARCH="x86_64"
14SUB_ARCH="x86"
15
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +010016addCopy() {
Pierre-Hugues Husson16644af2020-04-05 16:08:40 +020017 addition=""
Jon West1c44e902021-04-01 19:29:47 -040018 if [ "$native" != "" ]
19 then
20 unzip bin/$1 "lib/*"
21 if [ "$native" == "$MAIN_ARCH" ];then
22 addition="
23LOCAL_PREBUILT_JNI_LIBS := \\
24$(unzip -lv bin/$1 |grep -v Stored |sed -nE 's;.*(lib/'"$MAIN_ARCH"'/.*);\t\1 \\;p')
25 "
26 fi
27 if [ "$native" == "$SUB_ARCH" ];then
28 addition="
29LOCAL_MULTILIB := 32
30LOCAL_PREBUILT_JNI_LIBS := \\
31$(unzip -lv bin/$1 |grep -v Stored |sed -nE 's;.*(lib/'"$SUB_ARCH"'/.*);\t\1 \\;p')
32 "
33 fi
34 fi
Pierre-Hugues Hussone1b56f52020-11-03 18:15:49 +010035 if [ "$2" == com.google.android.gms ] || [ "$2" == com.android.vending ] ;then
36 addition="LOCAL_PRIVILEGED_MODULE := true"
37 fi
Pierre-Hugues Hussonc1f73e82017-12-04 16:43:14 +010038cat >> Android.mk <<EOF
39include \$(CLEAR_VARS)
Pierre-Hugues Hussonc1f73e82017-12-04 16:43:14 +010040LOCAL_MODULE := $2
41LOCAL_MODULE_TAGS := optional
42LOCAL_SRC_FILES := bin/$1
43LOCAL_MODULE_CLASS := APPS
Pierre-Hugues Hussonea4517b2017-12-04 16:45:04 +010044LOCAL_CERTIFICATE := PRESIGNED
Pierre-Hugues Husson3811d162017-12-04 23:07:00 +010045LOCAL_OVERRIDES_PACKAGES := $3
Pierre-Hugues Husson16644af2020-04-05 16:08:40 +020046$addition
Pierre-Hugues Hussonc1f73e82017-12-04 16:43:14 +010047include \$(BUILD_PREBUILT)
Pierre-Hugues Husson5250fdd2017-12-04 22:18:22 +010048
Pierre-Hugues Hussonc1f73e82017-12-04 16:43:14 +010049EOF
50echo -e "\t$2 \\" >> apps.mk
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +010051}
52
Jon West9fd0d662021-04-01 16:07:30 -040053echo -e "${LT_BLUE}# Setting Up${NC}"
Pierre-Hugues Husson16644af2020-04-05 16:08:40 +020054rm -Rf apps.mk lib
Pierre-Hugues Hussonc1f73e82017-12-04 16:43:14 +010055cat > Android.mk <<EOF
56LOCAL_PATH := \$(my-dir)
57
58EOF
59echo -e 'PRODUCT_PACKAGES += \\' > apps.mk
60
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +010061mkdir -p bin
Pierre-Hugues Hussone1b56f52020-11-03 18:15:49 +010062
Pierre-Hugues Husson5250fdd2017-12-04 22:18:22 +010063#downloadFromFdroid packageName overrides
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +010064downloadFromFdroid() {
65 mkdir -p tmp
Pierre-Hugues Hussone1b56f52020-11-03 18:15:49 +010066 [ "$oldRepo" != "$repo" ] && rm -f tmp/index.xml
67 oldRepo="$repo"
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +010068 if [ ! -f tmp/index.xml ];then
69 #TODO: Check security keys
Pierre-Hugues Husson3db36f72019-04-01 23:14:30 +020070 wget --connect-timeout=10 $repo/index.jar -O tmp/index.jar
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +010071 unzip -p tmp/index.jar index.xml > tmp/index.xml
72 fi
Jon West1c44e902021-04-01 19:29:47 -040073
74 index=1
75 apk="$(xmlstarlet sel -t -m '//application[id="'"$1"'"]/package['$index']' -v ./apkname tmp/index.xml)"
76 native="$(xmlstarlet sel -t -m '//application[id="'"$1"'"]/package['$index']' -v ./nativecode tmp/index.xml)"
77 if [ "$native" != "" ]
78 then
79 index=1
80 while true
81 do
82 apk="$(xmlstarlet sel -t -m '//application[id="'"$1"'"]/package['$index']' -v ./apkname tmp/index.xml)"
83 native="$(xmlstarlet sel -t -m '//application[id="'"$1"'"]/package['$index']' -v ./nativecode tmp/index.xml)"
84 if [ "$native" != "" ] && [ "$(echo $native | grep $MAIN_ARCH)" != "" ]
85 then
86 native=$MAIN_ARCH
87 echo -e "${YELLOW}# native is $native ${NC}"
88 break
89 fi
90 if [ "$native" == "" ]
91 then
92 echo -e "${YELLOW}# native is blank or $native ${NC}"
93 break
94 fi
95 index=$((index + 1))
96 done
97 if [ "$native" != "$MAIN_ARCH" ]
98 then
99 index=1
100 while true
101 do
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" != "" ] && [ "$(echo $native | grep $SUB_ARCH)" != "" ]
105 then
106 native=$SUB_ARCH
107 echo -e "${YELLOW}# native is $native ${NC}"
108 break
109 fi
110 index=$((index + 1))
111 done
112 if [ "$native" != "$SUB_ARCH" ]
113 then
114 echo -e "${RED} $1 is not available in $MAIN_ARCH nor $SUB_ARCH ${NC}"
115 exit 1
116 fi
117 fi
118 fi
paledega6303e2a2020-03-02 09:39:50 +0300119 if [ ! -f bin/$apk ];then
120 while ! wget --connect-timeout=10 $repo/$apk -O bin/$apk;do sleep 1;done
Jon Wested6857b2021-04-01 16:37:30 -0400121 else
122 echo -e "${GREEN}# Already grabbed $apk ${NC}"
paledega6303e2a2020-03-02 09:39:50 +0300123 fi
Pierre-Hugues Husson5250fdd2017-12-04 22:18:22 +0100124 addCopy $apk $1 "$2"
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +0100125}
Jon West1c44e902021-04-01 19:29:47 -0400126
Jon West9fd0d662021-04-01 16:07:30 -0400127echo -e "${YELLOW}# grabbing F-Droid Apps${NC}"
Jon West311f0ca2021-04-01 15:42:33 -0400128# Terminal Emulator
129downloadFromFdroid com.termoneplus
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +0100130#Navigation
131downloadFromFdroid net.osmand.plus
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +0100132#Calendar
Jon Wested6857b2021-04-01 16:37:30 -0400133downloadFromFdroid ws.xsoh.etar "Calendar"
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +0100134#Pdf viewer
Pierre-Hugues Husson02f4dcb2018-06-04 21:19:03 +0200135downloadFromFdroid com.artifex.mupdf.viewer.app
Unknown2974a752020-11-07 20:18:09 -0500136# Aurora App Store
Pierre-Hugues Husson06683c22020-03-31 23:16:24 +0200137downloadFromFdroid com.aurora.store
Pierre-Hugues Hussonb7a5f4a2017-12-04 17:07:27 +0100138#Mail client
Pierre-Hugues Husson5250fdd2017-12-04 22:18:22 +0100139downloadFromFdroid com.fsck.k9 "Email"
Pierre-Hugues Hussone46e3702018-06-04 21:19:57 +0200140#Calendar/Contacts sync
Pierre-Hugues Husson06683c22020-03-31 23:16:24 +0200141downloadFromFdroid com.etesync.syncadapter
Pierre-Hugues Husson06683c22020-03-31 23:16:24 +0200142# Todo lists
143downloadFromFdroid org.tasks
Unknown2974a752020-11-07 20:18:09 -0500144#Fake assistant that research on duckduckgo
145downloadFromFdroid co.pxhouse.sas
146# Gallery App
147downloadFromFdroid com.simplemobiletools.gallery.pro "Photos Gallery Gallery2"
148# Aurora Fdroid
149downloadFromFdroid com.aurora.adroid
Jon Wested6857b2021-04-01 16:37:30 -0400150# F-Droid App Store
151#~ downloadFromFdroid org.fdroid.fdroid
Jon West1c44e902021-04-01 19:29:47 -0400152#fdroid extension
153#~ downloadFromFdroid org.fdroid.fdroid.privileged
q0kHaN77f09432019-11-11 12:36:35 +0000154#Phonograph
155downloadFromFdroid com.kabouzeid.gramophone "Eleven"
kisekinopureya6a3d0362020-01-19 21:35:08 +0300156#Alarmio
157downloadFromFdroid me.jfenn.alarmio "GoogleClock DeskClock"
kisekinopureya13634d72019-12-12 01:23:53 +0300158#Mozilla Nlp
kisekinopureyae47d0882020-01-19 21:44:48 +0300159downloadFromFdroid org.microg.nlp.backend.ichnaea
kisekinopureyabb4217d2019-12-10 20:47:31 +0300160#Nominatim Nlp
161downloadFromFdroid org.microg.nlp.backend.nominatim
Jon Westbc3240a2021-04-01 15:30:41 -0400162# Midori Browser
Jon Wested6857b2021-04-01 16:37:30 -0400163downloadFromFdroid org.midorinext.android "Browser2 QuickSearchBox"
Jon Westddb6a382021-04-01 15:43:49 -0400164# EtchDroid USB Writer
165downloadFromFdroid eu.depau.etchdroid
Pierre-Hugues Hussonb7a5f4a2017-12-04 17:07:27 +0100166
kisekinopureyabb4217d2019-12-10 20:47:31 +0300167#Web browser
Unknown2974a752020-11-07 20:18:09 -0500168#~ downloadFromFdroid org.mozilla.fennec_fdroid "Browser2 QuickSearchBox"
169#Public transportation
170#~ downloadFromFdroid de.grobox.liberario
171#Ciphered Instant Messaging
172#downloadFromFdroid im.vector.alpha
173#Nextcloud client
174#~ downloadFromFdroid com.nextcloud.client
175# Social Media Apps
Unknowna0b877c2020-11-07 19:48:33 -0500176#~ downloadFromFdroid org.mariotaku.twidere
177#~ downloadFromFdroid com.pitchedapps.frost
178#~ downloadFromFdroid com.keylesspalace.tusky
paledega6303e2a2020-03-02 09:39:50 +0300179
Jon West9fd0d662021-04-01 16:07:30 -0400180echo -e "${YELLOW}# grabbing MicroG Apps${NC}"
Pierre-Hugues Hussone1b56f52020-11-03 18:15:49 +0100181repo=https://microg.org/fdroid/repo/
182downloadFromFdroid com.google.android.gms
183downloadFromFdroid com.google.android.gsf
184downloadFromFdroid com.android.vending
185downloadFromFdroid org.microg.gms.droidguard
186
Jon West9fd0d662021-04-01 16:07:30 -0400187echo -e "${YELLOW}# grabbing NanoLX Apps${NC}"
Unknown2974a752020-11-07 20:18:09 -0500188repo=https://nanolx.org/fdroid/repo/
189downloadFromFdroid is.xyz.mpv
190
Jon West9fd0d662021-04-01 16:07:30 -0400191echo -e "${LT_BLUE}# finishing up apps.mk${NC}"
Pierre-Hugues Hussonc1f73e82017-12-04 16:43:14 +0100192echo >> apps.mk
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +0100193
Jon West9fd0d662021-04-01 16:07:30 -0400194echo -e "${YELLOW}# Cleaning up${NC}"
Pierre-Hugues Hussonbcc5b642017-12-04 16:27:25 +0100195rm -Rf tmp
Jon West9fd0d662021-04-01 16:07:30 -0400196
197echo -e "${GREEN}# DONE${NC}"