• Stars
    star
    812
  • Rank 53,850 (Top 2 %)
  • Language
    Kotlin
  • License
    BSD 3-Clause "New...
  • Created about 4 years ago
  • Updated 20 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tailscale Android Client

Tailscale Android Client

https://tailscale.com

Private WireGuardยฎ networks made easy

Overview

This repository contains the open source Tailscale Android client.

Using

Get it on F-Droid Get it on Google Play

Building

Go, the Android SDK, the Android NDK are required.

$ make tailscale-debug.apk
$ adb install -r tailscale-debug.apk

The dockershell target builds a container with the necessary dependencies and runs a shell inside it.

$ make dockershell
# make tailscale-debug.apk

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

Use 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

Google Sign-In support relies on configuring a Google API Console project with the app identifier and signing key hashes. The official release uses the app identifier com.tailscale.ipn; 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

Building on macOS

To build from the CLI on macOS:

  1. Install Android Studio (when asked which SDKs to install, choose 31 or the current value of targetSdkVersion in build.gradle)
  2. In Android Studio's home screen: "More Actions" > "SDK Manager", install NDK.
  3. You can now close Android Studio, unless you want it to create virtual devices ("More Actions" > "Virtual Device Manager").
  4. Then, from CLI:
  5. export JAVA_HOME='/Applications/Android Studio.app/Contents/jbr/Contents/Home'
  6. export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
  7. export PATH=$ANDROID_SDK_ROOT/platform-tools:$PATH (to allow adb and the like to work)
  8. make tailscale-fdroid.apk, etc

Bugs

Please file any issues about this code or the hosted service on the tailscale issue tracker.

Contributing

under_construction.gif

PRs welcome, but we are still working out our contribution process and tooling.

We require Developer Certificate of Origin Signed-off-by lines in commits.

About Us

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.

More Repositories

1

tailscale

The easiest, most secure way to use WireGuard and 2FA.
Go
16,304
star
2

golink

A private shortlink service for tailnets
Go
1,120
star
3

tailscale-synology

Synology packages for tailscale.com
833
star
4

hujson

HuJSON: JSON for Humans (JWCC: JSON w/ comments and trailing commas)
Go
561
star
5

github-action

A GitHub Action to connect your workflow to your Tailscale network.
472
star
6

tailscale-qpkg

Package Tailscale client in QPKG
Shell
439
star
7

depaware

depaware makes you aware of your Go dependencies
Go
427
star
8

caddy-tailscale

A highly experimental exploration of integrating Tailscale and Caddy.
Go
238
star
9

terraform-provider-tailscale

Terraform provider for Tailscale
Go
236
star
10

security-policies

Security policies for Tailscale
234
star
11

sqlite

work in progress
Go
184
star
12

libtailscale

Tailscale C library
Go
153
star
13

pam

An experimental, work-in-progress PAM module for Tailscale
Rust
139
star
14

tailetc

total-memory-cache etcd v3 client
Go
135
star
15

ToBeReviewedBot

GitHub App to watch for PRs merged without a reviewer approving.
Go
111
star
16

cpc

a copy tool
Go
98
star
17

go-mod-archiver

go.mod git archiver
Go
88
star
18

wf

Package for controlling the Windows firewall (aka Windows Filtering Platform, WFP)
Go
75
star
19

gitops-acl-action

GitOps for your Tailscale ACLs
70
star
20

setec

Go
70
star
21

codespace

Experimenting with codespaces
Shell
68
star
22

mkctr

mkctr: cross platform container builder for go
Go
59
star
23

docker-extension

Docker Desktop extension adding Tailscale networking.
TypeScript
58
star
24

wireguard-go

Tailscale's temporary fork of https://git.zx2c4.com/wireguard-go
Go
50
star
25

tailscale-client-go

A client implementation for the Tailscale HTTP API
Go
49
star
26

tailsql

A SQL playground service over Tailscale.
Go
43
star
27

art

implementation of the Allotment Routing Table (ART) algorithm by Donald Knuth, as described in the paper by Yoichi Hariguchi
Go
41
star
28

tmemes

A meme generator for your tailnet!
Go
32
star
29

scertec

ACME client daemon that puts fresh HTTPS certs in setec, and client to get them out of at serving time
Go
29
star
30

squibble

A lightweight schema manager for SQLite databases.
Go
24
star
31

tscert

Minimal package for just the HTTPS cert fetching part of the Tailscale client API
Go
19
star
32

tailscale-chocolatey

Chocolatey packaging for Tailscale IPN
PowerShell
16
star
33

gitpod

Investigation into gitpod.io
Shell
11
star
34

tailscale-aws-host-acl-updater

Update Hosts list in Tailscale ACL file as AWS resources move about.
Go
11
star
35

wintun

Fork of https://git.zx2c4.com/wintun
C
10
star
36

peercred

Go
9
star
37

terms-and-conditions

Terms and conditions for Tailscale
9
star
38

winipcfg-go

old fork of https://git.zx2c4.com/winipcfg-go, from before it moved to the wireguard-windows repo; no longer used by Tailscale
Go
6
star
39

ts-webhook-adapter

Adapter for Tailscale Webhooks for Microsoft Teams and Discord.
Go
6
star
40

go-mod-tidy-broken

demo showing a go mod tidy bug
Go
4
star
41

tb

Go
4
star
42

issue-status

Tailscale's status page
JavaScript
2
star
43

bradtest

Brad's GitHub automation test repo
Go
2
star
44

web-client-prebuilt

Prebuilt assets for the Tailscale web client
HTML
2
star
45

opentelemetry-proto-go

Tailscale fork of OpenTelemetry protobuf for use with the Tailscale OpenTelemetry fork
Makefile
1
star
46

quis-custodiet

quis custodiet ipsos custodes: a service to check whether someone is assigned to oncall on each calendar at squadcast.com.
Go
1
star
47

mockoidc

[fork] See the impersonation branch
Go
1
star
48

active-directory-sites-subnets

Populate Active Directory Sites & Subnets table for Tailscale clients
Go
1
star