Commit Graph

1026 Commits (24b6c48bd295f645c72a591b1c6573367a7bbfa5)
 

Author SHA1 Message Date
Jonathan Nobels 24b6c48bd2
libtailscale: use b.netmon and sys.Bus consistently (#717)
fixes tailscale/android#17747

There was a mismatch between the netmon into which we
were injecting network change events, and the netmon that
the eventBus registered with in the userspace engine.

The switch from directly registering callbacks with netmon
to using the eventBus caused a regression where the
injected events would no longer trigger interface rebinds based
on feedback from the Android network monitoring APIs.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
2 weeks ago
Andrew Lytvynov 6f3d1881a8
Fix hardware key attestation support (#715)
Enable attestation key by default, any enforcement happens in control.
Also, make the HashMap for tracking loaded keys in HardwareKeyStore a
singleton, so that multiple instances of HardwareKeyStore created in
App.kt don't lose the state of the loaded keys.

Updates https://github.com/tailscale/tailscale/issues/15830

Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
3 weeks ago
Nick Khyl d62efaa365 android: bump OSS
OSS and Version updated to 1.89.271-t4e1c270f9-g588639e49

Signed-off-by: Nick Khyl <nickk@tailscale.com>
1 month ago
Andrew Lytvynov 588639e495
go.mod: bump OSS (#708)
Updates https://github.com/tailscale/tailscale/issues/15830

Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
2 months ago
Patrick O'Doherty c7cc272eba
android,libtailscale: allow toggling HW attestation via MDM (#709)
Previously hardware attestation was enabled on all supported devices.
We now gate this functionality behind an MDM setting (whose default
value is true) to allow disabling this in deployments where it
might cause issues.

Updates tailscale/corp#31269

OSS and Version updated to 1.89.254-t005e264b5-g0b32dd75c

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Signed-off-by: Patrick O'Doherty <patrick@tailscale.com>
2 months ago
Jonathan Nobels 0b32dd75c5
build.gradle: update versionCode to match playstore (#711)
udpates #cleanup

Manual bump for now to fix issues with FDroid builds.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
2 months ago
Nick Khyl 4b2b827be1 android: bump OSS
OSS and Version updated to 1.89.129-t7bcab4ab2-g7751f2a4a

Updates tailscale/corp#31269 (for (*hardwareAttestationKey).Clone)
Updates tailscale/tailscale#15160 (for the tsd / HealthTracker change)

Signed-off-by: Nick Khyl <nickk@tailscale.com>
2 months ago
James Tucker 7751f2a4ab libtailscale: fix regression in interface address enumeration
Fix regression introduced in 9c933a08a2.

Fixes tailscale/tailscale#16836

Signed-off-by: James Tucker <james@tailscale.com>
2 months ago
Andrew Lytvynov 11869b00c5
android,libtailscale: implement key.HardwareAttestationKey (#694)
Use a KeyStore-backed key to store a hardware-bound private key.

Updates https://github.com/tailscale/tailscale/issues/15830

Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
3 months ago
Nick O'Neill 0de26e52c0
android: Support tailnet display name, falling back to domain (#703)
android: support tailnet display name, falling back to domain

Updates https://github.com/tailscale/corp/issues/30456

Signed-off-by: Nick O'Neill <nick@tailscale.com>
3 months ago
Nick O'Neill 7c460a8da2
android: bump OSS (#704)
OSS and Version updated to 1.87.154-t77250a301-g6d27f79bf

Signed-off-by: Nick O'Neill <nick@tailscale.com>
3 months ago
Jonathan Nobels 6d27f79bf6
android: bump OSS (#702)
OSS and Version updated to 1.87.151-t3e4b0c151-g0498654eb

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
3 months ago
Jonathan Nobels 0498654ebd
android: hide placeholder when avatar is loaded (#701)
fixes tailscale/corp#32012

Hides the placeholder image once the user's avatar is
loaded.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
3 months ago
James Tucker b42ab6b58f Makefile: use shasum from perl for portability
sha256sum is missing on macOS, but shasum appears to be available on
both macOS and Ubuntu by default.

Updates tailscale/tailscale#17024

Signed-off-by: James Tucker <james@tailscale.com>
3 months ago
Brad Fitzpatrick 91f82b0732 libtailscale: use syspolicy RegisterStore rather than deprecated RegisterHandler
Updates tailscale/tailscale#17022

Signed-off-by: Brad Fitzpatrick <brad@danga.com>
3 months ago
Michael Nahkies 981f5e8770 all: add Makefile fmt and fmt-check targets, format all source code
Signed-off-by: Michael Nahkies <michael@nahkies.co.nz>
3 months ago
Jonathan Nobels 53b746220b
android: bump OSS (#698)
OSS and Version updated to 1.87.131-tc9f214e50-gd2c005f71

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
3 months ago
Jonathan Nobels d2c005f714
android: bump OSS (#693)
OSS and Version updated to 1.87.107-t3aea0e095-g9b07f33d7

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
3 months ago
Brad Fitzpatrick 9b07f33d77 Makefile, go.mod: bump oss, adjust how we do so
Signed-off-by: Brad Fitzpatrick <brad@danga.com>
4 months ago
Jonathan Nobels f3467251fe
Makefile: add gomobile bind ldflags for 16Kb page support (#689)
Adds ldflags to support 16kb pages sizes for NDK 23.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
4 months ago
kari-ts cc2f6386a6
android: update target API to 35 (#688)
Fixes tailscale/corp#31101

Signed-off-by: kari-ts <kari@tailscale.com>
4 months ago
kari-ts e68e64014e
android: defer taildrop selector until first taildrop attempt (#684)
Move Taildrop directory selector out of onboarding
-Listen for Taildrop, and show selector if a directory has not been set

Remove LocalBackend re-initialization
-This is no longer necessary since the directory is set in FileOps

Updates tailscale/corp#29211

Signed-off-by: kari-ts <kari@tailscale.com>
4 months ago
James Tucker 66aae86d40 Makefile: move NDK_ROOT below ANDROID_HOME detection
If ANDROID_HOME is being detected by the code that finds a valid home
with an empty host environment, then NDK_ROOT should be able to use
that, but it was out of order in the evaluation.

Updates #cleanup

Signed-off-by: James Tucker <james@tailscale.com>
4 months ago
kari-ts e71641a422
android: expand SAF FileOps implementation (#675)
* android: expand SAF FileOps implementation

This expands the SAF FileOps to implement the refactored FileOps

Updates tailscale/corp#29211

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

* android: bump OSS

OSS and Version updated to 1.87.25-t0f15e4419-gde3b6dbfd

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

---------

Signed-off-by: kari-ts <kari@tailscale.com>
Signed-off-by: kari-ts <135075563+kari-ts@users.noreply.github.com>
4 months ago
kari-ts 7aab785be0
android: add tailnet deletion dialog (#682)
Add dialog for deleting tailnet in user switcher view.

Fixes tailscale/corp#31024

Signed-off-by: kari-ts <kari@tailscale.com>
4 months ago
kari-ts b3626fc342
android: bump OSS (#680)
OSS and Version updated to 1.85.241-t729d6532f-ge5a704f78

Signed-off-by: kari-ts <kari@tailscale.com>
Signed-off-by: kari-ts <135075563+kari-ts@users.noreply.github.com>
4 months ago
kari-ts 483a949eb2
android: don't show Taildrop picker on TV (#679)
Updates tailscale/tailscale#16164

Signed-off-by: kari-ts <kari@tailscale.com>
4 months ago
Nick O'Neill 05f3b58e10
android: bump OSS (#678)
OSS and Version updated to 1.85.235-t8453170aa-ge5a704f78

Signed-off-by: Nick O'Neill <nick@tailscale.com>
4 months ago
kari-ts e5a704f785
android: bump OSS (#674)
OSS and Version updated to 1.85.128-t0a64e86a0-g460736a15

Signed-off-by: kari-ts <kari@tailscale.com>
5 months ago
kari-ts 460736a151
android: add All() to state store implementation (#673)
Android has its own SharedPreferences-backed implementation of ipn.StateStore. Due to https://github.com/golang/go/issues/13445, we bundle the key list into a single primitive and unpack it in Go in our All() implementation.
This also adds a compile-time check to prevent drift the interface.

Updates tailscale/tailscale#15830

Signed-off-by: kari-ts <kari@tailscale.com>
5 months ago
Nick Khyl f392619036 libtailscale: set EventBus in wgengine.Config
Updates tailscale/tailscale#16369

Signed-off-by: Nick Khyl <nickk@tailscale.com>
5 months ago
kari-ts 014f591a66
android: use new System with pre-populated event bus (#670)
Updates tailscale/tailscale#15160

Signed-off-by: kari-ts <kari@tailscale.com>
6 months ago
Jonathan Nobels 14b0bd8b19
android: bump OSS (#668)
OSS and Version updated to 1.85.55-t3ed76ceed-g28f193153

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
6 months ago
Jonathan Nobels 28f1931531
android: touchless auth key login (#667)
updates tailscale/corp#29482

If an authKey is detected in the mdm payload, we will now skip the
onboarding flows and several of the other non-mandatory permission
prompts.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
6 months ago
Zach Buchheit b9993097fc
mdm: define OnboardingFlow syspolicy on Android (#648)
Adds an MDM setting `OnboardingFlow` which allows for the intro screen to be skipped when set to true.

Adds MDM Setting update to the top of MainActivity onCreate to ensure the latest MDMSettings are accurate. When attempting to do this while
relying on MDMSettings being update during onResume it created a race condition where occasionally OnboardingFlow was being evaluated to the
default value `show` when in reality it should be set to `hide`.

updates tailscale/corp#29482

Signed-off-by: zbuchheit <zachb@tailscale.com>
6 months ago
kari-ts 5f59a367e3
android: bump OSS (#666)
OSS and Version updated to 1.85.36-t66ae8737f-g28084cbd2

Signed-off-by: kari-ts <kari@tailscale.com>
6 months ago
kari-ts 211eb45535
android: add fallback VPN permission (#662)
Some heavily customized OEMS may auto-deny VPN requests without exposing the setting. Show a fallback dialog for devices with no visible VPN panel.

Updates tailscale/tailscale#14095

Signed-off-by: kari-ts <kari@tailscale.com>
6 months ago
kari-ts 28084cbd27
android: do not stop running on login, and edit prefs after startLogi… (#659)
android: do not stop running on login, and edit prefs after startLoginInteractive

Previously: start, edit prefs with wantRunning=false, then startLoginInteractive
Now: 1. editPrefs() with WantRunning=true, LoggedOut=false if AuthKey != null
     2. start() -> boots tailscaled
     3. startLoginInteractive()
Do not call wantRunning=false; the route clearing issue requiring that is resolved.

This also:
-add deepCopy function which copies MaskedPrefs. Note that .copy() does not copy the non-constructor parameters
-removes InternalExitNodePriorSet in MaskedPrefs, since this can't be set on the client

Updates tailscale/corp#24002

Signed-off-by: kari-ts <kari@tailscale.com>
6 months ago
Jonathan Nobels 296b582520
android: detect amazon fire stick as a AndroidTV (#664)
fixes tailscale/tailscale#16164

We weren't detecting fire stick devices as TV devices.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
6 months ago
Anton Tolchanov a5a5cbb2d5 android: add definitions for the DeviceSerialNumber MDM key
Updates tailscale/tailscale#16010

Signed-off-by: Anton Tolchanov <anton@tailscale.com>
6 months ago
kari-ts 1ec621c382
android: make currentDir reactive (#661)
-The composables were reading the currentDir value once and not observing it. This fixes it so that we recompose when the StateFlow changes.
-Use commit() instead of apply() when writing to EncryptedSharedPreferences since we are reading from it immediately and need the writes to happen synchronously
-Remove unused function in PermissionsViewModel

Fixes tailscale/corp#29283

Signed-off-by: kari-ts <kari@tailscale.com>
6 months ago
kari-ts 87f0e9754b
android: allow users to update taildrop directory (#658)
-Modify Permissions view to navigate to Taildrop dir view and Notifications view, and to reflect state
-Add Taildrop dir view which navigates to directory selector
-Add Notifications view which navigates to Taildrop notifications setting

Updates tailscale/tailscale#15263

Signed-off-by: kari-ts <kari@tailscale.com>
6 months ago
Jonathan Nobels a14d4c7184
android: add explanatory dialog for taildrop directory selection (#657)
fixes tailscale/corp#29067

Adds an interstitial explaining that the user needs to select/create
a taildrop target directory on startup.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
6 months ago
Jonathan Nobels 88a5d3c140
android: modify mullvad exit node detection logic (#656)
updates tailscale/corp#29045

We ran into an issue where the current detection logic was not
sufficient to filter out mullvad nodes.  This modifies the logic so we
scan both the Name and ComputedName for the mullvad domain and
also treat all nodes with location info as mullvad nodes.  While all
of these conditions *should* be true for any mullvad node, in practice
it's possible that they aren't so we or them together for some redundancy
and define a mullvad exit node to be any node where any of these
conditions is true.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
6 months ago
Jonathan Nobels 38f2662ecb
android: bump OSS (#655)
OSS and Version updated to 1.85.8-t09582bdc0-gbd5191363

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
6 months ago
kari-ts bd5191363c
android: use SAF for storing Taildropped files (#632)
Use Android Storage Access Framework for receiving Taildropped files.

-Add a picker to allow users to select where Taildropped files go
-If no directory is selected, internal app storage is used
-Provide SAF API for Go to use when writing and renaming files
-Provide Android FileOps implementation

Updates tailscale/tailscale#15263

Signed-off-by: kari-ts <kari@tailscale.com>
7 months ago
kari-ts eb0a124ba6
android: bump OSS (#653)
OSS and Version updated to 1.83.240-t5a8b99e97-gd3f34c579

Signed-off-by: kari-ts <kari@tailscale.com>
Signed-off-by: kari-ts <135075563+kari-ts@users.noreply.github.com>
7 months ago
Jonathan Nobels f01fb7062b
android: bump OSS (#652)
OSS and Version updated to 1.83.237-tc4fb380f3-g7f56d0c0f

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
7 months ago
kari-ts d5988faf9a
android: add IME action to trigger custom CustomLogin (#649)
Updates tailscale/tailscale#14864

Signed-off-by: kari-ts <kari@tailscale.com>
7 months ago
kari-ts 81ff898782
android: replace broadcast intent with service intent (#650)
We were previously calling startService(intent), which is a direct call consumed by IPNService, but restartVPN was not working as intended because the broadcast receiver was never triggered.
Rather than use a broadcast receiver, directly start the service in restartVPN as we do in stopVPN. Also, batch changes to excluded apps so that we don't restart the VPN each time the user toggles an app.

Fixes tailscale/corp#28668

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