From 67e962e0f6de162f119c7c8ab03cacf922b7fa4a Mon Sep 17 00:00:00 2001 From: Tavi Date: Sat, 18 May 2024 12:50:02 -0400 Subject: [PATCH] 20.0: Updater: Add server choices Also fixes .onion support TODO: Test and backport to previous branches Signed-off-by: Tavi --- .../0003-Server_Choices.patch | 199 ++++++++++++++++++ Scripts/LineageOS-14.1/Rebrand.sh | 4 +- Scripts/LineageOS-15.1/Rebrand.sh | 4 +- Scripts/LineageOS-16.0/Rebrand.sh | 4 +- Scripts/LineageOS-17.1/Rebrand.sh | 4 +- Scripts/LineageOS-18.1/Rebrand.sh | 4 +- Scripts/LineageOS-19.1/Rebrand.sh | 4 +- Scripts/LineageOS-20.0/Patch.sh | 1 + Scripts/LineageOS-20.0/Rebrand.sh | 16 +- Scripts/init.sh | 13 +- 10 files changed, 237 insertions(+), 16 deletions(-) create mode 100644 Patches/LineageOS-20.0/android_packages_apps_Updater/0003-Server_Choices.patch diff --git a/Patches/LineageOS-20.0/android_packages_apps_Updater/0003-Server_Choices.patch b/Patches/LineageOS-20.0/android_packages_apps_Updater/0003-Server_Choices.patch new file mode 100644 index 00000000..988e4653 --- /dev/null +++ b/Patches/LineageOS-20.0/android_packages_apps_Updater/0003-Server_Choices.patch @@ -0,0 +1,199 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tavi +Date: Sat, 18 May 2024 11:21:24 -0400 +Subject: [PATCH] Add server choices + +Change-Id: I43524f0567eabff163ce81c4a93cf145542a3d5d +Signed-off-by: Tavi +--- + app/src/main/AndroidManifest.xml | 3 ++- + .../lineageos/updater/UpdatesActivity.java | 3 +++ + .../org/lineageos/updater/misc/Constants.java | 11 ++++++++ + .../org/lineageos/updater/misc/Utils.java | 27 ++++++++++++++++--- + .../main/res/layout/preferences_dialog.xml | 22 +++++++++++++++ + app/src/main/res/values/arrays.xml | 7 +++++ + app/src/main/res/values/strings.xml | 5 ++++ + .../main/res/xml/network_security_config.xml | 8 ++++++ + 8 files changed, 81 insertions(+), 5 deletions(-) + create mode 100644 app/src/main/res/xml/network_security_config.xml + +diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml +index 6041740..a4cdf95 100644 +--- a/app/src/main/AndroidManifest.xml ++++ b/app/src/main/AndroidManifest.xml +@@ -29,7 +29,8 @@ + android:requestLegacyExternalStorage="true" + android:supportsRtl="true" + android:theme="@style/AppTheme" +- android:usesCleartextTraffic="false"> ++ android:usesCleartextTraffic="false" ++ android:networkSecurityConfig="@xml/network_security_config"> + + + + ++ ++ ++ ++ ++ ++ ++ + @string/menu_auto_updates_check_interval_weekly + @string/menu_auto_updates_check_interval_monthly + ++ ++ ++ @string/menu_server_choice_primary ++ @string/menu_server_choice_secondary ++ @string/menu_server_choice_onion_primary ++ @string/menu_server_choice_onion_secondary ++ + +diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml +index ac159a8..c947659 100644 +--- a/app/src/main/res/values/strings.xml ++++ b/app/src/main/res/values/strings.xml +@@ -59,6 +59,11 @@ + Once a week + Once a month + Never ++ Server Choice ++ Primary ++ 0OTA_SERVER_CLEARNET_SECONDARY_NAME0 ++ Onion #1 ++ Onion #2 + Perform requests over Tor + Delete updates when installed + Delete +diff --git a/app/src/main/res/xml/network_security_config.xml b/app/src/main/res/xml/network_security_config.xml +new file mode 100644 +index 0000000..09b655b +--- /dev/null ++++ b/app/src/main/res/xml/network_security_config.xml +@@ -0,0 +1,8 @@ ++ ++ ++ ++ 0OTA_SERVER_ONION_DOMAIN_PRIMARY0 ++ 0OTA_SERVER_ONION_DOMAIN_SECONDARY0 ++ ++ ++ diff --git a/Scripts/LineageOS-14.1/Rebrand.sh b/Scripts/LineageOS-14.1/Rebrand.sh index 42859a56..7856ffdd 100644 --- a/Scripts/LineageOS-14.1/Rebrand.sh +++ b/Scripts/LineageOS-14.1/Rebrand.sh @@ -58,8 +58,8 @@ sed -i '/.*setup_services/s/LineageOS/'"$DOS_BRANDING_NAME"'/g' res/values*/stri fi; if enter "packages/apps/Updater"; then -sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_BRANDING_SERVER_OTA"'|' src/org/lineageos/updater/misc/Utils.java; -sed -i 's|0OTA_SERVER_ONION0|'"$DOS_BRANDING_SERVER_OTA_ONION"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_ONION0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; sed -i 's|>LineageOS|>'"$DOS_BRANDING_NAME"'|' res/values*/strings.xml; sed -i 's|https://download.lineageos.org/%1$s/changes|'"$DOS_BRANDING_LINK_NEWS"'|g' res/values*/strings.xml; fi; diff --git a/Scripts/LineageOS-15.1/Rebrand.sh b/Scripts/LineageOS-15.1/Rebrand.sh index fc0a09a6..405bded4 100644 --- a/Scripts/LineageOS-15.1/Rebrand.sh +++ b/Scripts/LineageOS-15.1/Rebrand.sh @@ -69,8 +69,8 @@ sed -i '/.*setup_services/s/LineageOS/'"$DOS_BRANDING_NAME"'/g' res/values*/stri fi; if enter "packages/apps/Updater"; then -sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_BRANDING_SERVER_OTA"'|' src/org/lineageos/updater/misc/Utils.java; -sed -i 's|0OTA_SERVER_ONION0|'"$DOS_BRANDING_SERVER_OTA_ONION"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_ONION0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; sed -i 's|>LineageOS|>'"$DOS_BRANDING_NAME"'|' res/values*/strings.xml; sed -i 's|https://download.lineageos.org/%1$s/changes|'"$DOS_BRANDING_LINK_NEWS"'|g' res/values*/strings.xml; fi; diff --git a/Scripts/LineageOS-16.0/Rebrand.sh b/Scripts/LineageOS-16.0/Rebrand.sh index dc79b23a..99641e50 100644 --- a/Scripts/LineageOS-16.0/Rebrand.sh +++ b/Scripts/LineageOS-16.0/Rebrand.sh @@ -69,8 +69,8 @@ sed -i '/.*setup_services/s/LineageOS/'"$DOS_BRANDING_NAME"'/g' res/values*/stri fi; if enter "packages/apps/Updater"; then -sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_BRANDING_SERVER_OTA"'|' src/org/lineageos/updater/misc/Utils.java; -sed -i 's|0OTA_SERVER_ONION0|'"$DOS_BRANDING_SERVER_OTA_ONION"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_ONION0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; sed -i 's|>LineageOS|>'"$DOS_BRANDING_NAME"'|' res/values*/strings.xml; sed -i 's|https://download.lineageos.org/%1$s/changes|'"$DOS_BRANDING_LINK_NEWS"'|g' res/values*/strings.xml; fi; diff --git a/Scripts/LineageOS-17.1/Rebrand.sh b/Scripts/LineageOS-17.1/Rebrand.sh index 51831f7e..2eae1f4e 100644 --- a/Scripts/LineageOS-17.1/Rebrand.sh +++ b/Scripts/LineageOS-17.1/Rebrand.sh @@ -76,8 +76,8 @@ sed -i '/.*setup_services/s/LineageOS/'"$DOS_BRANDING_NAME"'/g' res/values*/stri fi; if enter "packages/apps/Updater"; then -sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_BRANDING_SERVER_OTA"'|' src/org/lineageos/updater/misc/Utils.java; -sed -i 's|0OTA_SERVER_ONION0|'"$DOS_BRANDING_SERVER_OTA_ONION"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_ONION0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; sed -i 's|>LineageOS|>'"$DOS_BRANDING_NAME"'|' res/values*/strings.xml; sed -i 's|https://download.lineageos.org/%1$s/changes|'"$DOS_BRANDING_LINK_NEWS"'|g' res/values*/strings.xml; fi; diff --git a/Scripts/LineageOS-18.1/Rebrand.sh b/Scripts/LineageOS-18.1/Rebrand.sh index b0917160..d481739a 100644 --- a/Scripts/LineageOS-18.1/Rebrand.sh +++ b/Scripts/LineageOS-18.1/Rebrand.sh @@ -76,8 +76,8 @@ sed -i '/.*update_recovery/s/Lineage/'"$DOS_BRANDING_NAME"'/g' res/values*/strin fi; if enter "packages/apps/Updater"; then -sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_BRANDING_SERVER_OTA"'|' src/org/lineageos/updater/misc/Utils.java; -sed -i 's|0OTA_SERVER_ONION0|'"$DOS_BRANDING_SERVER_OTA_ONION"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_ONION0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; sed -i 's|>LineageOS|>'"$DOS_BRANDING_NAME"'|' res/values*/strings.xml; sed -i '/.*toast_forced_update_recovery/s/Lineage/'"$DOS_BRANDING_NAME"'/g' res/values*/strings.xml; sed -i '/.*info_dialog_message/s/Lineage/'"$DOS_BRANDING_NAME"'/g' res/values*/strings.xml; diff --git a/Scripts/LineageOS-19.1/Rebrand.sh b/Scripts/LineageOS-19.1/Rebrand.sh index 1aed485a..3191a4be 100644 --- a/Scripts/LineageOS-19.1/Rebrand.sh +++ b/Scripts/LineageOS-19.1/Rebrand.sh @@ -76,8 +76,8 @@ sed -i '/.*update_recovery/s/Lineage/'"$DOS_BRANDING_NAME"'/g' res/values*/strin fi; if enter "packages/apps/Updater"; then -sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_BRANDING_SERVER_OTA"'|' src/org/lineageos/updater/misc/Utils.java; -sed -i 's|0OTA_SERVER_ONION0|'"$DOS_BRANDING_SERVER_OTA_ONION"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; +sed -i 's|0OTA_SERVER_ONION0|'"$DOS_OTA_SERVER_LEGACY"'|' src/org/lineageos/updater/misc/Utils.java; sed -i 's|>LineageOS|>'"$DOS_BRANDING_NAME"'|' res/values*/strings.xml; sed -i '/.*toast_forced_update_recovery/s/Lineage/'"$DOS_BRANDING_NAME"'/g' res/values*/strings.xml; sed -i '/.*info_dialog_message/s/Lineage/'"$DOS_BRANDING_NAME"'/g' res/values*/strings.xml; diff --git a/Scripts/LineageOS-20.0/Patch.sh b/Scripts/LineageOS-20.0/Patch.sh index 106e95f7..4cad79e9 100644 --- a/Scripts/LineageOS-20.0/Patch.sh +++ b/Scripts/LineageOS-20.0/Patch.sh @@ -365,6 +365,7 @@ fi; if enterAndClear "packages/apps/Updater"; then applyPatch "$DOS_PATCHES/android_packages_apps_Updater/0001-Server.patch"; #Switch to our server (DivestOS) applyPatch "$DOS_PATCHES/android_packages_apps_Updater/0002-Tor_Support.patch"; #Add Tor support (DivestOS) +if [ "$DOS_OTA_SERVER_EXTENDED" = true ]; then applyPatch "$DOS_PATCHES/android_packages_apps_Updater/0003-Server_Choices.patch"; fi; #Add server choices (DivestOS) sed -i 's/PROP_BUILD_VERSION_INCREMENTAL);/PROP_BUILD_VERSION_INCREMENTAL).replaceAll("\\\\.", "");/' app/src/main/java/org/lineageos/updater/misc/Utils.java; #Remove periods from incremental version #TODO: Remove changelog fi; diff --git a/Scripts/LineageOS-20.0/Rebrand.sh b/Scripts/LineageOS-20.0/Rebrand.sh index 607a6685..f55c83a0 100644 --- a/Scripts/LineageOS-20.0/Rebrand.sh +++ b/Scripts/LineageOS-20.0/Rebrand.sh @@ -77,8 +77,20 @@ sed -i '/.*update_recovery/s/Lineage/'"$DOS_BRANDING_NAME"'/g' res/values*/strin fi; if enter "packages/apps/Updater"; then -sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_BRANDING_SERVER_OTA"'|' app/src/main/java/org/lineageos/updater/misc/Utils.java; -sed -i 's|0OTA_SERVER_ONION0|'"$DOS_BRANDING_SERVER_OTA_ONION"'|' app/src/main/java/org/lineageos/updater/misc/Utils.java; +if [ "$DOS_OTA_SERVER_EXTENDED" = true ]; then + sed -i 's|0OTA_SERVER_CLEARNET_PRIMARY0|'"$DOS_OTA_SERVER_PRIMARY"'|' app/src/main/java/org/lineageos/updater/misc/Constants.java; + sed -i 's|0OTA_SERVER_CLEARNET_SECONDARY0|'"$DOS_OTA_SERVER_SECONDARY"'|' app/src/main/java/org/lineageos/updater/misc/Constants.java; + sed -i 's|0OTA_SERVER_ONION_PRIMARY0|'"$DOS_OTA_SERVER_ONION_PRIMARY"'|' app/src/main/java/org/lineageos/updater/misc/Constants.java; + sed -i 's|0OTA_SERVER_ONION_SECONDARY0|'"$DOS_OTA_SERVER_ONION_SECONDARY"'|' app/src/main/java/org/lineageos/updater/misc/Constants.java; + + sed -i 's|0OTA_SERVER_CLEARNET_SECONDARY_NAME0|'"$DOS_OTA_SERVER_SECONDARY_NAME"'|' app/src/main/res/values/strings.xml; + + sed -i 's|0OTA_SERVER_ONION_DOMAIN_PRIMARY0|'"$DOS_OTA_SERVER_ONION_DOMAIN_PRIMARY"'|' app/src/main/res/xml/network_security_config.xml; + sed -i 's|0OTA_SERVER_ONION_DOMAIN_SECONDARY0|'"$DOS_OTA_SERVER_ONION_DOMAIN_SECONDARY"'|' app/src/main/res/xml/network_security_config.xml; +else + sed -i 's|0OTA_SERVER_CLEARNET0|'"$DOS_OTA_SERVER_LEGACY"'|' app/src/main/java/org/lineageos/updater/misc/Utils.java; + sed -i 's|0OTA_SERVER_ONION0|'"$DOS_OTA_SERVER_LEGACY"'|' app/src/main/java/org/lineageos/updater/misc/Utils.java; +fi; sed -i 's|>LineageOS|>'"$DOS_BRANDING_NAME"'|' app/src/main/res/values*/strings.xml; sed -i '/.*toast_forced_update_recovery/s/Lineage/'"$DOS_BRANDING_NAME"'/g' app/src/main/res/values*/strings.xml; sed -i '/.*info_dialog_message/s/Lineage/'"$DOS_BRANDING_NAME"'/g' app/src/main/res/values*/strings.xml; diff --git a/Scripts/init.sh b/Scripts/init.sh index 8d561045..8730a2b4 100644 --- a/Scripts/init.sh +++ b/Scripts/init.sh @@ -99,8 +99,17 @@ export DOS_BRANDING_BOOTANIMATION_COLOR="#FF5722-#03A9F4"; #plasma export DOS_BRANDING_LINK_ABOUT="https://divestos.org/pages/about"; export DOS_BRANDING_LINK_NEWS="https://divestos.org/pages/news"; export DOS_BRANDING_LINK_PRIVACY="https://divestos.org/pages/privacy_policy"; -export DOS_BRANDING_SERVER_OTA="https://divestos.org/updater.php"; -export DOS_BRANDING_SERVER_OTA_ONION="$DOS_BRANDING_SERVER_OTA"; #TODO: need to handle allow cleartext + +#OTAs +export DOS_OTA_SERVER_LEGACY="https://divestos.org/updater.php"; +export DOS_OTA_SERVER_EXTENDED=true; #Enable to provide mutliple choices as set below +export DOS_OTA_SERVER_PRIMARY="https://divestos.org/updater.php"; +export DOS_OTA_SERVER_SECONDARY="https://divestos.eeyo.re/updater.php"; +export DOS_OTA_SERVER_SECONDARY_NAME="Cloudflare"; +export DOS_OTA_SERVER_ONION_PRIMARY="http://divestoseb5nncsydt7zzf5hrfg44md4bxqjs5ifcv4t7gt7u6ohjyyd.onion/updater.php"; +export DOS_OTA_SERVER_ONION_SECONDARY="http://2ceyag7ppvhliszes2v25n5lmpwhzqrc7sv72apqka6hwggfi42y2uid.onion/updater.php"; +export DOS_OTA_SERVER_ONION_DOMAIN_PRIMARY="divestoseb5nncsydt7zzf5hrfg44md4bxqjs5ifcv4t7gt7u6ohjyyd.onion"; #Used for network security config +export DOS_OTA_SERVER_ONION_DOMAIN_SECONDARY="2ceyag7ppvhliszes2v25n5lmpwhzqrc7sv72apqka6hwggfi42y2uid.onion"; #Theme export DOS_THEME_50="FFCA28"; #Amber 400