You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jason A. Donenfeld 11301617d2 tunnel: update to go 1.16 and newer api 2 weeks ago
.idea idea: import new import sorting rules 6 months ago
gradle/wrapper gradle: fix the distribution checksum 3 weeks ago
tunnel tunnel: update to go 1.16 and newer api 2 weeks ago
ui build: upgrade to ZXING 4.1.0 2 weeks ago
.gitignore gitignore: add gradlew.bat 9 months ago
.gitmodules Migrate tunnel related classes to tunnel/ Gradle module 1 year ago
COPYING global: move to Apache 2.0 3 years ago README: move tunnel to maven central 3 weeks ago
build.gradle build: upgrade to ZXING 4.1.0 2 weeks ago build: update AndroidX activity/fragments and resolve compile failure 5 months ago
gradlew build: uprev to Gradle 6.6 7 months ago
settings.gradle Rename app module to ui 1 year ago build: add crowdin syncer script and use it 5 months ago
version.gradle version: bump 3 weeks 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_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    coreLibraryDesugaringEnabled = true
dependencies {
    coreLibraryDesugaring ""


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