Skip to content

zaneschepke/wireguard-android

 
 

Repository files navigation

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.

Building

$ git clone --recurse-submodules https://github.com/zaneschepke/wireguard-android.git
$ cd wireguard-android
$ ./gradlew assembleRelease

macOS users may need flock(1).

Embedding

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

implementation 'com.wireguard.android:tunnel:$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 "com.android.tools:desugar_jdk_libs:2.0.3"
}

Publishing

  1. Update tunnel's build.gradle.kts to the publishing repository with credentials.
  2. Install gpg
brew install gpg
git config --global gpg.program $(which gpg)
  1. Create gpg key
gpg --full-generate-key2
  1. Add key information to ~/.gradle/gradle.properties
signing.gnupg.keyName=name
signing.gnupg.passphrase=********
signing.gnupg.executable=gpg
signing.secretKeyRingFile=/path/to/.gnupg/secring.gpg
  1. Add username and token for repository to local.properties
GITHUB_USER=zaneschepke
GITHUB_TOKEN=***
  1. Send key to public key server
gpg --send-key <keyId>
  1. Run publish
./gradlew publish

Translating

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

About

My fork of WireGuard's Android library. Official repository is at https://git.zx2c4.com/wireguard-android

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • C 32.4%
  • Kotlin 27.7%
  • Java 24.2%
  • Shell 7.0%
  • Roff 2.0%
  • C++ 1.8%
  • Other 4.9%