1
0
Fork
You've already forked android
0
forked from eduVPN/android
eduVPN for Android
  • Kotlin 84.8%
  • Java 7.9%
  • C++ 3.7%
  • Shell 2.6%
  • CMake 1%
Find a file
2026年04月23日 10:09:21 +02:00
.github/workflows Update UI tests 2024年04月19日 13:24:26 +02:00
aboutLibrariesConfig/libraries Add missing go library licenses and show authors on license page 2026年04月14日 12:07:52 +02:00
app Add exportLibraryDefinitions as a task dependency for release builds 2026年04月22日 20:54:22 +02:00
common Update common, more robust cache handling 2025年10月10日 15:02:14 +02:00
fastlane/metadata/android/en-US prepare for release 2026年01月08日 15:48:58 +01:00
gradle Move compose compiler version ref from ics-openvpn to main project 2026年04月14日 12:19:57 +02:00
ics-openvpn @43d40a9769 Update ics-openvpn to v0.7.62 2025年11月06日 11:47:03 +01:00
wireguard @2e85bbe618 Update ics-openvpn to v0.7.62 2025年11月06日 11:47:03 +01:00
.gitignore replace licenses html with new json 2026年04月14日 12:33:09 +02:00
.gitmodules update URL for eduvpn-common submodule 2024年11月20日 18:21:13 +01:00
build.gradle.kts Move compose compiler version ref from ics-openvpn to main project 2026年04月14日 12:19:57 +02:00
build_app_git.sh prepare for release 2026年01月08日 15:48:58 +01:00
build_app_tar.sh prepare for release 2026年01月08日 15:48:58 +01:00
builder_setup.sh update SDK_VERSION and BUILD_TOOLS_VERSION 2025年09月22日 19:57:20 +02:00
CHANGES.md prepare for release 2026年01月08日 15:48:58 +01:00
COPYING Add GPLv3 copyright notices 2016年10月26日 17:26:58 +02:00
create_release_tar.sh prepare for release 2026年01月08日 15:48:58 +01:00
gradle.properties embed wireguard-android as a submodule 2024年10月04日 12:04:37 +02:00
gradlew Upgrade ics-openvpn to v0.7.34 2022年04月22日 17:03:35 +02:00
gradlew.bat Upgrade ics-openvpn to v0.7.34 2022年04月22日 17:03:35 +02:00
NEW_RELEASE.md prepare for release 2024年02月06日 17:58:55 +01:00
README.md improve even more 2025年06月04日 15:56:01 +02:00
settings.gradle embed wireguard-android as a submodule 2024年10月04日 12:04:37 +02:00

Introduction

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://codeberg.org/eduVPN/android

Download the app

Stores

Get it on F-Droid Get it on Google Play

APKs

Running with Android Studio

First install the swig and go packages with your operating system package manager.

Make sure you have the latest stable version of Android Studio installed, you can download it from here. Open the project by opening the build.gradle in the root of this repository with Android Studio. Make sure that you have the following packages installed in the SDK Manager (Tools -> SDK Manager):

  • SDK Platforms - Android 15
  • SDK Tools - Android SDK Build Tools
  • SDK Tools - LLDB
  • SDK Tools - CMake
  • SDK Tools - Android SDK Platform-Tools
  • SDK Tools - Android SDK Tools
  • SDK Tools - NDK - 28.0.13004108 version (a later version might work, but is untested)

To find a specific version of a package (for the NDK), check the option 'Show Package Details' in the bottom-lower corner of the SDK Manager.

The app should now build when selecting Run -> Run 'app', or clicking the green play button next to the device selector.

Building

NOTE: building Android applications takes a lot of resources. The VM used to build the Let's Connect! application has 6GB of memory and 50G disk. Anything lower was not tested, but 1GB of memory definitely does not work.

The builder will spew a lot of backtraces/warnings, but does seem to complete eventually.

Dependencies

Fedora

$ sudo dnf -y install \
 unzip \
 tar \
 git \
 swig \
 go \
 java \
 java-devel \
 ncurses-compat-libs \
 ninja-build \
 cmake \
 pv \
 gcc-c++ \
 minisign

Debian >= 12

These instructions were last used on 2025年06月02日 with Debian 12.

$ sudo apt -y install \
 git \
 build-essential \
 golang-go \
 default-jdk \
 cmake \
 swig \
 unzip \
 minisign \
 curl

In addition, you MUST install an up to date Go release. The Debian backports of the Go compiler MAY not be sufficient. You can use these instructions to install the Go compiler that is also used for building the eduVPN server packages:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/go+repo@tuxed.net.gpg] https://repo.tuxed.net/golang/v1/deb $(lsb_release -c -s) main" | sudo tee /etc/apt/sources.list.d/golang_v1.list >/dev/null
wget -O- https://repo.tuxed.net/golang/v1/deb/go+repo@tuxed.net.gpg | sudo tee /usr/share/keyrings/go+repo@tuxed.net.gpg >/dev/null
sudo apt update
sudo apt -y dist-upgrade
sudo apt autoremove

See this post for more details.

Key Store

Generate a key store for signing the Android application:

$ keytool \
 -genkey \
 -keystore ${HOME}/android.jks \
 -keyalg RSA \
 -keysize 4096 \
 -sigalg SHA256withRSA \
 -dname "CN=eduVPN for Android" \
 -validity 10000 \
 -alias eduVPN

Additional documentation here.

Setup

$ ./builder_setup.sh

Build

Git

To build the app from git, i.e. tag, branch or commit, use the following after modifying the file if necessary. Use this if you want to build a test or development release.

$ ./build_app_git.sh

You'll find the signed output APK in ${HOME}/Projects.

Tar

To build the app from tar, i.e. the archive that contains the full source code including all submodules, use the following after modifying the file if necessary. Use this if you want to use an official release.

$ ./build_app_tar.sh

You'll find the signed output APK in ${HOME}/Projects.

Testing

To run all tests, execute the following command:

$ ./gradlew :app:connectedBasicDebugAndroidTest