Commit Graph

473 Commits (angott/magicdns-privatedns-warn)

Author SHA1 Message Date
Jonathan Nobels 4df18951a6
android/ui: fix time formatting strings and main view states (#204)
* android: fix time display localizations and show magic dns name

Updates tailscale/corp#18202

Localizations and some simplifications of the "in x time" conversion strings for node expiry.

We'll also now render the magicDNS name in the list of addresses.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

* android: move the composablestringformatter to it's own file

Updates tailscale/corp#18202

This class deserves it's own file and some documentation

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

* android: show selfNode as connected only when it is connected

Updates tailscale/corp#18202

The selfNode connected state is now properly shown in the nodes list now that we're showing the nodes even when you're not connected to your tailnet.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

---------

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
9 months ago
Jonathan Nobels 2c694b7159 android: optimize peer search
Updates tailscale/corp#18202

Switch to LazyColumn so we're not redrawing the entire list.

Modify the search logic so we're searching progressively and doing all of the sorting and categorization up front on netmap changes.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
9 months ago
Andrea Gottardo 7c64091aab
ui: add ManagedByView, hide MDMSettingsView on non-debug builds (#201)
Updates tailscale/corp#18202

- Adds the "Managed by OrganizationName" view we currently offer on iOS.
- Hides the MDM settings debug pane on non-debug builds.
- Refactored SettingsViewModel to take an `IpnManager` instead of an `IpnModel` (@barnstar, let me know whether this makes sense given your future plans)

Signed-off-by: Andrea Gottardo <andrea@gottardo.me>
9 months ago
Jonathan Nobels 16ec19757d
android: adds support for user avatars and some general cleanup (#202)
* android: show user avatars and styling fixes

Updates tailscale/corp#18202
fixes ENG-2852

Load and show the user avatar in the right places.  There's a universal Avatar composable for this that should work everywhere we need it.  This  uses the coil-compose lib which seems to be standard practice and will handle caching for us.

Restyles a few headers to match the about screen and corrects some layout issues with the height of columns.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

* android: add localizations and view model cleanup to match IPNManager

Updates tailscale/corp#18202

Simplifies the view models a bit for readability and localizes a few things that weren't previously localized

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

* android: fix peer categorization

Updates tailscale/corp#18202

Fixes a null predicate issue for searching and removes the self nodes if there are no matches.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

* android: rename avatar loader to avatar and add header

Updates tailscale/corp#18202

Rename the AvatarLoader class to Avatar and move it to views.  Add the proper headers.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

---------

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Co-authored-by: Andrea Gottardo <andrea@tailscale.com>
9 months ago
Jonathan Nobels f275656c25
ui: add view to debug MDM settings and add the syspolicy handlers (#199)
* mdm: add Android syspolicy handler (#195)

Updates tailscale/corp#18202

Adds a syspolicy handler for Android in cmd/tailscale. This allows the Go code to use the syspolicy package to read values set by a system administrator using the Android RestrictionsManager.

Out of the box, this adds supports for a number of MDM policies that are fully integrated on the Go side, such as `ExitNodeID` (forced exit node functionality).

Signed-off-by: Andrea Gottardo <andrea@gottardo.me>
Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

* ui: add view to debug MDM settings

Adds a view to see the currently set MDM settings, we're going to need this to debug actual MDM integrations more effectively.

Signed-off-by: Andrea Gottardo <andrea@gottardo.me>
Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

---------

Signed-off-by: Andrea Gottardo <andrea@gottardo.me>
Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Co-authored-by: Andrea Gottardo <andrea@gottardo.me>
9 months ago
Jonathan Nobels 1f457399b8
android: code review feedback and stylistic improvements (#200)
Updates tailscale/corp#18202

Review feedback and stylistic improvements.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Co-authored-by: Andrea Gottardo <andrea@tailscale.com>
9 months ago
Jonathan Nobels 94a4f55eb2
android: implement the bug reporting and about screen and localize (#198)
updates tailscale/corp#18202
fixes ENG-2876

Adds the bug reporting view.  Functional, but not properly styled.

Moves the various link URLs to a constants file and corrects link-opening in both but reporting and the settings screen.

Adds an AboutView with app icon and same content as the iOS version.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Co-authored-by: Andrea Gottardo <andrea@tailscale.com>
9 months ago
Jonathan Nobels 0d867aedce
mdm: implement initial data structure to read from Android RestrictionsManager (#197)
updates tailscale/corp#18202
updates ENG-2849

Implements the basic data model for supporting MDM to allow us to add the hooks in the UI.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Co-authored-by: Andrea Gottardo <andrea@gottardo.me>
9 months ago
Jonathan Nobels bf0e56469f
android: Add settings screen (#196)
updates tailscale/corp#18202
updates ENG-2854

Adds a basic settings screen.  This isn't correctly localized, but that's on the way.

Adds the required hooks to edit prefs via localAPI.

Adds basic but incomplete login/logout flow.

Fixes the sorting of nodes on the main screen and fixes the proper display of your current node details.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
9 months ago
Jonathan Nobels 3926cf4b56
android: add main screen device details and basic nav (#191)
updates tailscale/corp#18202
updates ENG-2835
updates ENG-2859

Adds the peer details view and some supporting utilities. Eliminates all of the singletons.

None of this is styled correctly, but the layouts match iOS.

Signed-off-by: Jonathan Nobels jonathan@tailscale.com

---------

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
9 months ago
James Tucker 87a8003d39 *: add a CI check for license headers and fix all files
Updates tailscale/tailscale#10992

Signed-off-by: James Tucker <james@tailscale.com>
9 months ago
Jonathan Nobels 4f46c38c99
Jonathan/notifier (#179)
android: add notifier support a data model and compose dependencies

fixes ENG-2084
fixes ENG-2086

Adds support for the ipnBusWatcher directly via a JNI API rather than HTTP via LocalAPIClient

Adds a rudimentary controller class and a model from which we can construct ViewModels

Cleans up some of the JNI bindings.  Adds hooks for ensuring the JNI setup is complete before attempting to do LocalAPIClient things.

Cleans up some wildcard imports.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Signed-off-by: Percy Wegmann <percy@tailscale.com>
Co-authored-by: Percy Wegmann <percy@tailscale.com>
9 months ago
kari-ts 9492b01946
cmd/tailscale, tailscale/ipn: fix alway-on VPN (#168)
=If a ConnectEvent is received before the first notification, (as happens when a connection is attempted due to always-on after device reboot) create state.Prefs.
-Create an intent to start the VPN worker in the case of an always-on intent received on device reboot
-Rename onConnect channel to onVPNRequested, since this isn't doing the actual connecting

Fixes tailscale/tailscale#2481

Signed-off-by: kari-ts <kari@tailscale.com>
9 months ago
Jonathan Nobels bb7ea7cf9f
android: add kotlin dependencies build the kotlin->go localAPIClient (#173)
updates ENG-2805

Adds all of the kotlin build dependencies and a partial implementation of a LocalAPIClient in the front end, wired up via JNI.  The general idea here is to mimic the architecture used on other Tailscale clients, where the front ends largely interact with the backend via "localapi".

The LocalAPIClient in go has been renamed to LocalAPIService to avoid confusion with the implementation on the future client side in Kotlin.  Some mild refactoring was done to make the localAPI invocations methods on the api service instead of App.

Streaming notifier endpoints like watch-ipn-bus are not supported.  We will build out a separate set of JNI methods for dealing with those.

The jni package is moved under cmd where it is used.

This constains mostly-complete implementation of the required localAPI data classes based on the pieces that are used by the iOS and macOS clients.  The LocalAPIClient itself does not implement all of the endpoints, but is ready to do so when those APIs are needed by a UI component.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
9 months ago
Nicola Beghin df9c75136b
Fixes Android quick settings tile - issue #2646 (#143)
* quicksettings - move to use intents com.tailscale.ipn.CONNECT_VPN and com.tailscale.ipn.DICONNECT_VPN - Fixes #2646

Signed-off-by: Nicola Beghin <nicolabeghin@gmail.com>

* cleanup imports - Fixes #2646

Signed-off-by: Nicola Beghin <nicolabeghin@gmail.com>

---------

Signed-off-by: Nicola Beghin <nicolabeghin@gmail.com>
10 months ago
kari-ts b96df2b830 android: bump version code
Signed-off-by: kari-ts <kari@tailscale.com>
10 months ago
kari-ts 630a6069c4 go.mod: bump oss and version
Updates #cleanup

Signed-off-by: kari-ts <kari@tailscale.com>
10 months ago
kari-ts 813ca8adea
android: bump version code (#152)
* go.mod: update for 1.58.0

Signed-off-by: kari-ts <kari@tailscale.com>

* android: bump version code

Signed-off-by: kari-ts <kari@tailscale.com>

* Pulled OSS from HEAD and fixed version name

* Removed swp file

---------

Signed-off-by: kari-ts <kari@tailscale.com>
10 months ago
David Anderson 3255d55e39 Record DNS search domains as well as nameservers.
We accidentally removed this in the big connectivity monitor fix.

Updates tailscale/tailscale#10107

Signed-off-by: David Anderson <danderson@tailscale.com>
10 months ago
kari-ts a76b36506c
DnsConfig: get rid of unnecessary isEmpty check (#149)
* DnsConfig: remove unnecessary isEmpty check

Updates #cleanup

* DnsConfig: remove unnecessary isEmpty check

Updates #cleanup

* k
11 months ago
kari-ts 1b42117791
use network callback to update DNS config when network changes (#147)
* use network callback to update DNS config when network changes

-Use requestNetwork, which gets the best network matching the passed in network request, to listen for changes to network and cache DNS config
-Call netmon.InjectEvent on network change to indicate a change
Follow-up will fix issue in netmon where IsMajorChangeFrom doesn't identify major changes when a network is added

Fixes #10107

* use network callback to update DNS config when network changes

-Use requestNetwork, which gets the best network matching the passed in network request, to listen for changes to network and cache DNS config
-Call netmon.InjectEvent on network change to indicate a change
Follow-up will fix issue in netmon where IsMajorChangeFrom doesn't identify major changes when a network is added

Updates tailscale/tailscale/#10107

hi

* hi

* .

* use network callback to update DNS config when network changes

-Use requestNetwork, which gets the best network matching the passed in network request, to listen for changes to network and cache DNS config
-Call netmon.InjectEvent on network change to indicate a change
Follow-up will fix issue in netmon where IsMajorChangeFrom doesn't identify major changes when a network is added

Updates tailscale/tailscale/#10107

* fixed missing connectivity manager
11 months ago
Denton Gentry 52601c0dff android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
11 months ago
Denton Gentry dcca09fe7f Update OSS 1.57.x.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
11 months ago
kari-ts ae647625b0
build.gradle: increase JVM memory settings (#145)
This fixes the issue where building in Android Studio OOMs

Fixes #10714

Signed-off-by: kari-ts <kari@tailscale.com>
11 months ago
Denton Gentry 61453254df android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
12 months ago
Denton Gentry 5ef7bbaff0 Update OSS 1.55.x
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
12 months ago
Denton Gentry a6ef5424a7 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 0a44d50e8b update dependencies
- Update Tailscale OSS to 1.55.x
- set compileSdkVersion to 33
- Update androidx dependencies
- increase memory allocated to JVM when building, avoid OOM

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 318065c64f android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry ab4a672a4e go.mod: update from OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 8f766ba087 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 38d38b3af9 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry b23dd78e99 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 3a305b158c android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Andrew Lytvynov 6684b3059c
android: bump version code (#139)
Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
1 year ago
Andrew Lytvynov d5646fb2aa
Bump version and OSS for new unstable release (#138)
Updates https://github.com/tailscale/corp/issues/15340
1 year ago
Denton Gentry c73f8533f0
build.gradle: update targetSdkVersion to 33. (#127)
"bluetooth_name" cannot be accessed after SDK 31, remove it from
getUserConfiguredDeviceName().

Fixes https://github.com/tailscale/tailscale/issues/8955

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Andrew Lytvynov 88d006f6b9
android: bump version code (#125)
Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
1 year ago
Andrew Lytvynov 4b67f47e88
android: bump version for unstable release (#124)
* go.mod: bump OSS

* android: bump version code

Signed-off-by: Andrew Lytvynov <awly@tailscale.com>

---------

Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
1 year ago
James Tucker 11a0d21d2e android: upgrade gradle plugin runtime to 8.1
Another upgrade recommended by Android Studio, again this is just
upgrading the build tooling, and not yet changing any of the runtime
side dependencies or behaviors.

We switch from jcenter to mavenCentral as advised in the build output,
as jcenter has shutdown.

This includes a mandatory JDK bump from 11 to 20.

Updates #cleanup
1 year ago
Denton Gentry 5610486051 go.mod: update from OSS.
Also increment the build number past those used for
1.46.x releases.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Brett Jenkins 6348bb254a
Prevent connecting loops when using connect intent more than once (#95)
* startvpnworker.java: prevent connecting loops

If start intent called more than once.

Turns out there were still some cases where the bug would occur, also it turns out checking the status of a VPN connection isn't foolproof in android, so this is a safer way to fix it, we just ensure that the autoConnect var is set to false when disconnecting.

Fixes: https://github.com/tailscale/tailscale/issues/8013

Signed-off-by: Brett Jenkins <brett@brettjenkins.co.uk>
1 year ago
James Tucker 8e748afc47 android: update Android Gradle Plugin as recommended by Android Studio
Updates #cleanup
1 year ago
kari-ts 264aae3232
android: update gradle (#112)
-Update Gradle version
-Replace jcenter() with mavenCentral() because of jcenter deprecation
-Use testImplementation instead of the obsolete testCompile

Tested with docker
Fixes #12997

Signed-off-by: kari-ts <kari@tailscale.com>
1 year ago
Andrea Gottardo bb47fa593c
android: increment versionCode to 170 (#113) 1 year ago
Denton Gentry 1e07536824 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 0ccb93e115 go.mod: update for 1.43.x development.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 8d6922285d android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 38061656a5 go.mod: update from OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 0931e9b3ee android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 2118ca5b38 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Brett Jenkins eb9599540c
Add intents (#87)
IPNReceiver: Add intents to connect and disconnect VPN

Added a new class IPNReceiver to listen to intents silently and connect and disconnect the VPN. This uses workers to avoid doing too much in the IPNReceiver which is to be avoided according to documentation.

Also includes a fix for vpn occasionally not starting. Think this was due to a race condition, but now only sets autoConnect to false when we know a connection is connecting or connected.

Fixes https://github.com/tailscale/tailscale/issues/3547
Updates https://github.com/tailscale/tailscale/issues/2481

Signed-off-by: Brett Jenkins <brett@brettjenkins.co.uk>
2 years ago
Denton Gentry c077c1b38a android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 71f203a493 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry df47a60927 go.mod: Update from OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 8f512dd7a9 go.mod: beginning of 1.39 development.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry d0c45c1de1 Revert "IPNReceiver: Add intents to connect and disconnect VPN (#84)"
Reverting according to discussion in
https://github.com/tailscale/tailscale/issues/3547#issuecomment-1465035410

This reverts commit 51a53e5472.
2 years ago
Denton Gentry 6499fb845e android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 6bbc9032bf android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry d53da4ac65 go.mod: update OSS
Skip over the build number used for 1.36.2.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Brett Jenkins 51a53e5472
IPNReceiver: Add intents to connect and disconnect VPN (#84)
* IPNReceiver: Add intents to connect and disconnect VPN

Added a new class IPNReceiver to listen to intents silently and connect and disconnect the VPN
Also removed unneeded comment

Fixes: https://github.com/tailscale/tailscale/issues/3547

Signed-off-by: Brett Jenkins <brett@brettjenkins.co.uk>
2 years ago
Denton Gentry e7ceb58224 IPNService: add Chromecast to the apps allowed to bypass the VPN.
Needed for LAN discovery of Chromecast devices.
Fixes https://github.com/tailscale/tailscale/issues/3636

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 2073704cad android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 813b770cdf go.mod: update Gio, finish Go 1.20 support
Upstream Gio fixed https://todo.sr.ht/~eliasnaur/gio/473, which
we run into in https://github.com/tailscale/tailscale/issues/7255

https://github.com/tailscale/tailscale has moved to Go 1.20
- update go.mod to go 1.20
- go mod tidy -compat=1.20
- update go4.org/unsafe/assume-no-moving-gc

Skip over the build numbers used for 1.36.x

Fixes https://github.com/tailscale/tailscale/issues/7255

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 68b6b92eaf go.mod: update for 1.37.x
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry f139c0221e android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry a23dbaf58e android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 9562c27766 android/build.gradle: skip versions from branches.
We did several builds from release branches.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 908c634a6a
IPNService: add Sonos S1 to the apps allowed to bypass the VPN. (#76)
Fixes https://github.com/tailscale/tailscale/issues/2548

Signed-off-by: Denton Gentry <dgentry@tailscale.com>

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 152110204c android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry a0f2c883b4 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 6f6d319048 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry fd874ed58e go.mod: update OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 7f11150cb6 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry c5e20b297c go.mod: update from OSS for 1.35.x
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 3c081e5d10 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 498e73e392 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 1181155b7d go.mod: update from OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 9ce897ed8f
IPNService: add Sonos to the apps allowed to bypass the VPN. (#69)
Updates https://github.com/tailscale/tailscale/issues/2548

Signed-off-by: Denton Gentry <dgentry@tailscale.com>

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry bb147bf07c android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 26e72f15ef go.mod: update from OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry ac5e24a63d
build.gradle: update to SDK31 (#68)
Required for apps to update in the Play Store after November 1.

This requires:
- manifest must specify if Intents are exported.
- PendingIntent must declare FLAG_IMMUTABLE or MUTABLE

Signed-off-by: Denton Gentry <dgentry@tailscale.com>

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry b6c2536147 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry f7c662ca4a android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 185cc3dd8f skip mistaken build number.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry d050f2742a go.mod: Update for 1.33
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry ce550a4225 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry f27f4567f0 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 10419aea2d android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 03970952d5 go.mod: update from OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 4869bb4666 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 033f7d87b4 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 5d209e6122 go.mod: update from OSS
Also increment past the build number used for 1.30.1.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry bab2ac0058 go.mod: update for 1.31 dev builds.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry c0f9eed38e android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 634431055b android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 4102b6a40a android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry f2e89244a9 build.gradle: increment build number.
Built on another branch.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry aafa3432dc android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 4f17005954 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry f225992d28 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry d1d72859b4 Add GoPro to the apps allowed to skip the VPN.
Fixes https://github.com/tailscale/tailscale/issues/2554

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 6eca3897f8 build.gradle: spaces -> tabs
Only changes whitespace.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 283dd77bcc Add a unit test for DnsConfig.intToInetString
adds JUnit dependencies and basic gradle support to run unit tests,
and a test for DnsConfig.intToInetString().

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 63dba694af DnsConfig: don't use signed bytes when printing.
intToInetString(0x0101a8c0) returns "-64.-88.1.1" because Java
integers are always signed. There is not a %u format specifier.

Though the quads of an IP address literally are bytes, they can
be left as an int to pass to String.format. This allows room for
sign bits, so intToInetString(0x0101a8c0) returns "192.168.1.1"

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry db31496a24 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 42f688f129
Merge pull request #50 from tailscale/apps
Add inherently local apps to disallowed list.
2 years ago
Denton Gentry 4223a68a2d go.mod: update from OSS for 1.29 unstable builds
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 8f551d0320 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 2597b82c3f Add inherently local apps to disallowed list.
Google Stadia, Messages (RCS/Jibe), and Android Auto
don't benefit from being on the VPN, and don't work.
Either they need access to local hardware (Auto, Stadia)
or they're accessing an entirely different communications
channel (Messages). Don't send them through the VPN.

Fixes https://github.com/tailscale/tailscale/issues/2322
Fixes https://github.com/tailscale/tailscale/issues/3460
Fixes https://github.com/tailscale/tailscale/issues/3828

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 11a027269c go.mod: update from OSS.
Increment build number past the point used on other branches.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 8ddaf1ec5c android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 221300266f android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 0c11377ca1 go.mod: update OSS for unstable build.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 9de8d8e525 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 536c17a3a2 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry e66e57fbb0 go.mod: update OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry e73f55f5db go.mod: Start of 1.25.x development.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 40481f5ec6 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry bd5ef3fd68 go.mod: update OSS
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry d1bff07fbd android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry e652d853d6 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 58e85726a4 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 51fc2e7030 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Elias Naur b803576542 android,Dockerfile: bump NDK, Gradle
Nix support is easier to do with recent NDK and Gradle dependencies.
Bump them here, and add Nix support in a follow-up.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Denton Gentry d8ccc2387f android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry b4f8e7f90a Go 1.18 and update OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Ross Zurowski c7afe66e9a android: update Android TV banner dimensions 3 years ago
Ross Zurowski 052ba2755f android: update Android TV launcher icon 3 years ago
Brad Fitzpatrick 9101d9adc4 android: try to add a Android TV Leanback launcher icon
Maybe it works on Android TV, but this doesn't work on a Fire Stick.

Updates tailscale/tailscale#4179

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
3 years ago
Elias Naur 83bfea18bb cmd/tailscale,com/tailscale/ipn: implement QR sign-in for TV devices
This is a cleand up version of #27.

Fixes tailscale/tailscale#1611

Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Aman Karmani d9c64011f5 android: make apk android tv compatible 3 years ago
Denton Gentry b0f1428443
Merge pull request #41 from tailscale/digits
java: format strings containing integers in ROOT locale.
3 years ago
Denton Gentry fd42b4b352 java: format strings containing integers in ROOT locale.
We use strings to pass structured data from the JVM to Go.
In a locale using Indian-Arabic numerals: ۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹
the Java code will format decimal strings using Indian-Arabic
glyphs.

Go doesn't get a locale set automatically by the Android
runtime, so it always parses strings in a default en-US
`unable to parse "lo ١ ٦٥٥٣٦ true false true false false |": expected integer`

Make the Java code format using the ROOT locale. These strings
are purely internal to pass between the two runtimes, they are
not shown to the user.

Fixes https://github.com/tailscale/tailscale/issues/4156

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry b125fbf179 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry a8f017ddf6 go.mod: update from OSS@main
Also increment Android build number past 1.22.0.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 0e5c2ec1ec android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 69f2fe67dc android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 7989a1ae2a android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 61490b1713 go.mod: go mod tidy -compat=1.17
Also increment build number past the one used for 1.20.2
on release-branch/1.20.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry aa5123b8b4 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry df73d8a419 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 6b83c6ae21 go.mod: update OSS for next unstable build.
Also increment the build number past what was used
on the release-branch/1.20

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 270b8efe97 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 039124db79 go.mod: Update from OSS.
Increment version number, the 1.18.2 release was build 82.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry bbd7b61d44 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 79bb2f33d0 ui: more robust isConnected check.
1. Follow
   https://developer.android.com/training/monitoring-device-state/connectivity-status-type
   to determine whether to report ourself as having connectivity or not.

   Tested by turning the Wifi & LTE off and on, seems to work well in
   the contrived test case.

2. Call superclass for onLost() and onLinkPropertiesChanged() handlers.
   Current Android versions have no code in the superclass of these two
   callbacks, but future proofiness.

3. Log when the UI report of LostInternet changes, so we can find it.

Fixes https://github.com/tailscale/tailscale/issues/3542

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 0265dcfd1b android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 184250167b
Merge branch 'main' into dns 3 years ago
Denton Gentry f2a104fc5f android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry ca696b116c Update opensource repository 3 years ago
Denton Gentry 5c9cec0064 retrieve current DNS servers.
Add getDnsConfigAsString() to retrieve the current DNS
configuration from the Android platform. This implements
several mechanisms to retrieve DNS information, suitable
for different Android versions:

Android 7 and later use ConnectivityManager getAllNetworks(),
then iterate over each network to retrieve DNS servers and
search domains using the LinkProperties.

Android 6 and earlier can only retrieve the currently active
interface using ConnectivityManager getActiveNetwork(), but have
two additional fallback options which leverage the system
properties available in older Android releases.

--------

Also changed how LinkChange notification works, switching from
the older BroadcastReceiver of a ConnectivityManager Intent to
the newer ConnectivityManager.registerNetworkCallback. We need
this because the onAvailable event is too early, we get notified
that LTE is up before its DNS servers have been set. We need
to wait for the onLinkPropertiesChanged event instead, which is
only available with registerNetworkCallback.

Fixes https://github.com/tailscale/tailscale/issues/2116
Updates https://github.com/tailscale/tailscale/issues/988

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 5c93a7a829 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry a045ba5ab1 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry c98d4dd89c android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 0ecb2a2587 Increment build number.
1.16.2 on release-branch/1.16 is build 74.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry fe76bef85b android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 61f90a1975 Increment build number.
Build 72 was 1.16.1, built on release-branch/1.16

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry a4a3ae6eff android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 0a13b89ce0 go.mod: update from HEAD.
Also increment build number to skip over the 1.16.0 release build.
3 years ago
Denton Gentry 02a6ae0e0d cmd/tailscale: implement getInterfaces + SDK 30
SDK 30 prohibits syscall.NetlinkRIB(syscall.RTM_GETADDR, ...)
which Go's net.Interfaces uses. Implement an Android
specific version of net.Interfaces to use instead.

Passing primitive types across JNI is relatively straightforward,
passing a single object of a complex class is annoying but still
possible, but passing lists and other more complex data structures is
way harder. As such, this commit added a Java routine to render the
interface information to a string and pass that across JNI as a
primitive type for Go code to parse.

Fixes https://github.com/tailscale/tailscale/issues/2293
3 years ago
Denton Gentry 6518535039 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 54d511a9b6 Increment build number.
build 68 is 1.14.6 on release-branch/1.14.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry ef96ee30fd android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry e2128ef6d6 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Elias Naur 84b484a954 android,cmd/tailscale: implement taildrop receive for Android < 10
Fixes tailscale/tailscale#2720
Fixes tailscale/tailscale#2296

Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Elias Naur f37cf72d81 android/ipn: ignore shared files we have no access to
I'm not able to reproduce the crash described in #2720; sharing files
from an SD-card through taildrop works for me (ChromeOS 93.0) without
issues. However, this change makes sure that we don't crash should we
lack permission for some reason.

Updates tailscale/tailscale#2720

Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Elias Naur 078356613f android: fix persistent notification intent target
Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Denton Gentry d3edb004e3 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry f33b98b313 Skip version used for 1.14.0 take 2.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 742da3ae36 Skip version used for 1.14.0.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 5c524d2768 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry ae2df12032 Update from Tailscale OSS.
Skip release 61.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 9283506c04 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 76df742662 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry a68462ec65 Update for unstable build.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 3575ef712a android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 82b6b8dbd3 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 7f086ccaa6 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry ade708af7f Update for 1.13.x unstable builds. 3 years ago
Denton Gentry ea1bb12e9b android: bump version code
Fix F-Droid build.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 00e45e3795 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 0df2377630 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 3cb36c4599 android: bump version code
Unstable build 1.11.109.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 4d32c6da4f android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 1c78887bf5 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 90909797a0 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Denton Gentry 2a6cd09d7c android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Elias Naur 14cdec17f1 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Elias Naur 242c936b2c android: lower target SDK to 29
Target 30 results in an error on load, most likely because netlink
is no longer accessible for apps.

runBackend: NewUserspaceEngineAdvanced: route ip+net: netlinkrib: permission denied

Fixes tailscale/tailscale#2290

Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Elias Naur 639aebac6a android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Elias Naur 10ded1bad2 cmd/tailscale,java: implement file sharing
Fixes tailscale/tailscale#1809

Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Elias Naur e007a9c153 android: bump target/compile SDK version to 30
Gio uses SDK 30 API now.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Denton Gentry 594ed6b7bc android: bump version code
On 6/24 I built a v43 and started to release it to production,
then decided to do an Internal release first. The Play Store
would not allow v43 to be used again so I built v44, released
it to Internal, and after testing promoted it to Production and
it went into Google's review process.

Crucially, I did not push the tags before going to bed.

On 6/25, not knowing any of this because I hadn't pushed the tags,
Elias built v43 and released it. The Play Store had apparently cleaned
up the state from my abandoned v43 by that point.

This commit increments the build number to v44 so we don't re-use it.
I'm not building an actual release, just incrementing the build
number and pointing to the same git commit. I'm hoping F-Droid will
therefore build exactly the same thing as it did for v43.

I promise to push the tags before going to bed next time.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
3 years ago
Elias Naur e8f2409cb3 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Brad Fitzpatrick b97cc703d8 Fix routing loop prevention, MagicDNS forwarding over Tailscale.
Fixes tailscale/tailscale#2102
Updates tailscale/tailscale#1809

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
3 years ago
Elias Naur 9e9d69fd95 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 20ddae3208 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 3d2abf0b3b android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 8ea1d4ced7 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 401ed389ef android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur db13aa4e92 android/build.gradle: upgrade androidx.security to 1.1.0-alpha03
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 633d81287a cmd/tailscale,com/tailscale/ipn: delete unused constant, reformat
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 206f2bb4e7 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 085d823920 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur dfe7b6c0a2 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur ebdbe7c315 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 54917ae2f5 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 07b2373e6b com/tailscale/ipn,cmd/tailscale: handle quick tile clicks while signed out
Specifically, start the main activity to prompt the user to sign in or
be notified of a pending machine auth.

Fixes tailscale/tailscale#1225

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 71a9bd537c com/tailscale/ipn,AndroidManifest.xml: make quick tile service passive
Active mode is more efficient, but otherwise equivalent to passive mode.
However, some Android versions don't implement active mode reliably. See
also

https://stackoverflow.com/questions/58035971/tileservice-requestlisteningstate-not-working-on-android-q-couldnt-find-tile-f
https://issuetracker.google.com/issues?q=requestListeningState

I can reproduce issue 1225 on an Android 10 emulator, but no longer with
this change applied.

For tailscale/tailscale#1225

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur f19c0c057e android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 9525b1c46c android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur c8114b4474 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 28e5c33b3b android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 2ed6c7df9a android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
David Anderson 8daee9c431 com/tailscale/ipn: exclude the app from its own VPN.
This means that the Tailscale app's traffic will never use
the VPN that it sets up, which avoids routing loops in
scenarios like publishing a default route over Tailscale.

Signed-off-by: David Anderson <danderson@tailscale.com>
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 2c9fddab4f cmd/tailscale: warn when debug signed and Google Sign-In fails
Fixes tailscale/tailscale#1036

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur de6c243bae android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur b97970dd8f android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 21037e6d67 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 0964bc5a6e android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 9c38bebfa9 android: create build flavor for omitting non-free Google dependency
The F-Droid app store don't support non-free dependencies. Create two build
flavors, "fdroid" for building without Google Sign-In, and "play" for including
it.

Modify Makefile to target the play flavor.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 6d9acbb479 cmd/tailscale,java: refactor Google Sign-In into separate class
In preparation for the F-Droid release, refactor the non-free Google dependency
into a separate Java class and make the Go client tolerate missing support.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 412fe8ad68 android/gradle/wrapper: add cryptographic checksum
Suggested by F-Droid bot, https://gitlab.com/fdroid/rfp/-/issues/1546#note_443476386.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 39dfd84951 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 3eab35ca80 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur fd4646a900 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 6eeb9d8ac4 AndroidManifest.xml: disable auto-backup of (encrypted) app data
Android 6.0 and later automatically backs up app data and allow the user
to restore it when setting up a new device. Unfortunately, the app data
is encrypted with a device specific master key, rendering the data
unreadable on the second device.

Apply the allowBackup=false hammer since we only store device-specific
(logs) and sensitive (private keys, authentication tokens) data for now.

Fixes tailscale/tailscale#732

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur dfbfd2a3ed android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur c1863a42ae android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur d221e0db42 java/com/tailscale/ipn: run attachPeer on main thread
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur b6d6f57261 android: bump version code 4 years ago
Elias Naur 1b402aebb0 cmd/tailscale,java/com/tailscale/ipn: always register the Peer Fragment
Before this change, the Peer would be registered across Activity restarts
but not after Activity destruction (for example, when the user pressed the
back button).

Use the newer Gio ViewEvent API for tracking the Activity lifecycle and
the most recent Activity reference.

Move Java calls that need an Activity from Peer to App, leaving Peer solely
as a method for receiving onActivityResult.

Fixes tailscale/tailscale#670

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 3089ad8347 cmd/tailsca,java/comt/tailscale/ipn: don't require an Activity for Google sign-out
The GoogleSignIn.getClient has a version that only needs a Context, not an Activity.

Updates tailscale/tailscale#670

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur a0a33e92c4 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 39cb01da42 java/com/tailscale/ipn: upgrade Android security to support Android 5.1
As luck would have it, there's a new version of the androidx.security
library available that support Android 5+. Use that, and adjust to the
incompatible API changes.

Fixes tailscale/tailscale#577

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 3ced33d812 java/com/tailscale/ipn: make App Android 5.1 compatible
Fragment.commitNow doesn't exist on Android 5.1. Calling commit and then all
flushing pending transactions is just as good, because we're not using any
other fragments.

Updates tailscale/tailscale#577

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur f25b5bbcba cmd/tailscale: make intro screen scrollable
Include the version code bump as well. Oops.

Updates tailscale/tailscale#488

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur c706699862 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur a7dfea267c cmd/tailscale: fallback back to Google DNS on ChromeOS
Contrary to the VpnService.Builder documentation, ChromeOS doesn't
automatically fall back to the underlying network nameservers when
none are provided.

Updates tailscale/tailscale#431

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 9e45538997 cmd/tailscale,java/com/tailscale/ipn: provide OSVersion and DeviceModel for the backend
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 91d4d47fd8 cmd/tailscale: stop loader indicator when Google Sign-in is cancelled
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 15632cb15b cmd/tailscale: sign-out any Google users when logging out from Tailscale
Fixes tailscale/tailscale#585

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 1a937b5c5f java/com/tailscale/ipn: retain peer Fragment across Activity restarts
There is no reason to recreate it for transient restarts.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 6265d84c36 cmd/tailscale: don't use TileService if not supported
Bump version code for release.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur cbde34f13b android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur bae9b8394a android: add quick setting tile support
Fixes tailscale/tailscale#516

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 42a327e5e5 Makefile: fix version name propagation, bump Android version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 541e3431f6 android: bump version code
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur ec9bb108c6 cmd/tailscale: add Google sign-in button
Hidden behind a flag pending support from the Tailscale client.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago