Add lockdownEnabled parameter to always-on VPN API

Allows callers to opt-out of blockading network traffic during boot and
on VPN app failure.

Bug: 26694104
Change-Id: Ibfbd43ad09a25f2e38053fcd6306df3711f8bde2
This commit is contained in:
Robin Lee
2016-05-03 13:23:03 +01:00
parent e095d2f708
commit 94e69beca3
3 changed files with 7 additions and 5 deletions

View File

@@ -792,14 +792,16 @@ public class ConnectivityManager {
* @param userId The identifier of the user to set an always-on VPN for. * @param userId The identifier of the user to set an always-on VPN for.
* @param vpnPackage The package name for an installed VPN app on the device, or {@code null} * @param vpnPackage The package name for an installed VPN app on the device, or {@code null}
* to remove an existing always-on VPN configuration. * to remove an existing always-on VPN configuration.
* @param lockdownEnabled {@code true} to disallow networking when the VPN is not connected or
* {@code false} otherwise.
* @return {@code true} if the package is set as always-on VPN controller; * @return {@code true} if the package is set as always-on VPN controller;
* {@code false} otherwise. * {@code false} otherwise.
* @hide * @hide
*/ */
public boolean setAlwaysOnVpnPackageForUser(int userId, @Nullable String vpnPackage) { public boolean setAlwaysOnVpnPackageForUser(int userId, @Nullable String vpnPackage,
boolean lockdownEnabled) {
try { try {
return mService.setAlwaysOnVpnPackage(userId, vpnPackage); return mService.setAlwaysOnVpnPackage(userId, vpnPackage, lockdownEnabled);
} catch (RemoteException e) { } catch (RemoteException e) {
throw e.rethrowFromSystemServer(); throw e.rethrowFromSystemServer();
} }

View File

@@ -122,7 +122,7 @@ interface IConnectivityManager
VpnInfo[] getAllVpnInfo(); VpnInfo[] getAllVpnInfo();
boolean updateLockdownVpn(); boolean updateLockdownVpn();
boolean setAlwaysOnVpnPackage(int userId, String packageName); boolean setAlwaysOnVpnPackage(int userId, String packageName, boolean lockdown);
String getAlwaysOnVpnPackage(int userId); String getAlwaysOnVpnPackage(int userId);
int checkMobileProvisioning(int suggestedTimeOutMs); int checkMobileProvisioning(int suggestedTimeOutMs);

View File

@@ -3309,7 +3309,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
} }
@Override @Override
public boolean setAlwaysOnVpnPackage(int userId, String packageName) { public boolean setAlwaysOnVpnPackage(int userId, String packageName, boolean lockdown) {
enforceConnectivityInternalPermission(); enforceConnectivityInternalPermission();
enforceCrossUserPermission(userId); enforceCrossUserPermission(userId);