This is a quick fix, we should come back and try to reorganize this later. Updates tailscale/tailscale#9374
|7 days ago|
|.github||2 months ago|
|android||2 months ago|
|cmd/tailscale||7 days ago|
|jni||2 years ago|
|metadata/en-US||3 years ago|
|version||2 months ago|
|.gitignore||2 months ago|
|Dockerfile||4 weeks ago|
|LICENSE||3 years ago|
|Makefile||2 weeks ago|
|PATENTS||3 years ago|
|README.md||2 months ago|
|flake.lock||2 years ago|
|flake.nix||2 years ago|
|go.mod||1 week ago|
|go.sum||1 week ago|
Tailscale Android Client
Private WireGuard® networks made easy
This repository contains the open source Tailscale Android client.
Preparing a build environment
There are several options for setting up a build environment. The Android Studio path is the most useful path for longer term development.
In all cases you will need:
- Go runtime
- Android SDK
- Android SDK components (
make androidsdkwill install them)
- Install a Go runtime (https://go.dev/dl/).
- Install Android Studio (https://developer.android.com/studio).
- Start Android Studio, from the Welcome screen select "More Actions" and "SDK Manager".
- In the SDK manager, select the "SDK Tools" tab and install the "Android SDK Command-line Tools (latest)".
make androidsdkto install the necessary SDK components.
If you would prefer to avoid Android Studio, you can also install an Android
SDK. The makefile detects common paths, so
sudo apt install android-sdk is
sufficient on Debian / Ubuntu systems. To use an Android SDK installed in a
non-standard location, set the
ANDROID_SDK_ROOT environment variable to the
path to the SDK.
If you installed Android Studio the tools may not be in your path. To get the
correct tool path, run
make androidpath and export the provided path in your
If you wish to avoid installing software on your host system, a Docker based development strategy is available, you can build and start a shell with:
If you have Nix 2.4 or later installed, a Nix development environment can be set up with:
alias nix='nix --extra-experimental-features "nix-command flakes"' nix develop
make apk make install
Building a release
make tag_release to bump the Android version code, update the version
name, and tag the current commit.
We only guarantee to support the latest Go release and any Go beta or release candidate builds (currently Go 1.14) in module mode. It might work in earlier Go versions or in GOPATH mode, but we're making no effort to keep those working.
Google Sign-In support relies on configuring a Google API Console
with the app identifier and signing key
The official release uses the app identifier
custom builds should use a different identifier.
Running in the Android emulator
By default, the android emulator uses an older version of OpenGL ES, which results in a black screen when opening the Tailscale app. To fix this, with the emulator running:
- Open the three-dots menu to access emulator settings
- To to
Settings > Advanced
- Set "OpenGL ES API level" to "Renderer maximum (up to OpenGL ES 3.1)"
- Close the emulator.
- In Android Studio's emulator view (that lists all your emulated devices), hit the down arrow by the virtual device and select "Cold boot now" to restart the emulator from scratch.
The Tailscale app should now render correctly.
Additionally, there seems to be a bug that prevents using the system-level Google sign-in option (the one that pops up a system-level UI to select your Google account). You can work around this by selecting "Other" at the sign-in screen, and then selecting Google from the next screen.
Developing on a Fire Stick TV
On the Fire Stick:
- Settings > My Fire TV > Developer Options > ADB Debugging > ON
Then some useful commands:
adb connect 10.2.200.213:5555 adb install -r tailscale-fdroid.apk adb shell am start -n com.tailscale.ipn/com.tailscale.ipn.IPNActivity adb shell pm uninstall com.tailscale.ipn
Please file any issues about this code or the hosted service on the tailscale issue tracker.
PRs welcome, but we are still working out our contribution process and tooling.
We require Developer Certificate of
Signed-off-by lines in commits.
We are apenwarr, bradfitz, crawshaw, danderson, dfcarney, from Tailscale Inc. You can learn more about us from our website.
WireGuard is a registered trademark of Jason A. Donenfeld.