Merge "Fix Ikev2 vpn cannot establish through startLegacyVpn()" into sc-dev

This commit is contained in:
Lucas Lin
2021-07-02 05:27:30 +00:00
committed by Android (Google) Code Review
2 changed files with 10 additions and 6 deletions

View File

@@ -377,12 +377,15 @@ public final class VpnProfile implements Cloneable, Parcelable {
/** Checks if this profile specifies a LegacyVpn type. */ /** Checks if this profile specifies a LegacyVpn type. */
public static boolean isLegacyType(int type) { public static boolean isLegacyType(int type) {
switch (type) { switch (type) {
case VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS: // fall through case VpnProfile.TYPE_PPTP:
case VpnProfile.TYPE_IKEV2_IPSEC_RSA: // fall through case VpnProfile.TYPE_L2TP_IPSEC_PSK:
case VpnProfile.TYPE_IKEV2_IPSEC_PSK: case VpnProfile.TYPE_L2TP_IPSEC_RSA:
return false; case VpnProfile.TYPE_IPSEC_XAUTH_PSK:
default: case VpnProfile.TYPE_IPSEC_XAUTH_RSA:
case VpnProfile.TYPE_IPSEC_HYBRID_RSA:
return true; return true;
default:
return false;
} }
} }

View File

@@ -357,7 +357,8 @@ public class VpnManagerService extends IVpnManager.Stub {
@SuppressWarnings("AndroidFrameworkCompatChange") // This is not an app-visible API. @SuppressWarnings("AndroidFrameworkCompatChange") // This is not an app-visible API.
@Override @Override
public void startLegacyVpn(VpnProfile profile) { public void startLegacyVpn(VpnProfile profile) {
if (Build.VERSION.DEVICE_INITIAL_SDK_INT >= Build.VERSION_CODES.S) { if (Build.VERSION.DEVICE_INITIAL_SDK_INT >= Build.VERSION_CODES.S
&& VpnProfile.isLegacyType(profile.type)) {
throw new UnsupportedOperationException("Legacy VPN is deprecated"); throw new UnsupportedOperationException("Legacy VPN is deprecated");
} }
int user = UserHandle.getUserId(mDeps.getCallingUid()); int user = UserHandle.getUserId(mDeps.getCallingUid());