You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Jason A. Donenfeld e9243c403a version: bump
Signed-off-by: Jason A. Donenfeld <>
3 days ago
.idea ui: reformat all code 3 weeks ago
gradle gradle: bump to core-ktx 1.10.1 3 days ago
tunnel ui: reformat all code 3 weeks ago
ui strings: sync with crowdin 3 days ago
.gitignore build: remove bespoke signing config properties 2 months ago
.gitmodules tools: clean unwanted ELF flags from binaries 2 months ago
COPYING global: move to Apache 2.0 5 years ago README: account for java version updates 4 weeks ago
build.gradle.kts gradle: convert build files to Kotlin 4 weeks ago version: bump 3 days ago
gradlew gradle: update wrapper to 8.1.1 1 month ago
settings.gradle.kts gradle: convert build files to Kotlin 4 weeks ago build: add crowdin syncer script and use it 3 years ago

Android GUI for WireGuard

Download from the Play Store

This is an Android GUI for WireGuard. It opportunistically uses the kernel implementation, and falls back to using the non-root userspace implementation.


$ git clone --recurse-submodules
$ cd wireguard-android
$ ./gradlew assembleRelease

macOS users may need flock(1).


The tunnel library is on Maven Central, alongside extensive class library documentation.

implementation '$wireguardTunnelVersion'

The library makes use of Java 8 features, so be sure to support those in your gradle configuration with desugaring:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_17
    targetCompatibility JavaVersion.VERSION_17
    coreLibraryDesugaringEnabled = true
dependencies {
    coreLibraryDesugaring ""


Please help us translate the app into several languages on our translation platform.