diff options
| author | Pavel Grafov <pgrafov@google.com> | 2018-12-14 13:51:07 +0000 |
|---|---|---|
| committer | Pavel Grafov <pgrafov@google.com> | 2019-01-21 13:48:45 +0000 |
| commit | cb3b895f1d3ec9d9ee1631b363487104f728f57e (patch) | |
| tree | fbb4da09b9697b4e2e305e75ca427749b591e4e8 /core/java | |
| parent | 9bc4066ba354a71644b108c3e158a7e570b93b38 (diff) | |
Add API for VPN apps to query always-on and lockdown.
Test: atest MixedDeviceOwnerTest#testAlwaysOnVpn
Bug: 72628179
Change-Id: I73cb0888f7049b12ab0cdfa62678c3846e074d3b
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/net/IConnectivityManager.aidl | 2 | ||||
| -rw-r--r-- | core/java/android/net/VpnService.java | 23 |
2 files changed, 25 insertions, 0 deletions
diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl index da5d96e49d02..3d34574440dd 100644 --- a/core/java/android/net/IConnectivityManager.aidl +++ b/core/java/android/net/IConnectivityManager.aidl @@ -187,4 +187,6 @@ interface IConnectivityManager byte[] getNetworkWatchlistConfigHash(); int getConnectionOwnerUid(in ConnectionInfo connectionInfo); + boolean isCallerCurrentAlwaysOnVpnApp(); + boolean isCallerCurrentAlwaysOnVpnLockdownApp(); } diff --git a/core/java/android/net/VpnService.java b/core/java/android/net/VpnService.java index f0c0462cec18..37bf3a71ce62 100644 --- a/core/java/android/net/VpnService.java +++ b/core/java/android/net/VpnService.java @@ -368,6 +368,29 @@ public class VpnService extends Service { } /** + * Returns whether the service is running in always-on VPN mode. + */ + public final boolean isAlwaysOn() { + try { + return getService().isCallerCurrentAlwaysOnVpnApp(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Returns whether the service is running in always-on VPN mode blocking connections without + * VPN. + */ + public final boolean isLockdownEnabled() { + try { + return getService().isCallerCurrentAlwaysOnVpnLockdownApp(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** * Return the communication interface to the service. This method returns * {@code null} on {@link Intent}s other than {@link #SERVICE_INTERFACE} * action. Applications overriding this method must identify the intent |
