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.
139 lines
4.4 KiB
Markdown
139 lines
4.4 KiB
Markdown
# Tailscale Android Client
|
|
|
|
https://tailscale.com
|
|
|
|
Private WireGuard® networks made easy
|
|
|
|
## Overview
|
|
|
|
This repository contains the open source Tailscale Android client.
|
|
|
|
## Using
|
|
|
|
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png"
|
|
alt="Get it on Google Play"
|
|
height="80">](https://play.google.com/store/apps/details?id=com.tailscale.ipn)
|
|
|
|
Help us test new features and bug-fixes before they ship to all users! A [beta testing track](https://play.google.com/apps/testing/com.tailscale.ipn) is available on the Play Store.
|
|
|
|
#### Amazon Appstore
|
|
|
|
The app can be downloaded from the [Amazon Appstore](https://www.amazon.com/dp/B0D38TRB3N) for Amazon Fire tablets and Fire TV devices.
|
|
|
|
#### F-Droid
|
|
|
|
The [F-Droid](https://f-droid.org/packages/com.tailscale.ipn/) project builds the source code in this repository and maintains independently-built APKs. Note that F-Droid builds are not released, updated, or verified by the Tailscale team.
|
|
|
|
## 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 androidsdk` will install them)
|
|
|
|
### Android Studio
|
|
|
|
1. Install a Go runtime (https://go.dev/dl/).
|
|
2. Install Android Studio (https://developer.android.com/studio).
|
|
3. Start Android Studio, from the Welcome screen select "More Actions" and "SDK Manager".
|
|
4. In the SDK manager, select the "SDK Tools" tab and install the "Android SDK Command-line Tools (latest)".
|
|
3. Run `make androidsdk` to 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
|
|
shell.
|
|
|
|
#### Code Formatting
|
|
|
|
The ktmft plugin on the default setting should be used to autoformat all Java, Kotlin
|
|
and XML files in Android Studio. Enable "Format on Save".
|
|
|
|
### Docker
|
|
|
|
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:
|
|
|
|
```sh
|
|
make dockershell
|
|
```
|
|
|
|
Several other makefile recipes are available for setting up the proper build environment and running builds.
|
|
|
|
Note that the docker makefile recipes s will preserve the image and remove container on completion.
|
|
If changes are made to the build environment or toolchain, cached docker images may need to be rebuilt.
|
|
The docker build image name is parameterized in the makefile and changing it provides a simple means to do this.
|
|
|
|
### Nix
|
|
|
|
If you have Nix 2.4 or later installed, a Nix development environment can
|
|
be set up with:
|
|
|
|
```sh
|
|
alias nix='nix --extra-experimental-features "nix-command flakes"'
|
|
nix develop
|
|
```
|
|
|
|
## Building
|
|
|
|
```sh
|
|
make apk
|
|
make install
|
|
```
|
|
|
|
## Building a release
|
|
|
|
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.
|
|
|
|
## 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.MainActivity
|
|
adb shell pm uninstall com.tailscale.ipn
|
|
```
|
|
|
|
## Bugs
|
|
|
|
Please file any issues about this code or the hosted service on
|
|
[the tailscale issue tracker](https://github.com/tailscale/tailscale/issues).
|
|
|
|
## Contributing
|
|
|
|
`under_construction.gif`
|
|
|
|
PRs welcome, but we are still working out our contribution process and
|
|
tooling.
|
|
|
|
We require [Developer Certificate of
|
|
Origin](https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin)
|
|
`Signed-off-by` lines in commits.
|
|
|
|
## About Us
|
|
|
|
We are [Tailscale](https://tailscale.com). See
|
|
https://tailscale.com/company for more about us and what we're
|
|
building.
|
|
|
|
WireGuard is a registered trademark of Jason A. Donenfeld.
|