From 7fa107662120d64d16204a41d49679d5f4396a6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Fri, 19 Jan 2024 20:59:05 +0100 Subject: [PATCH 01/17] prepare for release --- CHANGES.md | 5 +++++ NEW_RELEASE.md | 7 ++++--- app/build.gradle | 4 ++-- build_app_git.sh | 4 ++-- build_app_tar.sh | 9 +++++++-- create_release_tar.sh | 17 +++++++---------- .../metadata/android/en-US/changelogs/26.txt | 2 ++ 7 files changed, 29 insertions(+), 19 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/26.txt diff --git a/CHANGES.md b/CHANGES.md index 282c475d..acee1408 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,10 @@ # Changelog +## 3.2.2 (2024-02-05) +- fix incorrect usage of seconds, should be ms + ([GH#411](https://github.com/eduvpn/android/issues/411)) +- fix not being able to add secure internet servers ([GH#412](https://github.com/eduvpn/android/issues/411)) + ## 3.2.1 (2024-01-19) - update all build scripts for new release - create new tag to properly update CHANGES.md and fastlane files diff --git a/NEW_RELEASE.md b/NEW_RELEASE.md index 978ad8c2..a4e1675b 100644 --- a/NEW_RELEASE.md +++ b/NEW_RELEASE.md @@ -3,7 +3,7 @@ Walk through the following steps when making a new release: * Update `CHANGES.md` to make sure all changes are recorded for the new release - including the release date, e.g.: `3.2.0 (2032-12-22)`; + including the release date, e.g.: `3.2.0 (2023-12-22)`; * Increment the `versionCode` and set `versionName` to the correct version tag in `app/build.gradle`; * Copy the entries from the `CHANGES.md` file you made also to @@ -11,5 +11,6 @@ Walk through the following steps when making a new release: * Update the `build_app_git.sh`, `build_app_tar.sh`, `create_release_tar.sh`, and if necessary `builder_setup.sh`; * Create an "annotated" tag with e.g. `git tag 3.2.0 -a -m '3.2.0'`; -* Push the tag, e.g.: `git push 3.2.0`; -* Create a release with `create_release_tar.sh` +* Push the tag, e.g.: `git push origin 3.2.0`; +* Create a release with `create_release_tar.sh` and "attach" the `.tar.xz` and + `.tar.xz.minisig` files to the release on the forge diff --git a/app/build.gradle b/app/build.gradle index 7e4e60ee..e47f3c89 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "nl.eduvpn.app" minSdkVersion 21 targetSdkVersion 34 - versionCode 25 - versionName "3.2.1" + versionCode 26 + versionName "3.2.2" ndkVersion "26.1.10909125" vectorDrawables.useSupportLibrary = true diff --git a/build_app_git.sh b/build_app_git.sh index 744d811f..17e0fd6f 100755 --- a/build_app_git.sh +++ b/build_app_git.sh @@ -7,8 +7,8 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks -GIT_REPO=https://github.com/eduvpn/android -#GIT_TAG=3.2.1 +GIT_REPO=https://github.com/eduVPN/android +#GIT_TAG=3.2.2 GIT_TAG=master PROJECT_DIR=${HOME}/Projects diff --git a/build_app_tar.sh b/build_app_tar.sh index 9389d921..0298a802 100755 --- a/build_app_tar.sh +++ b/build_app_tar.sh @@ -7,8 +7,8 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks -V=3.2.1 -DOWNLOAD_URL=https://github.com/eduvpn/android/releases/download/${V}/eduvpn-android-${V}.tar.xz +V=3.2.2 +DOWNLOAD_URL=https://codeberg.org/eduVPN/android/releases/download/${V}/eduvpn-android-${V}.tar.xz PROJECT_DIR=${HOME}/Projects APP_DIR=${PROJECT_DIR}/eduvpn-android-${V} @@ -18,6 +18,11 @@ GRADLE_TASK=app:assembleBasicRelease UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/basic/release/app-basic-release-unsigned.apk SIGNED_APK=${PROJECT_DIR}/eduVPN-${V}.apk +# govVPN +#GRADLE_TASK=app:assembleGovRelease +#UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/gov/release/app-gov-release-unsigned.apk +#SIGNED_APK=${PROJECT_DIR}/govVPN-${V}.apk + # Let's Connect! #GRADLE_TASK=app:assembleHomeRelease #UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/home/release/app-home-release-unsigned.apk diff --git a/create_release_tar.sh b/create_release_tar.sh index f1007fd8..84b486c9 100755 --- a/create_release_tar.sh +++ b/create_release_tar.sh @@ -1,29 +1,26 @@ #!/bin/sh -GIT_REPO=https://github.com/eduvpn/android -GIT_TAG=3.2.1 +GIT_REPO=https://codeberg.org/eduVPN/android +GIT_TAG=3.2.2 #GIT_TAG=master -PROJECT_DIR=${HOME}/Projects -APP_DIR=${PROJECT_DIR}/eduvpn-android-${GIT_TAG} - ############################################################################### # CLONE ############################################################################### ( - mkdir -p "${PROJECT_DIR}" - cd "${PROJECT_DIR}" || exit + mkdir -p release + cd release || exit - git clone --recursive -b ${GIT_TAG} ${GIT_REPO} "${APP_DIR}" + git clone --recursive -b ${GIT_TAG} ${GIT_REPO} eduvpn-android-${GIT_TAG} ( - cd "${APP_DIR}" || exit - + cd eduvpn-android-${GIT_TAG} || exit # remove all ".git" folders find . -type d -name ".git" | xargs rm -rf ) tar -cJf eduvpn-android-${GIT_TAG}.tar.xz eduvpn-android-${GIT_TAG} + rm -rf eduvpn-android-${GIT_TAG} minisign -Sm eduvpn-android-${GIT_TAG}.tar.xz ) diff --git a/fastlane/metadata/android/en-US/changelogs/26.txt b/fastlane/metadata/android/en-US/changelogs/26.txt new file mode 100644 index 00000000..68b683ec --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/26.txt @@ -0,0 +1,2 @@ +- fix incorrect usage of seconds, should be ms +- fix not being able to add secure internet servers From d086fc40f7c7e2cbd88481418859346890247355 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Wed, 7 Feb 2024 10:52:15 +0100 Subject: [PATCH 02/17] fix link to issue --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index acee1408..c82b8887 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,7 +3,7 @@ ## 3.2.2 (2024-02-05) - fix incorrect usage of seconds, should be ms ([GH#411](https://github.com/eduvpn/android/issues/411)) -- fix not being able to add secure internet servers ([GH#412](https://github.com/eduvpn/android/issues/411)) +- fix not being able to add secure internet servers ([GH#412](https://github.com/eduvpn/android/issues/412)) ## 3.2.1 (2024-01-19) - update all build scripts for new release From ae5a67b3c23e7c063d4dd4a30b9313f4e1018038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Sat, 20 Apr 2024 18:51:34 +0200 Subject: [PATCH 03/17] prepare for 3.3.0 release --- CHANGES.md | 8 ++++++-- app/build.gradle | 4 ++-- build_app_git.sh | 2 +- build_app_tar.sh | 2 +- create_release_tar.sh | 2 +- fastlane/metadata/android/en-US/changelogs/27.txt | 5 +++++ 6 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/27.txt diff --git a/CHANGES.md b/CHANGES.md index 832593db..c4f4200f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,7 +1,11 @@ # Changelog -## 3.2.3 (...) -- Update eduvpn-common to commit 8f9a1ec5fb489af88c6e53f592bac3cccfb77f67 +## 3.3.0 (...) +- Update common Go library +- Implement support for ProxyGuard (WireGuard over TCP) +- Fix "Country Switcher" +- Improve error dialogs +- Do not crash on invalid WireGuard configuration files ## 3.2.2 (2024-02-05) - fix incorrect usage of seconds, should be ms diff --git a/app/build.gradle b/app/build.gradle index 9e320d51..ac039b18 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "nl.eduvpn.app" minSdkVersion 21 targetSdkVersion 34 - versionCode 26 - versionName "3.2.2" + versionCode 27 + versionName "3.3.0" ndkVersion "26.1.10909125" vectorDrawables.useSupportLibrary = true diff --git a/build_app_git.sh b/build_app_git.sh index 17e0fd6f..188872fc 100755 --- a/build_app_git.sh +++ b/build_app_git.sh @@ -8,7 +8,7 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks GIT_REPO=https://github.com/eduVPN/android -#GIT_TAG=3.2.2 +#GIT_TAG=3.3.0 GIT_TAG=master PROJECT_DIR=${HOME}/Projects diff --git a/build_app_tar.sh b/build_app_tar.sh index 0298a802..9a085a75 100755 --- a/build_app_tar.sh +++ b/build_app_tar.sh @@ -7,7 +7,7 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks -V=3.2.2 +V=3.3.0 DOWNLOAD_URL=https://codeberg.org/eduVPN/android/releases/download/${V}/eduvpn-android-${V}.tar.xz PROJECT_DIR=${HOME}/Projects diff --git a/create_release_tar.sh b/create_release_tar.sh index 84b486c9..8febcb99 100755 --- a/create_release_tar.sh +++ b/create_release_tar.sh @@ -1,7 +1,7 @@ #!/bin/sh GIT_REPO=https://codeberg.org/eduVPN/android -GIT_TAG=3.2.2 +GIT_TAG=3.3.0 #GIT_TAG=master ############################################################################### diff --git a/fastlane/metadata/android/en-US/changelogs/27.txt b/fastlane/metadata/android/en-US/changelogs/27.txt new file mode 100644 index 00000000..47f7fe67 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/27.txt @@ -0,0 +1,5 @@ +- Update common Go library +- Implement support for ProxyGuard (WireGuard over TCP) +- Fix "Country Switcher" +- Improve error dialogs +- Do not crash on invalid WireGuard configuration files From 8f5e7ceca120cb5add5148a8de2e55a14ec1211b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Wed, 19 Jun 2024 12:09:28 +0200 Subject: [PATCH 04/17] point to codeberg.org --- build_app_git.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_app_git.sh b/build_app_git.sh index 188872fc..24c95423 100755 --- a/build_app_git.sh +++ b/build_app_git.sh @@ -7,7 +7,7 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks -GIT_REPO=https://github.com/eduVPN/android +GIT_REPO=https://codeberg.org/eduVPN/android #GIT_TAG=3.3.0 GIT_TAG=master From dd6ac7be9d90f8cc5c22c3b0538191ed6b7cc5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Wed, 19 Jun 2024 12:14:00 +0200 Subject: [PATCH 05/17] update other reference to github.com --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7732ac2d..5e25b39d 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,9 @@ This is the eduVPN / Let's Connect! for Android application. You can clone this repository by executing the following command (provided you have git installed): - git clone --recurse-submodules https://github.com/eduvpn/android.git - -Or if your git version is below 2.13: - - git clone --recursive https://github.com/eduvpn/android.git +```bash +$ git clone --recurse-submodules https://codeberg.org/eduVPN/android +``` # Download the app From eca2b5d03694d21798544909d0336208d2e6eeb7 Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Thu, 27 Jun 2024 10:34:35 +0200 Subject: [PATCH 06/17] Common: Update to 2.0.2 --- CHANGES.md | 3 +++ common/libs/eduvpn-common | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index fa8fe2bb..318c6886 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,8 @@ # Changelog +## UNRELEASED (XXXX-XX-XX) +- Update eduvpn-common to release 2.0.2 + ## 3.2.2 (2024-02-05) - fix incorrect usage of seconds, should be ms ([GH#411](https://github.com/eduvpn/android/issues/411)) diff --git a/common/libs/eduvpn-common b/common/libs/eduvpn-common index e12a9820..4962d0e2 160000 --- a/common/libs/eduvpn-common +++ b/common/libs/eduvpn-common @@ -1 +1 @@ -Subproject commit e12a9820895b48de6d1b8408364fec45958bc6c5 +Subproject commit 4962d0e2d37e93af20c8afdae6f59d4656f272f3 From 525656fe67c9b6bb09ebe8ece0fd821fe8597d94 Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Thu, 27 Jun 2024 13:17:46 +0200 Subject: [PATCH 07/17] BackendService: Fix ProxyGuard source port not set to 0 The sourceport should only be set in the Linux client as that can re-use source ports. If we set the source port from common (this was not documented well by me), the Android client will not be able to reconnect. Let's set the source port to zero such that the OS can choose an available source port for reconnecting --- app/src/main/java/nl/eduvpn/app/service/BackendService.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/nl/eduvpn/app/service/BackendService.kt b/app/src/main/java/nl/eduvpn/app/service/BackendService.kt index 47e5c863..38f32b51 100644 --- a/app/src/main/java/nl/eduvpn/app/service/BackendService.kt +++ b/app/src/main/java/nl/eduvpn/app/service/BackendService.kt @@ -398,7 +398,7 @@ class BackendService( @Throws(CommonException::class) suspend fun startProxyguard(proxy: ProxySettings) = withContext(Dispatchers.IO) { - val result = goBackend.startProxyGuard(proxy.sourcePort, proxy.listen, proxy.peer) + val result = goBackend.startProxyGuard(0, proxy.listen, proxy.peer) if (!result.isNullOrEmpty()) { throw CommonException(result) } From 70f2180746df54d17b2082c23ad32c7ca73c7b5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1niel=20Zolnai?= Date: Wed, 10 Jul 2024 10:55:29 +0200 Subject: [PATCH 08/17] Fix TCP timeout in background when using Proxyguard --- .../main/java/nl/eduvpn/app/MainActivity.kt | 2 +- .../app/service/VPNConnectionService.kt | 4 +-- .../nl/eduvpn/app/service/WireGuardService.kt | 32 ++++++++++++++++--- .../nl/eduvpn/app/viewmodel/MainViewModel.kt | 2 ++ 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/nl/eduvpn/app/MainActivity.kt b/app/src/main/java/nl/eduvpn/app/MainActivity.kt index d6012db0..6da6ce27 100644 --- a/app/src/main/java/nl/eduvpn/app/MainActivity.kt +++ b/app/src/main/java/nl/eduvpn/app/MainActivity.kt @@ -327,7 +327,7 @@ class MainActivity : BaseActivity() { } } else if (requestCode == 0) { // Probably VPN permission granted. Can't really check for it - wireGuardService.tryResumeConnecting(this) + wireGuardService.tryResumeConnecting(this, viewModel.proxyGuardEnabled) } super.onActivityResult(requestCode, resultCode, data) } diff --git a/app/src/main/java/nl/eduvpn/app/service/VPNConnectionService.kt b/app/src/main/java/nl/eduvpn/app/service/VPNConnectionService.kt index e4361ccf..8b56ef4d 100644 --- a/app/src/main/java/nl/eduvpn/app/service/VPNConnectionService.kt +++ b/app/src/main/java/nl/eduvpn/app/service/VPNConnectionService.kt @@ -38,7 +38,7 @@ class VPNConnectionService( ) : Boolean { val config = pendingWireguardConfig?.config ?: return false scope.launch { - wireGuardService.connect(activity, config) + wireGuardService.connect(activity, config, proxyGuardEnabled = true) } return true } @@ -64,7 +64,7 @@ class VPNConnectionService( pendingWireguardConfig = vpnConfig } else { scope.launch { - wireGuardService.connect(activity, vpnConfig.config) + wireGuardService.connect(activity, vpnConfig.config, proxyGuardEnabled = false) } } wireGuardService diff --git a/app/src/main/java/nl/eduvpn/app/service/WireGuardService.kt b/app/src/main/java/nl/eduvpn/app/service/WireGuardService.kt index c42e3668..3908b045 100644 --- a/app/src/main/java/nl/eduvpn/app/service/WireGuardService.kt +++ b/app/src/main/java/nl/eduvpn/app/service/WireGuardService.kt @@ -8,6 +8,7 @@ import com.wireguard.android.backend.GoBackend import com.wireguard.android.backend.Tunnel import com.wireguard.config.Config import com.wireguard.config.Interface +import com.wireguard.config.Peer import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope @@ -116,16 +117,37 @@ class WireGuardService(private val context: Context, timer: Flow): VPNServ * @param activity The current activity, required for providing a context. * @param config The config to use for connecting. */ - suspend fun connect(activity: Activity, config: Config) { + suspend fun connect(activity: Activity, config: Config, proxyGuardEnabled: Boolean) { + var updatedConfig = config + if (proxyGuardEnabled) { + // Workaround for Proxyguard disconnecting with a TCP timeout when the app is in the background for a longer time + // Here we set peer.persistentKeepAlive to 25, which seems to solve the issue + updatedConfig = Config.Builder() + .setInterface(config.`interface`) + .addPeers( + config.peers.map { + val builder = Peer.Builder() + .setPublicKey(it.publicKey) + .setPersistentKeepalive(25) + it.endpoint.getOrNull()?.let { endpoint -> + builder.setEndpoint(endpoint) + } + it.preSharedKey.getOrNull()?.let { preSharedKey -> + builder.setPreSharedKey(preSharedKey) + } + builder.build() + } + ).build() + } withContext(backendDispatcher) { setConnectionStatus(VPNStatus.CONNECTING) _ipFlow.emit(getIPs(config.`interface`)) try { - backend.setState(tunnel, Tunnel.State.UP, config) + backend.setState(tunnel, Tunnel.State.UP, updatedConfig) } catch (ex: BackendException) { if (ex.reason == BackendException.Reason.VPN_NOT_AUTHORIZED) { withContext(Dispatchers.Main) { - pendingConfig = config + pendingConfig = updatedConfig authorizeVPN(activity) setConnectionStatus(VPNStatus.CONNECTING) } @@ -171,10 +193,10 @@ class WireGuardService(private val context: Context, timer: Flow): VPNServ return Protocol.WireGuard } - fun tryResumeConnecting(activity: Activity) { + fun tryResumeConnecting(activity: Activity, proxyGuardEnabled: Boolean) { GlobalScope.launch(backendDispatcher) { pendingConfig?.let { - connect(activity, it) + connect(activity, it, proxyGuardEnabled) } pendingConfig = null } diff --git a/app/src/main/java/nl/eduvpn/app/viewmodel/MainViewModel.kt b/app/src/main/java/nl/eduvpn/app/viewmodel/MainViewModel.kt index 8a77db73..8ecb4005 100644 --- a/app/src/main/java/nl/eduvpn/app/viewmodel/MainViewModel.kt +++ b/app/src/main/java/nl/eduvpn/app/viewmodel/MainViewModel.kt @@ -67,6 +67,8 @@ class MainViewModel @Inject constructor( private val _mainParentAction = MutableLiveData() val mainParentAction = _mainParentAction.toSingleEvent() + val proxyGuardEnabled: Boolean get() = preferencesService.getCurrentProtocol() == Protocol.WireGuardWithProxyGuard.nativeValue + init { backendService.register( startOAuth = { oAuthUrl -> From 03f953403acfaea32493164eba3c0e9eaa5aaaa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Mon, 12 Aug 2024 10:01:54 +0200 Subject: [PATCH 09/17] prepare for release --- CHANGES.md | 3 ++- fastlane/metadata/android/en-US/changelogs/27.txt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index cbd29ca9..7fd985e3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,11 +1,12 @@ # Changelog -## 3.3.0 (...) +## 3.3.0 (2024-08-12) - Update eduvpn-common to release 2.0.2 - Implement support for ProxyGuard (WireGuard over TCP) - Fix "Country Switcher" - Improve error dialogs - Do not crash on invalid WireGuard configuration files +- Update ics-openvpn (v0.7.5.1) ## 3.2.2 (2024-02-05) - fix incorrect usage of seconds, should be ms diff --git a/fastlane/metadata/android/en-US/changelogs/27.txt b/fastlane/metadata/android/en-US/changelogs/27.txt index 47f7fe67..1fb63e45 100644 --- a/fastlane/metadata/android/en-US/changelogs/27.txt +++ b/fastlane/metadata/android/en-US/changelogs/27.txt @@ -1,5 +1,6 @@ -- Update common Go library +- Update eduvpn-common to release 2.0.2 - Implement support for ProxyGuard (WireGuard over TCP) - Fix "Country Switcher" - Improve error dialogs - Do not crash on invalid WireGuard configuration files +- Update ics-openvpn (v0.7.5.1) From eed23acf19168355b8b7b1d08ad8e60a077d4630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Thu, 15 Aug 2024 13:20:40 +0200 Subject: [PATCH 10/17] also generate AAB next to APK Fixes: https://codeberg.org/eduVPN/android/issues/3 --- build_app_git.sh | 30 +++++++++++++++++++++++------- build_app_tar.sh | 29 ++++++++++++++++++++++------- 2 files changed, 45 insertions(+), 14 deletions(-) diff --git a/build_app_git.sh b/build_app_git.sh index 24c95423..686921b4 100755 --- a/build_app_git.sh +++ b/build_app_git.sh @@ -6,6 +6,7 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks +KEY_ALIAS=eduVPN GIT_REPO=https://codeberg.org/eduVPN/android #GIT_TAG=3.3.0 @@ -15,19 +16,25 @@ PROJECT_DIR=${HOME}/Projects APP_DIR=${PROJECT_DIR}/eduvpn-android-$(date +%Y%m%d%H%M%S) # eduVPN -GRADLE_TASK=app:assembleBasicRelease -UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/basic/release/app-basic-release-unsigned.apk +GRADLE_TASKS=app:assembleBasicRelease app:bundleBasicRelease +UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/basic/release/app-basic-release-unsigned.apk +UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/basicRelease/app-basic-release.aab SIGNED_APK=${PROJECT_DIR}/eduVPN-${GIT_TAG}.apk +SIGNED_AAB=${PROJECT_DIR}/eduVPN-${GIT_TAG}.aab # govVPN -#GRADLE_TASK=app:assembleGovRelease -#UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/gov/release/app-gov-release-unsigned.apk +#GRADLE_TASKS=app:assembleGovRelease app:bundleGovRelease +#UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/gov/release/app-gov-release-unsigned.apk +#UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/govRelease/app-gov-release.aab #SIGNED_APK=${PROJECT_DIR}/govVPN-${GIT_TAG}.apk +#SIGNED_AAB=${PROJECT_DIR}/govVPN-${GIT_TAG}.aab # Let's Connect! -#GRADLE_TASK=app:assembleHomeRelease -#UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/home/release/app-home-release-unsigned.apk +#GRADLE_TASKS=app:assembleHomeRelease app:bundleHomeRelease +#UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/home/release/app-home-release-unsigned.apk +#UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/homeRelease/app-home-release.aab #SIGNED_APK=${PROJECT_DIR}/LetsConnect-${GIT_TAG}.apk +#SIGNED_AAB=${PROJECT_DIR}/LetsConnect-${GIT_TAG}.aab ############################################################################### # CLONE @@ -48,7 +55,9 @@ SIGNED_APK=${PROJECT_DIR}/eduVPN-${GIT_TAG}.apk ( export ANDROID_HOME=${SDK_DIR} cd "${APP_DIR}" || exit - ./gradlew ${GRADLE_TASK} --warning-mode all --stacktrace || exit + for GRADLE_TASK in ${GRADLE_TASKS}; do + ./gradlew "${GRADLE_TASK}" --warning-mode all --stacktrace || exit + done ) ############################################################################### @@ -58,6 +67,13 @@ SIGNED_APK=${PROJECT_DIR}/eduVPN-${GIT_TAG}.apk ( # pick the newest build tools in case multiple versions are available BUILD_TOOLS_VERSION=$(ls ${SDK_DIR}/build-tools/ | sort -r | head -1) + + + # sign the APK ${SDK_DIR}/build-tools/${BUILD_TOOLS_VERSION}/apksigner sign --ks "${KEY_STORE}" "${UNSIGNED_APK}" || exit cp "${UNSIGNED_APK}" "${SIGNED_APK}" || exit + + # sign the AAB + jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore "${KEY_STORE}" "${UNSIGNED_AAB}" "${KEY_ALIAS}" || exit + cp "${UNSIGNED_AAB}" "${SIGNED_AAB}" || exit ) diff --git a/build_app_tar.sh b/build_app_tar.sh index 9a085a75..7607f034 100755 --- a/build_app_tar.sh +++ b/build_app_tar.sh @@ -6,6 +6,7 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks +KEY_ALIAS=eduVPN V=3.3.0 DOWNLOAD_URL=https://codeberg.org/eduVPN/android/releases/download/${V}/eduvpn-android-${V}.tar.xz @@ -14,19 +15,25 @@ PROJECT_DIR=${HOME}/Projects APP_DIR=${PROJECT_DIR}/eduvpn-android-${V} # eduVPN -GRADLE_TASK=app:assembleBasicRelease -UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/basic/release/app-basic-release-unsigned.apk +GRADLE_TASKS=app:assembleBasicRelease app:bundleBasicRelease +UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/basic/release/app-basic-release-unsigned.apk +UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/basicRelease/app-basic-release.aab SIGNED_APK=${PROJECT_DIR}/eduVPN-${V}.apk +SIGNED_AAB=${PROJECT_DIR}/eduVPN-${V}.aab # govVPN -#GRADLE_TASK=app:assembleGovRelease -#UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/gov/release/app-gov-release-unsigned.apk +#GRADLE_TASKS=app:assembleGovRelease app:bundleGovRelease +#UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/gov/release/app-gov-release-unsigned.apk +#UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/govRelease/app-gov-release.aab #SIGNED_APK=${PROJECT_DIR}/govVPN-${V}.apk +#SIGNED_AAB=${PROJECT_DIR}/govVPN-${V}.aab # Let's Connect! -#GRADLE_TASK=app:assembleHomeRelease -#UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/home/release/app-home-release-unsigned.apk +#GRADLE_TASKS=app:assembleHomeRelease app:bundleHomeRelease +#UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/home/release/app-home-release-unsigned.apk +#UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/homeRelease/app-home-release.aab #SIGNED_APK=${PROJECT_DIR}/LetsConnect-${V}.apk +#SIGNED_AAB=${PROJECT_DIR}/LetsConnect-${V}.aab ############################################################################### # CLONE @@ -47,7 +54,9 @@ SIGNED_APK=${PROJECT_DIR}/eduVPN-${V}.apk ( export ANDROID_HOME=${SDK_DIR} cd "${APP_DIR}" || exit - ./gradlew ${GRADLE_TASK} --warning-mode all --stacktrace || exit + for GRADLE_TASK in ${GRADLE_TASKS}; do + ./gradlew "${GRADLE_TASK}" --warning-mode all --stacktrace || exit + done ) ############################################################################### @@ -57,6 +66,12 @@ SIGNED_APK=${PROJECT_DIR}/eduVPN-${V}.apk ( # pick the newest build tools in case multiple versions are available BUILD_TOOLS_VERSION=$(ls ${SDK_DIR}/build-tools/ | sort -r | head -1) + + # sign the APK ${SDK_DIR}/build-tools/${BUILD_TOOLS_VERSION}/apksigner sign --ks "${KEY_STORE}" "${UNSIGNED_APK}" || exit cp "${UNSIGNED_APK}" "${SIGNED_APK}" || exit + + # sign the AAB + jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore "${KEY_STORE}" "${UNSIGNED_AAB}" "${KEY_ALIAS}" || exit + cp "${UNSIGNED_AAB}" "${SIGNED_AAB}" || exit ) From db9318d852956ebcb6e0e2bc11aa6ada94be015f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Thu, 15 Aug 2024 13:25:00 +0200 Subject: [PATCH 11/17] forgot quotes --- build_app_git.sh | 6 +++--- build_app_tar.sh | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build_app_git.sh b/build_app_git.sh index 686921b4..22b648fd 100755 --- a/build_app_git.sh +++ b/build_app_git.sh @@ -16,21 +16,21 @@ PROJECT_DIR=${HOME}/Projects APP_DIR=${PROJECT_DIR}/eduvpn-android-$(date +%Y%m%d%H%M%S) # eduVPN -GRADLE_TASKS=app:assembleBasicRelease app:bundleBasicRelease +GRADLE_TASKS="app:assembleBasicRelease app:bundleBasicRelease" UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/basic/release/app-basic-release-unsigned.apk UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/basicRelease/app-basic-release.aab SIGNED_APK=${PROJECT_DIR}/eduVPN-${GIT_TAG}.apk SIGNED_AAB=${PROJECT_DIR}/eduVPN-${GIT_TAG}.aab # govVPN -#GRADLE_TASKS=app:assembleGovRelease app:bundleGovRelease +#GRADLE_TASKS="app:assembleGovRelease app:bundleGovRelease" #UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/gov/release/app-gov-release-unsigned.apk #UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/govRelease/app-gov-release.aab #SIGNED_APK=${PROJECT_DIR}/govVPN-${GIT_TAG}.apk #SIGNED_AAB=${PROJECT_DIR}/govVPN-${GIT_TAG}.aab # Let's Connect! -#GRADLE_TASKS=app:assembleHomeRelease app:bundleHomeRelease +#GRADLE_TASKS="app:assembleHomeRelease app:bundleHomeRelease" #UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/home/release/app-home-release-unsigned.apk #UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/homeRelease/app-home-release.aab #SIGNED_APK=${PROJECT_DIR}/LetsConnect-${GIT_TAG}.apk diff --git a/build_app_tar.sh b/build_app_tar.sh index 7607f034..49c66af5 100755 --- a/build_app_tar.sh +++ b/build_app_tar.sh @@ -15,21 +15,21 @@ PROJECT_DIR=${HOME}/Projects APP_DIR=${PROJECT_DIR}/eduvpn-android-${V} # eduVPN -GRADLE_TASKS=app:assembleBasicRelease app:bundleBasicRelease +GRADLE_TASKS="app:assembleBasicRelease app:bundleBasicRelease" UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/basic/release/app-basic-release-unsigned.apk UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/basicRelease/app-basic-release.aab SIGNED_APK=${PROJECT_DIR}/eduVPN-${V}.apk SIGNED_AAB=${PROJECT_DIR}/eduVPN-${V}.aab # govVPN -#GRADLE_TASKS=app:assembleGovRelease app:bundleGovRelease +#GRADLE_TASKS="app:assembleGovRelease app:bundleGovRelease" #UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/gov/release/app-gov-release-unsigned.apk #UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/govRelease/app-gov-release.aab #SIGNED_APK=${PROJECT_DIR}/govVPN-${V}.apk #SIGNED_AAB=${PROJECT_DIR}/govVPN-${V}.aab # Let's Connect! -#GRADLE_TASKS=app:assembleHomeRelease app:bundleHomeRelease +#GRADLE_TASKS="app:assembleHomeRelease app:bundleHomeRelease" #UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/home/release/app-home-release-unsigned.apk #UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/homeRelease/app-home-release.aab #SIGNED_APK=${PROJECT_DIR}/LetsConnect-${V}.apk From 34cd6529deb56dc033be6015a8a4671818cc9a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Wed, 28 Aug 2024 16:05:45 +0200 Subject: [PATCH 12/17] prepare for release --- CHANGES.md | 11 +++++++++++ app/build.gradle | 4 ++-- build_app_git.sh | 2 +- build_app_tar.sh | 2 +- create_release_tar.sh | 2 +- fastlane/metadata/android/en-US/changelogs/28.txt | 7 +++++++ 6 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/28.txt diff --git a/CHANGES.md b/CHANGES.md index 7fd985e3..1058110b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,16 @@ # Changelog +## 3.3.1 (2024-08-28) +- Custom tabs will be always on, remove the option + ([#372](https://github.com/eduvpn/android/issues/372), + [#144](https://github.com/eduvpn/android/issues/144)) +- Move prefer TCP from a setting to a button +- Sort country selector by country name ([#381](https://github.com/eduvpn/android/issues/381)) +- Display WireGuard (TCP) if connected with ProxyGuard +- Fix connection state dialog staying on screen +- Fix missing server name +- Error handling for no connection case + ## 3.3.0 (2024-08-12) - Update eduvpn-common to release 2.0.2 - Implement support for ProxyGuard (WireGuard over TCP) diff --git a/app/build.gradle b/app/build.gradle index da16f725..d4b29c21 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "nl.eduvpn.app" minSdkVersion 21 targetSdkVersion 34 - versionCode 27 - versionName "3.3.0" + versionCode 28 + versionName "3.3.1" ndkVersion "26.1.10909125" vectorDrawables.useSupportLibrary = true diff --git a/build_app_git.sh b/build_app_git.sh index 22b648fd..89a322d7 100755 --- a/build_app_git.sh +++ b/build_app_git.sh @@ -9,7 +9,7 @@ KEY_STORE=${HOME}/android.jks KEY_ALIAS=eduVPN GIT_REPO=https://codeberg.org/eduVPN/android -#GIT_TAG=3.3.0 +#GIT_TAG=3.3.1 GIT_TAG=master PROJECT_DIR=${HOME}/Projects diff --git a/build_app_tar.sh b/build_app_tar.sh index 49c66af5..9a8d8b1a 100755 --- a/build_app_tar.sh +++ b/build_app_tar.sh @@ -8,7 +8,7 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks KEY_ALIAS=eduVPN -V=3.3.0 +V=3.3.1 DOWNLOAD_URL=https://codeberg.org/eduVPN/android/releases/download/${V}/eduvpn-android-${V}.tar.xz PROJECT_DIR=${HOME}/Projects diff --git a/create_release_tar.sh b/create_release_tar.sh index 8febcb99..4c56503b 100755 --- a/create_release_tar.sh +++ b/create_release_tar.sh @@ -1,7 +1,7 @@ #!/bin/sh GIT_REPO=https://codeberg.org/eduVPN/android -GIT_TAG=3.3.0 +GIT_TAG=3.3.1 #GIT_TAG=master ############################################################################### diff --git a/fastlane/metadata/android/en-US/changelogs/28.txt b/fastlane/metadata/android/en-US/changelogs/28.txt new file mode 100644 index 00000000..29d3a137 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/28.txt @@ -0,0 +1,7 @@ +- Custom tabs will be always on, remove the option +- Move prefer TCP from a setting to a button +- Sort country selector by country name +- Display WireGuard (TCP) if connected with ProxyGuard +- Fix connection state dialog staying on screen +- Fix missing server name +- Error handling for no connection case From 547f97dc6a7abd3a9d8614340e01206c3e2ed204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Fri, 30 Aug 2024 10:42:49 +0200 Subject: [PATCH 13/17] put KEY_ALIAS in app variant sections --- build_app_git.sh | 4 +++- build_app_tar.sh | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/build_app_git.sh b/build_app_git.sh index 89a322d7..f675f653 100755 --- a/build_app_git.sh +++ b/build_app_git.sh @@ -6,7 +6,6 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks -KEY_ALIAS=eduVPN GIT_REPO=https://codeberg.org/eduVPN/android #GIT_TAG=3.3.1 @@ -16,6 +15,7 @@ PROJECT_DIR=${HOME}/Projects APP_DIR=${PROJECT_DIR}/eduvpn-android-$(date +%Y%m%d%H%M%S) # eduVPN +KEY_ALIAS=eduVPN GRADLE_TASKS="app:assembleBasicRelease app:bundleBasicRelease" UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/basic/release/app-basic-release-unsigned.apk UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/basicRelease/app-basic-release.aab @@ -23,6 +23,7 @@ SIGNED_APK=${PROJECT_DIR}/eduVPN-${GIT_TAG}.apk SIGNED_AAB=${PROJECT_DIR}/eduVPN-${GIT_TAG}.aab # govVPN +#KEY_ALIAS=govVPN #GRADLE_TASKS="app:assembleGovRelease app:bundleGovRelease" #UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/gov/release/app-gov-release-unsigned.apk #UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/govRelease/app-gov-release.aab @@ -30,6 +31,7 @@ SIGNED_AAB=${PROJECT_DIR}/eduVPN-${GIT_TAG}.aab #SIGNED_AAB=${PROJECT_DIR}/govVPN-${GIT_TAG}.aab # Let's Connect! +#KEY_ALIAS=LC #GRADLE_TASKS="app:assembleHomeRelease app:bundleHomeRelease" #UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/home/release/app-home-release-unsigned.apk #UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/homeRelease/app-home-release.aab diff --git a/build_app_tar.sh b/build_app_tar.sh index 9a8d8b1a..8b86cafa 100755 --- a/build_app_tar.sh +++ b/build_app_tar.sh @@ -6,7 +6,6 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks -KEY_ALIAS=eduVPN V=3.3.1 DOWNLOAD_URL=https://codeberg.org/eduVPN/android/releases/download/${V}/eduvpn-android-${V}.tar.xz @@ -15,6 +14,7 @@ PROJECT_DIR=${HOME}/Projects APP_DIR=${PROJECT_DIR}/eduvpn-android-${V} # eduVPN +KEY_ALIAS=eduVPN GRADLE_TASKS="app:assembleBasicRelease app:bundleBasicRelease" UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/basic/release/app-basic-release-unsigned.apk UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/basicRelease/app-basic-release.aab @@ -22,6 +22,7 @@ SIGNED_APK=${PROJECT_DIR}/eduVPN-${V}.apk SIGNED_AAB=${PROJECT_DIR}/eduVPN-${V}.aab # govVPN +KEY_ALIAS=govVPN #GRADLE_TASKS="app:assembleGovRelease app:bundleGovRelease" #UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/gov/release/app-gov-release-unsigned.apk #UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/govRelease/app-gov-release.aab @@ -29,6 +30,7 @@ SIGNED_AAB=${PROJECT_DIR}/eduVPN-${V}.aab #SIGNED_AAB=${PROJECT_DIR}/govVPN-${V}.aab # Let's Connect! +#KEY_ALIAS=LC #GRADLE_TASKS="app:assembleHomeRelease app:bundleHomeRelease" #UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/home/release/app-home-release-unsigned.apk #UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/homeRelease/app-home-release.aab From f47f1a6d6df1f6b21b579565408928e10b03ac88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Fri, 30 Aug 2024 15:36:53 +0200 Subject: [PATCH 14/17] prepare for release --- CHANGES.md | 3 +++ app/build.gradle | 4 ++-- build_app_git.sh | 2 +- build_app_tar.sh | 2 +- create_release_tar.sh | 2 +- fastlane/metadata/android/en-US/changelogs/29.txt | 1 + 6 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/29.txt diff --git a/CHANGES.md b/CHANGES.md index 1058110b..5a83f206 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,8 @@ # Changelog +## 3.3.2 (2024-08-30) +- bump release for Google Play Store + ## 3.3.1 (2024-08-28) - Custom tabs will be always on, remove the option ([#372](https://github.com/eduvpn/android/issues/372), diff --git a/app/build.gradle b/app/build.gradle index d4b29c21..cd12d289 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "nl.eduvpn.app" minSdkVersion 21 targetSdkVersion 34 - versionCode 28 - versionName "3.3.1" + versionCode 29 + versionName "3.3.2" ndkVersion "26.1.10909125" vectorDrawables.useSupportLibrary = true diff --git a/build_app_git.sh b/build_app_git.sh index f675f653..16b3e0fe 100755 --- a/build_app_git.sh +++ b/build_app_git.sh @@ -8,7 +8,7 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks GIT_REPO=https://codeberg.org/eduVPN/android -#GIT_TAG=3.3.1 +#GIT_TAG=3.3.2 GIT_TAG=master PROJECT_DIR=${HOME}/Projects diff --git a/build_app_tar.sh b/build_app_tar.sh index 8b86cafa..b89efc4a 100755 --- a/build_app_tar.sh +++ b/build_app_tar.sh @@ -7,7 +7,7 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks -V=3.3.1 +V=3.3.2 DOWNLOAD_URL=https://codeberg.org/eduVPN/android/releases/download/${V}/eduvpn-android-${V}.tar.xz PROJECT_DIR=${HOME}/Projects diff --git a/create_release_tar.sh b/create_release_tar.sh index 4c56503b..933dbc9b 100755 --- a/create_release_tar.sh +++ b/create_release_tar.sh @@ -1,7 +1,7 @@ #!/bin/sh GIT_REPO=https://codeberg.org/eduVPN/android -GIT_TAG=3.3.1 +GIT_TAG=3.3.2 #GIT_TAG=master ############################################################################### diff --git a/fastlane/metadata/android/en-US/changelogs/29.txt b/fastlane/metadata/android/en-US/changelogs/29.txt new file mode 100644 index 00000000..ea911f3d --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/29.txt @@ -0,0 +1 @@ +- bump release for Google Play Store From c99112bacdd8a152e3dd565674d4aea108f5faf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Fri, 30 Aug 2024 15:43:16 +0200 Subject: [PATCH 15/17] add comment for KEY_ALIAS --- build_app_tar.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_app_tar.sh b/build_app_tar.sh index b89efc4a..a9f1a969 100755 --- a/build_app_tar.sh +++ b/build_app_tar.sh @@ -22,7 +22,7 @@ SIGNED_APK=${PROJECT_DIR}/eduVPN-${V}.apk SIGNED_AAB=${PROJECT_DIR}/eduVPN-${V}.aab # govVPN -KEY_ALIAS=govVPN +#KEY_ALIAS=govVPN #GRADLE_TASKS="app:assembleGovRelease app:bundleGovRelease" #UNSIGNED_APK=${APP_DIR}/app/build/outputs/apk/gov/release/app-gov-release-unsigned.apk #UNSIGNED_AAB=${APP_DIR}/app/build/outputs/bundle/govRelease/app-gov-release.aab From 042385e1ccceb8c75a5f98d6ea3a9d68cd5c857c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Fri, 4 Oct 2024 12:04:37 +0200 Subject: [PATCH 16/17] embed wireguard-android as a submodule --- .gitmodules | 5 ++++- app/build.gradle | 2 +- gradle.properties | 5 ++++- gradle/libs.versions.toml | 4 +--- settings.gradle | 7 ++++++- wireguard | 1 + 6 files changed, 17 insertions(+), 7 deletions(-) create mode 160000 wireguard diff --git a/.gitmodules b/.gitmodules index 051dd174..c09634ad 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,4 +3,7 @@ url = https://github.com/eduvpn/ics-openvpn [submodule "common/libs/eduvpn-common"] path = common/libs/eduvpn-common - url = https://github.com/eduvpn/eduvpn-common \ No newline at end of file + url = https://github.com/eduvpn/eduvpn-common +[submodule "wireguard"] + path = wireguard + url = https://codeberg.org/fkooman/wireguard-android diff --git a/app/build.gradle b/app/build.gradle index cd12d289..07617dcd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -166,7 +166,7 @@ dependencies { // eduVPN common library written in Go, stores all data and does the communication with the servers implementation project(path: ':common') // WireGuard VPN library - implementation(eduvpnVersions.wireguard) + implementation project(path: ':wireguard') // Please try to stay in sync with the versions used in the ics-openvpn module implementation(eduvpnVersions.android.appcompat) diff --git a/gradle.properties b/gradle.properties index fe661bf8..3404efb2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,4 +20,7 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -android.defaults.buildfeatures.buildconfig=true \ No newline at end of file +android.defaults.buildfeatures.buildconfig=true + +wireguardPackageName=com.wireguard +wireguardVersionName=1.0.20231018-eduvpn-fork \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9f1aa712..9f026910 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,4 @@ [versions] -wireguard = "1.0.20230706" # Please try to stay in sync with the versions used in the ics-openvpn module activity-ktx = "1.1.0" appcompat = "1.6.1" @@ -24,7 +23,6 @@ espresso = "3.5.1" uiautomator = "2.3.0" [libraries] -wireguard = { group = "com.wireguard.android", name = "tunnel", version.ref = "wireguard" } android-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } android-activity-ktx = { group = "androidx.activity", name = "activity-ktx", version.ref = "activity-ktx" } android-fragment-ktx = { group = "androidx.fragment", name = "fragment-ktx", version.ref = "fragment-ktx" } @@ -51,4 +49,4 @@ androidx-test-orchestrator = { group = "androidx.test", name = "orchestrator", v espresso = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso" } uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "uiautomator" } -[plugins] \ No newline at end of file +[plugins] diff --git a/settings.gradle b/settings.gradle index 2014c7d5..89e47f17 100644 --- a/settings.gradle +++ b/settings.gradle @@ -27,10 +27,15 @@ dependencyResolutionManagement { eduvpnVersions { from(files('gradle/libs.versions.toml')) } + wireguardVersions { + from(files('wireguard/gradle/libs.versions.toml')) + } } } include ':app' include ':ics-openvpn-main' project(':ics-openvpn-main').projectDir = new File(rootDir, '/ics-openvpn/main') -include ':common' \ No newline at end of file +include ':common' +include ':wireguard' +project(':wireguard').projectDir = new File(rootDir, '/wireguard/tunnel') diff --git a/wireguard b/wireguard new file mode 160000 index 00000000..2055ab96 --- /dev/null +++ b/wireguard @@ -0,0 +1 @@ +Subproject commit 2055ab9671aa6d8eeee0567f45449eb3237f8b8f From a18126af9edac407c094c6217044be1b314eae98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kooman?= Date: Fri, 4 Oct 2024 14:52:49 +0200 Subject: [PATCH 17/17] prepare for release --- CHANGES.md | 4 ++++ app/build.gradle | 4 ++-- build_app_git.sh | 2 +- build_app_tar.sh | 2 +- create_release_tar.sh | 2 +- fastlane/metadata/android/en-US/changelogs/30.txt | 2 ++ 6 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/30.txt diff --git a/CHANGES.md b/CHANGES.md index 5a83f206..5e4d6539 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,9 @@ # Changelog +## 3.3.3 (2024-10-04) +- embed WireGuard for Android +- fix crash when reconnecting + ## 3.3.2 (2024-08-30) - bump release for Google Play Store diff --git a/app/build.gradle b/app/build.gradle index 07617dcd..cf1d557b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "nl.eduvpn.app" minSdkVersion 21 targetSdkVersion 34 - versionCode 29 - versionName "3.3.2" + versionCode 30 + versionName "3.3.3" ndkVersion "26.1.10909125" vectorDrawables.useSupportLibrary = true diff --git a/build_app_git.sh b/build_app_git.sh index 16b3e0fe..d315efea 100755 --- a/build_app_git.sh +++ b/build_app_git.sh @@ -8,7 +8,7 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks GIT_REPO=https://codeberg.org/eduVPN/android -#GIT_TAG=3.3.2 +#GIT_TAG=3.3.3 GIT_TAG=master PROJECT_DIR=${HOME}/Projects diff --git a/build_app_tar.sh b/build_app_tar.sh index a9f1a969..de42a04c 100755 --- a/build_app_tar.sh +++ b/build_app_tar.sh @@ -7,7 +7,7 @@ SDK_DIR=${HOME}/android-sdk KEY_STORE=${HOME}/android.jks -V=3.3.2 +V=3.3.3 DOWNLOAD_URL=https://codeberg.org/eduVPN/android/releases/download/${V}/eduvpn-android-${V}.tar.xz PROJECT_DIR=${HOME}/Projects diff --git a/create_release_tar.sh b/create_release_tar.sh index 933dbc9b..c7badd92 100755 --- a/create_release_tar.sh +++ b/create_release_tar.sh @@ -1,7 +1,7 @@ #!/bin/sh GIT_REPO=https://codeberg.org/eduVPN/android -GIT_TAG=3.3.2 +GIT_TAG=3.3.3 #GIT_TAG=master ############################################################################### diff --git a/fastlane/metadata/android/en-US/changelogs/30.txt b/fastlane/metadata/android/en-US/changelogs/30.txt new file mode 100644 index 00000000..76294932 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/30.txt @@ -0,0 +1,2 @@ +- embed WireGuard for Android +- fix crash when reconnecting