Loading core/api/current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -25606,7 +25606,8 @@ package android.net { public class VpnManager { method public void deleteProvisionedVpnProfile(); method @Nullable public android.content.Intent provisionVpnProfile(@NonNull android.net.PlatformVpnProfile); method public void startProvisionedVpnProfile(); method @Deprecated public void startProvisionedVpnProfile(); method @NonNull public String startProvisionedVpnProfileSession(); method public void stopProvisionedVpnProfile(); } core/java/android/net/IVpnManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ interface IVpnManager { /** VpnManager APIs */ boolean provisionVpnProfile(in VpnProfile profile, String packageName); void deleteVpnProfile(String packageName); void startVpnProfile(String packageName); String startVpnProfile(String packageName); void stopVpnProfile(String packageName); /** Always-on VPN APIs */ Loading core/java/android/net/VpnManager.java +18 −3 Original line number Diff line number Diff line Loading @@ -317,17 +317,32 @@ public class VpnManager { /** * Request the startup of a previously provisioned VPN. * * @return A unique key corresponding to this session. * @throws SecurityException exception if user or device settings prevent this VPN from being * setup, or if user consent has not been granted */ public void startProvisionedVpnProfile() { @NonNull public String startProvisionedVpnProfileSession() { try { mService.startVpnProfile(mContext.getOpPackageName()); return mService.startVpnProfile(mContext.getOpPackageName()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Request the startup of a previously provisioned VPN. * * @throws SecurityException exception if user or device settings prevent this VPN from being * setup, or if user consent has not been granted * @deprecated This method is replaced by startProvisionedVpnProfileSession which returns a * session key for the caller to diagnose the errors. */ @Deprecated public void startProvisionedVpnProfile() { startProvisionedVpnProfileSession(); } /** Tear down the VPN provided by the calling app (if any) */ public void stopProvisionedVpnProfile() { try { Loading services/core/java/com/android/server/VpnManagerService.java +3 −2 Original line number Diff line number Diff line Loading @@ -340,17 +340,18 @@ public class VpnManagerService extends IVpnManager.Stub { * <p>This is designed to serve the VpnManager only; settings-based VPN profiles are managed * exclusively by the Settings app, and passed into the platform at startup time. * * @return A unique key corresponding to this session. * @throws IllegalArgumentException if no profile was found for the given package name. * @hide */ @Override public void startVpnProfile(@NonNull String packageName) { public String startVpnProfile(@NonNull String packageName) { final int callingUid = Binder.getCallingUid(); verifyCallingUidAndPackage(packageName, callingUid); final int user = UserHandle.getUserId(callingUid); synchronized (mVpns) { throwIfLockdownEnabled(); mVpns.get(user).startVpnProfile(packageName); return mVpns.get(user).startVpnProfile(packageName); } } Loading services/core/java/com/android/server/connectivity/Vpn.java +6 −1 Original line number Diff line number Diff line Loading @@ -151,6 +151,7 @@ import java.util.Objects; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; Loading Loading @@ -203,6 +204,7 @@ public class Vpn { private final NetworkInfo mNetworkInfo; private int mLegacyState; @VisibleForTesting protected String mPackage; private String mSessionKey; private int mOwnerUID; private boolean mIsPackageTargetingAtLeastQ; @VisibleForTesting Loading Loading @@ -2503,6 +2505,7 @@ public class Vpn { mProfile = profile; mIpSecManager = (IpSecManager) mContext.getSystemService(Context.IPSEC_SERVICE); mNetworkCallback = new VpnIkev2Utils.Ikev2VpnNetworkCallback(TAG, this); mSessionKey = UUID.randomUUID().toString(); } @Override Loading Loading @@ -2824,6 +2827,7 @@ public class Vpn { */ private void disconnectVpnRunner() { mActiveNetwork = null; mSessionKey = null; mIsRunning = false; resetIkeState(); Loading Loading @@ -3314,7 +3318,7 @@ public class Vpn { * * @param packageName the package name of the app provisioning this profile */ public synchronized void startVpnProfile(@NonNull String packageName) { public synchronized String startVpnProfile(@NonNull String packageName) { requireNonNull(packageName, "No package name provided"); enforceNotRestrictedUser(); Loading @@ -3332,6 +3336,7 @@ public class Vpn { } startVpnProfilePrivileged(profile, packageName); return mSessionKey; } finally { Binder.restoreCallingIdentity(token); } Loading Loading
core/api/current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -25606,7 +25606,8 @@ package android.net { public class VpnManager { method public void deleteProvisionedVpnProfile(); method @Nullable public android.content.Intent provisionVpnProfile(@NonNull android.net.PlatformVpnProfile); method public void startProvisionedVpnProfile(); method @Deprecated public void startProvisionedVpnProfile(); method @NonNull public String startProvisionedVpnProfileSession(); method public void stopProvisionedVpnProfile(); }
core/java/android/net/IVpnManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ interface IVpnManager { /** VpnManager APIs */ boolean provisionVpnProfile(in VpnProfile profile, String packageName); void deleteVpnProfile(String packageName); void startVpnProfile(String packageName); String startVpnProfile(String packageName); void stopVpnProfile(String packageName); /** Always-on VPN APIs */ Loading
core/java/android/net/VpnManager.java +18 −3 Original line number Diff line number Diff line Loading @@ -317,17 +317,32 @@ public class VpnManager { /** * Request the startup of a previously provisioned VPN. * * @return A unique key corresponding to this session. * @throws SecurityException exception if user or device settings prevent this VPN from being * setup, or if user consent has not been granted */ public void startProvisionedVpnProfile() { @NonNull public String startProvisionedVpnProfileSession() { try { mService.startVpnProfile(mContext.getOpPackageName()); return mService.startVpnProfile(mContext.getOpPackageName()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Request the startup of a previously provisioned VPN. * * @throws SecurityException exception if user or device settings prevent this VPN from being * setup, or if user consent has not been granted * @deprecated This method is replaced by startProvisionedVpnProfileSession which returns a * session key for the caller to diagnose the errors. */ @Deprecated public void startProvisionedVpnProfile() { startProvisionedVpnProfileSession(); } /** Tear down the VPN provided by the calling app (if any) */ public void stopProvisionedVpnProfile() { try { Loading
services/core/java/com/android/server/VpnManagerService.java +3 −2 Original line number Diff line number Diff line Loading @@ -340,17 +340,18 @@ public class VpnManagerService extends IVpnManager.Stub { * <p>This is designed to serve the VpnManager only; settings-based VPN profiles are managed * exclusively by the Settings app, and passed into the platform at startup time. * * @return A unique key corresponding to this session. * @throws IllegalArgumentException if no profile was found for the given package name. * @hide */ @Override public void startVpnProfile(@NonNull String packageName) { public String startVpnProfile(@NonNull String packageName) { final int callingUid = Binder.getCallingUid(); verifyCallingUidAndPackage(packageName, callingUid); final int user = UserHandle.getUserId(callingUid); synchronized (mVpns) { throwIfLockdownEnabled(); mVpns.get(user).startVpnProfile(packageName); return mVpns.get(user).startVpnProfile(packageName); } } Loading
services/core/java/com/android/server/connectivity/Vpn.java +6 −1 Original line number Diff line number Diff line Loading @@ -151,6 +151,7 @@ import java.util.Objects; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; Loading Loading @@ -203,6 +204,7 @@ public class Vpn { private final NetworkInfo mNetworkInfo; private int mLegacyState; @VisibleForTesting protected String mPackage; private String mSessionKey; private int mOwnerUID; private boolean mIsPackageTargetingAtLeastQ; @VisibleForTesting Loading Loading @@ -2503,6 +2505,7 @@ public class Vpn { mProfile = profile; mIpSecManager = (IpSecManager) mContext.getSystemService(Context.IPSEC_SERVICE); mNetworkCallback = new VpnIkev2Utils.Ikev2VpnNetworkCallback(TAG, this); mSessionKey = UUID.randomUUID().toString(); } @Override Loading Loading @@ -2824,6 +2827,7 @@ public class Vpn { */ private void disconnectVpnRunner() { mActiveNetwork = null; mSessionKey = null; mIsRunning = false; resetIkeState(); Loading Loading @@ -3314,7 +3318,7 @@ public class Vpn { * * @param packageName the package name of the app provisioning this profile */ public synchronized void startVpnProfile(@NonNull String packageName) { public synchronized String startVpnProfile(@NonNull String packageName) { requireNonNull(packageName, "No package name provided"); enforceNotRestrictedUser(); Loading @@ -3332,6 +3336,7 @@ public class Vpn { } startVpnProfilePrivileged(profile, packageName); return mSessionKey; } finally { Binder.restoreCallingIdentity(token); } Loading