diff options
author | 2024-10-01 02:11:28 +0000 | |
---|---|---|
committer | 2024-12-02 16:40:54 -0800 | |
commit | 60df934bcf486c119c36fc102aeb702df42e7a63 (patch) | |
tree | 94afc6dcb1a2098a951e43d24e972b71084d5d6c | |
parent | 642e90e95b25404378feafe108dfa97b2be954c5 (diff) |
Migrate VCN to separate non-updatable libraries
This patch migrates VCN framework code from framework-minus-apex
to framework-connectivity-b, and VCN service code to
service-connectivity-b-pre-jarjar. This patch is part of the work
to move VCN to the Tethering module.
Design doc: go/mainline-vcn-eng-design
Bug: 369703242
Test: FrameworksVcnTests, CtsVcnTestCases, CtsStrictJavaPackagesTestCases
Flag: EXEMPT code refactoring; no functional change
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ab8f06b5f32318dfd883e4bdd09e0d2a2c85a62e)
Change-Id: I747556281db2efab7115761147842d241fe283de
Merged-In: I747556281db2efab7115761147842d241fe283de
-rw-r--r-- | AconfigFlags.bp | 20 | ||||
-rw-r--r-- | Android.bp | 4 | ||||
-rw-r--r-- | core/api/current.txt | 122 | ||||
-rw-r--r-- | core/api/module-lib-current.txt | 23 | ||||
-rw-r--r-- | core/api/system-current.txt | 22 | ||||
-rw-r--r-- | packages/Vcn/TEST_MAPPING | 8 | ||||
-rw-r--r-- | packages/Vcn/flags/Android.bp | 38 | ||||
-rw-r--r-- | packages/Vcn/flags/flags.aconfig (renamed from core/java/android/net/vcn/flags.aconfig) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/Android.bp | 72 | ||||
-rw-r--r-- | packages/Vcn/framework-b/api/current.txt | 122 | ||||
-rw-r--r-- | packages/Vcn/framework-b/api/module-lib-current.txt | 27 | ||||
-rw-r--r-- | packages/Vcn/framework-b/api/system-current.txt | 22 | ||||
-rw-r--r-- | packages/Vcn/framework-b/framework-vcn-jarjar-rules.txt | 2 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/ConnectivityFrameworkInitializerBaklava.java (renamed from core/java/android/net/ConnectivityFrameworkInitializerBaklava.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/IVcnManagementService.aidl (renamed from core/java/android/net/vcn/IVcnManagementService.aidl) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/IVcnStatusCallback.aidl (renamed from core/java/android/net/vcn/IVcnStatusCallback.aidl) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/IVcnUnderlyingNetworkPolicyListener.aidl (renamed from core/java/android/net/vcn/IVcnUnderlyingNetworkPolicyListener.aidl) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java (renamed from core/java/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnConfig.aidl (renamed from core/java/android/net/vcn/VcnConfig.aidl) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnConfig.java (renamed from core/java/android/net/vcn/VcnConfig.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnGatewayConnectionConfig.java (renamed from core/java/android/net/vcn/VcnGatewayConnectionConfig.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnManager.java (renamed from core/java/android/net/vcn/VcnManager.java) | 8 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnNetworkPolicyResult.aidl (renamed from core/java/android/net/vcn/VcnNetworkPolicyResult.aidl) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnNetworkPolicyResult.java (renamed from core/java/android/net/vcn/VcnNetworkPolicyResult.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnTransportInfo.java (renamed from core/java/android/net/vcn/VcnTransportInfo.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkPolicy.aidl (renamed from core/java/android/net/vcn/VcnUnderlyingNetworkPolicy.aidl) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkPolicy.java (renamed from core/java/android/net/vcn/VcnUnderlyingNetworkPolicy.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkSpecifier.java (renamed from core/java/android/net/vcn/VcnUnderlyingNetworkSpecifier.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkTemplate.java (renamed from core/java/android/net/vcn/VcnUnderlyingNetworkTemplate.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java (renamed from core/java/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/CertUtils.java (renamed from core/java/android/net/vcn/persistablebundleutils/CertUtils.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/ChildSaProposalUtils.java (renamed from core/java/android/net/vcn/persistablebundleutils/ChildSaProposalUtils.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/EapSessionConfigUtils.java (renamed from core/java/android/net/vcn/persistablebundleutils/EapSessionConfigUtils.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeIdentificationUtils.java (renamed from core/java/android/net/vcn/persistablebundleutils/IkeIdentificationUtils.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeSaProposalUtils.java (renamed from core/java/android/net/vcn/persistablebundleutils/IkeSaProposalUtils.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeSessionParamsUtils.java (renamed from core/java/android/net/vcn/persistablebundleutils/IkeSessionParamsUtils.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeTrafficSelectorUtils.java (renamed from core/java/android/net/vcn/persistablebundleutils/IkeTrafficSelectorUtils.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/SaProposalUtilsBase.java (renamed from core/java/android/net/vcn/persistablebundleutils/SaProposalUtilsBase.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/TunnelConnectionParamsUtils.java (renamed from core/java/android/net/vcn/persistablebundleutils/TunnelConnectionParamsUtils.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/TunnelModeChildSessionParamsUtils.java (renamed from core/java/android/net/vcn/persistablebundleutils/TunnelModeChildSessionParamsUtils.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/util/LogUtils.java (renamed from core/java/android/net/vcn/util/LogUtils.java) | 2 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/util/MtuUtils.java (renamed from core/java/android/net/vcn/util/MtuUtils.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/util/OneWayBoolean.java (renamed from core/java/android/net/vcn/util/OneWayBoolean.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/framework-b/src/android/net/vcn/util/PersistableBundleUtils.java (renamed from core/java/android/net/vcn/util/PersistableBundleUtils.java) | 2 | ||||
-rw-r--r-- | packages/Vcn/service-b/Android.bp | 53 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/VcnManagementService.java (renamed from services/core/java/com/android/server/VcnManagementService.java) | 66 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/vcn/TelephonySubscriptionTracker.java (renamed from services/core/java/com/android/server/vcn/TelephonySubscriptionTracker.java) | 2 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/vcn/Vcn.java (renamed from services/core/java/com/android/server/vcn/Vcn.java) | 2 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/vcn/VcnContext.java (renamed from services/core/java/com/android/server/vcn/VcnContext.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/vcn/VcnGatewayConnection.java (renamed from services/core/java/com/android/server/vcn/VcnGatewayConnection.java) | 4 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/vcn/VcnNetworkProvider.java (renamed from services/core/java/com/android/server/vcn/VcnNetworkProvider.java) | 2 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/vcn/routeselection/IpSecPacketLossDetector.java (renamed from services/core/java/com/android/server/vcn/routeselection/IpSecPacketLossDetector.java) | 2 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/vcn/routeselection/NetworkMetricMonitor.java (renamed from services/core/java/com/android/server/vcn/routeselection/NetworkMetricMonitor.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java (renamed from services/core/java/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/vcn/routeselection/UnderlyingNetworkController.java (renamed from services/core/java/com/android/server/vcn/routeselection/UnderlyingNetworkController.java) | 2 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/vcn/routeselection/UnderlyingNetworkEvaluator.java (renamed from services/core/java/com/android/server/vcn/routeselection/UnderlyingNetworkEvaluator.java) | 0 | ||||
-rw-r--r-- | packages/Vcn/service-b/src/com/android/server/vcn/routeselection/UnderlyingNetworkRecord.java (renamed from services/core/java/com/android/server/vcn/routeselection/UnderlyingNetworkRecord.java) | 0 | ||||
-rw-r--r-- | services/Android.bp | 4 | ||||
-rw-r--r-- | services/core/java/com/android/server/vcn/TEST_MAPPING | 10 | ||||
-rw-r--r-- | tests/vcn/Android.bp | 5 | ||||
-rw-r--r-- | tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java | 3 |
61 files changed, 404 insertions, 245 deletions
diff --git a/AconfigFlags.bp b/AconfigFlags.bp index 777228292eb5..ed46cddc24e7 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -49,7 +49,6 @@ aconfig_declarations_group { "android.media.tv.flags-aconfig-java", "android.multiuser.flags-aconfig-java", "android.net.platform.flags-aconfig-java", - "android.net.vcn.flags-aconfig-java-export", "android.net.wifi.flags-aconfig-java", "android.nfc.flags-aconfig-java", "android.os.flags-aconfig-java", @@ -1068,25 +1067,6 @@ java_aconfig_library { defaults: ["framework-minus-apex-aconfig-java-defaults"], } -// VCN -// TODO:376339506 Move the VCN code, the flag declaration and -// java_aconfig_library to framework-connectivity-b -aconfig_declarations { - name: "android.net.vcn.flags-aconfig", - package: "android.net.vcn", - container: "com.android.tethering", - exportable: true, - srcs: ["core/java/android/net/vcn/*.aconfig"], -} - -java_aconfig_library { - name: "android.net.vcn.flags-aconfig-java-export", - aconfig_declarations: "android.net.vcn.flags-aconfig", - mode: "exported", - min_sdk_version: "35", - defaults: ["framework-minus-apex-aconfig-java-defaults"], -} - // DevicePolicy aconfig_declarations { name: "device_policy_aconfig_flags", diff --git a/Android.bp b/Android.bp index 20e58ed377a8..68048c6bd445 100644 --- a/Android.bp +++ b/Android.bp @@ -87,6 +87,7 @@ filegroup { ":framework-wifi-non-updatable-sources", ":PacProcessor-aidl-sources", ":ProxyHandler-aidl-sources", + ":vcn-utils-platform-sources", ":net-utils-framework-common-srcs", // AIDL from frameworks/base/native/ @@ -314,6 +315,7 @@ java_defaults { ":framework-telephony-sources", ":framework-wifi-annotations", ":framework-wifi-non-updatable-sources", + ":vcn-utils-platform-sources", ":PacProcessor-aidl-sources", ":ProxyHandler-aidl-sources", ":net-utils-framework-common-srcs", @@ -582,7 +584,7 @@ filegroup { srcs: [ "core/java/com/android/internal/util/HexDump.java", "core/java/com/android/internal/util/WakeupMessage.java", - "core/java/android/net/vcn/util/PersistableBundleUtils.java", + "packages/Vcn/framework-b/src/android/net/vcn/util/PersistableBundleUtils.java", "telephony/java/android/telephony/Annotation.java", ], } diff --git a/core/api/current.txt b/core/api/current.txt index 7915509c1381..3effcc629b20 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -29468,128 +29468,6 @@ package android.net.sip { } -package android.net.vcn { - - public final class VcnCellUnderlyingNetworkTemplate extends android.net.vcn.VcnUnderlyingNetworkTemplate { - method public int getCbs(); - method public int getDun(); - method public int getIms(); - method public int getInternet(); - method public int getMms(); - method @NonNull public java.util.Set<java.lang.String> getOperatorPlmnIds(); - method public int getOpportunistic(); - method public int getRcs(); - method public int getRoaming(); - method @NonNull public java.util.Set<java.lang.Integer> getSimSpecificCarrierIds(); - } - - public static final class VcnCellUnderlyingNetworkTemplate.Builder { - ctor public VcnCellUnderlyingNetworkTemplate.Builder(); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate build(); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setCbs(int); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setDun(int); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setIms(int); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setInternet(int); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setMetered(int); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setMinDownstreamBandwidthKbps(int, int); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setMinUpstreamBandwidthKbps(int, int); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setMms(int); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setOperatorPlmnIds(@NonNull java.util.Set<java.lang.String>); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setOpportunistic(int); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setRcs(int); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setRoaming(int); - method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setSimSpecificCarrierIds(@NonNull java.util.Set<java.lang.Integer>); - } - - public final class VcnConfig implements android.os.Parcelable { - method public int describeContents(); - method @NonNull public java.util.Set<android.net.vcn.VcnGatewayConnectionConfig> getGatewayConnectionConfigs(); - method @NonNull public java.util.Set<java.lang.Integer> getRestrictedUnderlyingNetworkTransports(); - method public void writeToParcel(@NonNull android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator<android.net.vcn.VcnConfig> CREATOR; - } - - public static final class VcnConfig.Builder { - ctor public VcnConfig.Builder(@NonNull android.content.Context); - method @NonNull public android.net.vcn.VcnConfig.Builder addGatewayConnectionConfig(@NonNull android.net.vcn.VcnGatewayConnectionConfig); - method @NonNull public android.net.vcn.VcnConfig build(); - method @NonNull public android.net.vcn.VcnConfig.Builder setRestrictedUnderlyingNetworkTransports(@NonNull java.util.Set<java.lang.Integer>); - } - - public final class VcnGatewayConnectionConfig { - method @NonNull public int[] getExposedCapabilities(); - method @NonNull public String getGatewayConnectionName(); - method @IntRange(from=0x500) public int getMaxMtu(); - method public int getMinUdpPort4500NatTimeoutSeconds(); - method @NonNull public long[] getRetryIntervalsMillis(); - method @NonNull public java.util.List<android.net.vcn.VcnUnderlyingNetworkTemplate> getVcnUnderlyingNetworkPriorities(); - method public boolean hasGatewayOption(int); - method @FlaggedApi("android.net.vcn.safe_mode_config") public boolean isSafeModeEnabled(); - field @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public static final int MIN_UDP_PORT_4500_NAT_TIMEOUT_UNSET = -1; // 0xffffffff - field public static final int VCN_GATEWAY_OPTION_ENABLE_DATA_STALL_RECOVERY_WITH_MOBILITY = 0; // 0x0 - } - - public static final class VcnGatewayConnectionConfig.Builder { - ctor public VcnGatewayConnectionConfig.Builder(@NonNull String, @NonNull android.net.ipsec.ike.IkeTunnelConnectionParams); - method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder addExposedCapability(int); - method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder addGatewayOption(int); - method @NonNull public android.net.vcn.VcnGatewayConnectionConfig build(); - method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder removeExposedCapability(int); - method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder removeGatewayOption(int); - method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder setMaxMtu(@IntRange(from=0x500) int); - method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder setMinUdpPort4500NatTimeoutSeconds(@IntRange(from=0x78) int); - method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder setRetryIntervalsMillis(@NonNull long[]); - method @FlaggedApi("android.net.vcn.safe_mode_config") @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder setSafeModeEnabled(boolean); - method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder setVcnUnderlyingNetworkPriorities(@NonNull java.util.List<android.net.vcn.VcnUnderlyingNetworkTemplate>); - } - - public class VcnManager { - method @RequiresPermission("carrier privileges") public void clearVcnConfig(@NonNull android.os.ParcelUuid) throws java.io.IOException; - method @NonNull public java.util.List<android.os.ParcelUuid> getConfiguredSubscriptionGroups(); - method public void registerVcnStatusCallback(@NonNull android.os.ParcelUuid, @NonNull java.util.concurrent.Executor, @NonNull android.net.vcn.VcnManager.VcnStatusCallback); - method @RequiresPermission("carrier privileges") public void setVcnConfig(@NonNull android.os.ParcelUuid, @NonNull android.net.vcn.VcnConfig) throws java.io.IOException; - method public void unregisterVcnStatusCallback(@NonNull android.net.vcn.VcnManager.VcnStatusCallback); - field public static final int VCN_ERROR_CODE_CONFIG_ERROR = 1; // 0x1 - field public static final int VCN_ERROR_CODE_INTERNAL_ERROR = 0; // 0x0 - field public static final int VCN_ERROR_CODE_NETWORK_ERROR = 2; // 0x2 - field public static final int VCN_STATUS_CODE_ACTIVE = 2; // 0x2 - field public static final int VCN_STATUS_CODE_INACTIVE = 1; // 0x1 - field public static final int VCN_STATUS_CODE_NOT_CONFIGURED = 0; // 0x0 - field public static final int VCN_STATUS_CODE_SAFE_MODE = 3; // 0x3 - } - - public abstract static class VcnManager.VcnStatusCallback { - ctor public VcnManager.VcnStatusCallback(); - method public abstract void onGatewayConnectionError(@NonNull String, int, @Nullable Throwable); - method public abstract void onStatusChanged(int); - } - - public abstract class VcnUnderlyingNetworkTemplate { - method public int getMetered(); - method public int getMinEntryDownstreamBandwidthKbps(); - method public int getMinEntryUpstreamBandwidthKbps(); - method public int getMinExitDownstreamBandwidthKbps(); - method public int getMinExitUpstreamBandwidthKbps(); - field public static final int MATCH_ANY = 0; // 0x0 - field public static final int MATCH_FORBIDDEN = 2; // 0x2 - field public static final int MATCH_REQUIRED = 1; // 0x1 - } - - public final class VcnWifiUnderlyingNetworkTemplate extends android.net.vcn.VcnUnderlyingNetworkTemplate { - method @NonNull public java.util.Set<java.lang.String> getSsids(); - } - - public static final class VcnWifiUnderlyingNetworkTemplate.Builder { - ctor public VcnWifiUnderlyingNetworkTemplate.Builder(); - method @NonNull public android.net.vcn.VcnWifiUnderlyingNetworkTemplate build(); - method @NonNull public android.net.vcn.VcnWifiUnderlyingNetworkTemplate.Builder setMetered(int); - method @NonNull public android.net.vcn.VcnWifiUnderlyingNetworkTemplate.Builder setMinDownstreamBandwidthKbps(int, int); - method @NonNull public android.net.vcn.VcnWifiUnderlyingNetworkTemplate.Builder setMinUpstreamBandwidthKbps(int, int); - method @NonNull public android.net.vcn.VcnWifiUnderlyingNetworkTemplate.Builder setSsids(@NonNull java.util.Set<java.lang.String>); - } - -} - package android.opengl { public class EGL14 { diff --git a/core/api/module-lib-current.txt b/core/api/module-lib-current.txt index 149e474055be..95bf649e8185 100644 --- a/core/api/module-lib-current.txt +++ b/core/api/module-lib-current.txt @@ -273,10 +273,6 @@ package android.media.session { package android.net { - @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public final class ConnectivityFrameworkInitializerBaklava { - method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public static void registerServiceWrappers(); - } - public class LocalSocket implements java.io.Closeable { ctor public LocalSocket(@NonNull java.io.FileDescriptor); } @@ -336,25 +332,6 @@ package android.net.netstats { } -package android.net.vcn { - - @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public final class VcnTransportInfo implements android.os.Parcelable android.net.TransportInfo { - method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public int describeContents(); - method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public long getApplicableRedactions(); - method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public int getMinUdpPort4500NatTimeoutSeconds(); - method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") @NonNull public android.net.TransportInfo makeCopy(long); - method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public void writeToParcel(@NonNull android.os.Parcel, int); - field @FlaggedApi("android.net.vcn.mainline_vcn_module_api") @NonNull public static final android.os.Parcelable.Creator<android.net.vcn.VcnTransportInfo> CREATOR; - } - - @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public static final class VcnTransportInfo.Builder { - ctor @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public VcnTransportInfo.Builder(); - method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") @NonNull public android.net.vcn.VcnTransportInfo build(); - method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") @NonNull public android.net.vcn.VcnTransportInfo.Builder setMinUdpPort4500NatTimeoutSeconds(@IntRange(from=0x78) int); - } - -} - package android.nfc { public class NfcServiceManager { diff --git a/core/api/system-current.txt b/core/api/system-current.txt index f94c97e2076c..f722ba24c6b4 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -9977,28 +9977,6 @@ package android.net.util { } -package android.net.vcn { - - public class VcnManager { - method @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public void addVcnNetworkPolicyChangeListener(@NonNull java.util.concurrent.Executor, @NonNull android.net.vcn.VcnManager.VcnNetworkPolicyChangeListener); - method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public android.net.vcn.VcnNetworkPolicyResult applyVcnNetworkPolicy(@NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties); - method @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public void removeVcnNetworkPolicyChangeListener(@NonNull android.net.vcn.VcnManager.VcnNetworkPolicyChangeListener); - } - - public static interface VcnManager.VcnNetworkPolicyChangeListener { - method public void onPolicyChanged(); - } - - public final class VcnNetworkPolicyResult implements android.os.Parcelable { - method public int describeContents(); - method @NonNull public android.net.NetworkCapabilities getNetworkCapabilities(); - method public boolean isTeardownRequested(); - method public void writeToParcel(@NonNull android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator<android.net.vcn.VcnNetworkPolicyResult> CREATOR; - } - -} - package android.net.wifi { public final class WifiKeystore { diff --git a/packages/Vcn/TEST_MAPPING b/packages/Vcn/TEST_MAPPING index bde88fe9b717..9722a838ab8e 100644 --- a/packages/Vcn/TEST_MAPPING +++ b/packages/Vcn/TEST_MAPPING @@ -1,4 +1,12 @@ { + "presubmit": [ + { + "name": "FrameworksVcnTests" + }, + { + "name": "CtsVcnTestCases" + } + ], "postsubmit": [ { "name": "FrameworksVcnTests" diff --git a/packages/Vcn/flags/Android.bp b/packages/Vcn/flags/Android.bp new file mode 100644 index 000000000000..3943c6f7fe24 --- /dev/null +++ b/packages/Vcn/flags/Android.bp @@ -0,0 +1,38 @@ +// +// Copyright (C) 2024 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package { + default_team: "trendy_team_enigma", + default_applicable_licenses: ["Android-Apache-2.0"], +} + +aconfig_declarations { + name: "android.net.vcn.flags-aconfig", + package: "android.net.vcn", + container: "com.android.tethering", + exportable: true, + srcs: [ + "flags.aconfig", + ], +} + +java_aconfig_library { + name: "android.net.vcn.flags-aconfig-java-export", + aconfig_declarations: "android.net.vcn.flags-aconfig", + mode: "exported", + min_sdk_version: "35", + defaults: ["framework-minus-apex-aconfig-java-defaults"], +} diff --git a/core/java/android/net/vcn/flags.aconfig b/packages/Vcn/flags/flags.aconfig index b461f95fec53..b461f95fec53 100644 --- a/core/java/android/net/vcn/flags.aconfig +++ b/packages/Vcn/flags/flags.aconfig diff --git a/packages/Vcn/framework-b/Android.bp b/packages/Vcn/framework-b/Android.bp index 8b010c7f2ee7..c3121162b7f2 100644 --- a/packages/Vcn/framework-b/Android.bp +++ b/packages/Vcn/framework-b/Android.bp @@ -19,6 +19,18 @@ package { default_applicable_licenses: ["Android-Apache-2.0"], } +filegroup { + name: "vcn-utils-platform-sources", + srcs: [ + "src/android/net/vcn/persistablebundleutils/**/*.java", + "src/android/net/vcn/util/**/*.java", + ], + path: "src", + visibility: [ + "//frameworks/base", // For VpnProfile.java and Vpn.java + ], +} + java_defaults { name: "framework-connectivity-b-defaults", sdk_version: "module_current", @@ -27,7 +39,25 @@ java_defaults { srcs: [ "src/**/*.java", + "src/**/*.aidl", + ], + + libs: [ + "android.net.ipsec.ike.stubs.module_lib", + "app-compat-annotations", + "framework-wifi.stubs.module_lib", + "unsupportedappusage", + ], + static_libs: [ + //TODO:375213246 Use a non-exported flag lib when VCN is in mainline + "android.net.vcn.flags-aconfig-java-export", ], + aidl: { + include_dirs: [ + // For connectivity-framework classes such as Network.aidl, NetworkCapabilities.aidl + "packages/modules/Connectivity/framework/aidl-export", + ], + }, } java_sdk_library { @@ -36,10 +66,37 @@ java_sdk_library { "framework-connectivity-b-defaults", ], + //TODO: b/375213246 Use "framework-connectivity-jarjar-rules" when VCN is + // in mainline + jarjar_rules: "framework-vcn-jarjar-rules.txt", + permitted_packages: [ + "android.net", + "android.net.vcn", + "com.android.server.vcn.util", + + ], + api_packages: [ + "android.net", "android.net.vcn", ], + // Allow VCN APIs to reference APIs in IKE and Connectivity + stub_only_libs: [ + "android.net.ipsec.ike.stubs.module_lib", + "framework-connectivity.stubs.module_lib", + ], + + // To use non-jarjard names of utilities such as android.util.IndentingPrintWriter + impl_only_libs: [ + "framework-connectivity-pre-jarjar", + ], + + aconfig_declarations: [ + //TODO:375213246 Use a non-exported flag lib when VCN is in mainline + "android.net.vcn.flags-aconfig-java-export", + ], + impl_library_visibility: [ // Using for test only "//cts/tests/netlegacy22.api", @@ -63,5 +120,18 @@ java_sdk_library { "//packages/modules/Wifi/service/tests/wifitests", ], - // TODO: b/375213246 Expose this library to Tethering module + apex_available: [ + // TODO: b/374174952 Remove it when VCN modularization is released + "//apex_available:platform", + + "com.android.tethering", + ], +} + +java_library { + name: "framework-connectivity-b-pre-jarjar", + defaults: ["framework-connectivity-b-defaults"], + libs: [ + "framework-connectivity-pre-jarjar", + ], } diff --git a/packages/Vcn/framework-b/api/current.txt b/packages/Vcn/framework-b/api/current.txt index d802177e249b..831b74158e67 100644 --- a/packages/Vcn/framework-b/api/current.txt +++ b/packages/Vcn/framework-b/api/current.txt @@ -1 +1,123 @@ // Signature format: 2.0 +package android.net.vcn { + + public final class VcnCellUnderlyingNetworkTemplate extends android.net.vcn.VcnUnderlyingNetworkTemplate { + method public int getCbs(); + method public int getDun(); + method public int getIms(); + method public int getInternet(); + method public int getMms(); + method @NonNull public java.util.Set<java.lang.String> getOperatorPlmnIds(); + method public int getOpportunistic(); + method public int getRcs(); + method public int getRoaming(); + method @NonNull public java.util.Set<java.lang.Integer> getSimSpecificCarrierIds(); + } + + public static final class VcnCellUnderlyingNetworkTemplate.Builder { + ctor public VcnCellUnderlyingNetworkTemplate.Builder(); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate build(); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setCbs(int); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setDun(int); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setIms(int); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setInternet(int); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setMetered(int); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setMinDownstreamBandwidthKbps(int, int); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setMinUpstreamBandwidthKbps(int, int); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setMms(int); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setOperatorPlmnIds(@NonNull java.util.Set<java.lang.String>); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setOpportunistic(int); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setRcs(int); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setRoaming(int); + method @NonNull public android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder setSimSpecificCarrierIds(@NonNull java.util.Set<java.lang.Integer>); + } + + public final class VcnConfig implements android.os.Parcelable { + method public int describeContents(); + method @NonNull public java.util.Set<android.net.vcn.VcnGatewayConnectionConfig> getGatewayConnectionConfigs(); + method @NonNull public java.util.Set<java.lang.Integer> getRestrictedUnderlyingNetworkTransports(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.net.vcn.VcnConfig> CREATOR; + } + + public static final class VcnConfig.Builder { + ctor public VcnConfig.Builder(@NonNull android.content.Context); + method @NonNull public android.net.vcn.VcnConfig.Builder addGatewayConnectionConfig(@NonNull android.net.vcn.VcnGatewayConnectionConfig); + method @NonNull public android.net.vcn.VcnConfig build(); + method @NonNull public android.net.vcn.VcnConfig.Builder setRestrictedUnderlyingNetworkTransports(@NonNull java.util.Set<java.lang.Integer>); + } + + public final class VcnGatewayConnectionConfig { + method @NonNull public int[] getExposedCapabilities(); + method @NonNull public String getGatewayConnectionName(); + method @IntRange(from=0x500) public int getMaxMtu(); + method public int getMinUdpPort4500NatTimeoutSeconds(); + method @NonNull public long[] getRetryIntervalsMillis(); + method @NonNull public java.util.List<android.net.vcn.VcnUnderlyingNetworkTemplate> getVcnUnderlyingNetworkPriorities(); + method public boolean hasGatewayOption(int); + method @FlaggedApi("android.net.vcn.safe_mode_config") public boolean isSafeModeEnabled(); + field @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public static final int MIN_UDP_PORT_4500_NAT_TIMEOUT_UNSET = -1; // 0xffffffff + field public static final int VCN_GATEWAY_OPTION_ENABLE_DATA_STALL_RECOVERY_WITH_MOBILITY = 0; // 0x0 + } + + public static final class VcnGatewayConnectionConfig.Builder { + ctor public VcnGatewayConnectionConfig.Builder(@NonNull String, @NonNull android.net.ipsec.ike.IkeTunnelConnectionParams); + method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder addExposedCapability(int); + method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder addGatewayOption(int); + method @NonNull public android.net.vcn.VcnGatewayConnectionConfig build(); + method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder removeExposedCapability(int); + method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder removeGatewayOption(int); + method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder setMaxMtu(@IntRange(from=0x500) int); + method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder setMinUdpPort4500NatTimeoutSeconds(@IntRange(from=0x78) int); + method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder setRetryIntervalsMillis(@NonNull long[]); + method @FlaggedApi("android.net.vcn.safe_mode_config") @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder setSafeModeEnabled(boolean); + method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder setVcnUnderlyingNetworkPriorities(@NonNull java.util.List<android.net.vcn.VcnUnderlyingNetworkTemplate>); + } + + public class VcnManager { + method @RequiresPermission("carrier privileges") public void clearVcnConfig(@NonNull android.os.ParcelUuid) throws java.io.IOException; + method @NonNull public java.util.List<android.os.ParcelUuid> getConfiguredSubscriptionGroups(); + method public void registerVcnStatusCallback(@NonNull android.os.ParcelUuid, @NonNull java.util.concurrent.Executor, @NonNull android.net.vcn.VcnManager.VcnStatusCallback); + method @RequiresPermission("carrier privileges") public void setVcnConfig(@NonNull android.os.ParcelUuid, @NonNull android.net.vcn.VcnConfig) throws java.io.IOException; + method public void unregisterVcnStatusCallback(@NonNull android.net.vcn.VcnManager.VcnStatusCallback); + field public static final int VCN_ERROR_CODE_CONFIG_ERROR = 1; // 0x1 + field public static final int VCN_ERROR_CODE_INTERNAL_ERROR = 0; // 0x0 + field public static final int VCN_ERROR_CODE_NETWORK_ERROR = 2; // 0x2 + field public static final int VCN_STATUS_CODE_ACTIVE = 2; // 0x2 + field public static final int VCN_STATUS_CODE_INACTIVE = 1; // 0x1 + field public static final int VCN_STATUS_CODE_NOT_CONFIGURED = 0; // 0x0 + field public static final int VCN_STATUS_CODE_SAFE_MODE = 3; // 0x3 + } + + public abstract static class VcnManager.VcnStatusCallback { + ctor public VcnManager.VcnStatusCallback(); + method public abstract void onGatewayConnectionError(@NonNull String, int, @Nullable Throwable); + method public abstract void onStatusChanged(int); + } + + public abstract class VcnUnderlyingNetworkTemplate { + method public int getMetered(); + method public int getMinEntryDownstreamBandwidthKbps(); + method public int getMinEntryUpstreamBandwidthKbps(); + method public int getMinExitDownstreamBandwidthKbps(); + method public int getMinExitUpstreamBandwidthKbps(); + field public static final int MATCH_ANY = 0; // 0x0 + field public static final int MATCH_FORBIDDEN = 2; // 0x2 + field public static final int MATCH_REQUIRED = 1; // 0x1 + } + + public final class VcnWifiUnderlyingNetworkTemplate extends android.net.vcn.VcnUnderlyingNetworkTemplate { + method @NonNull public java.util.Set<java.lang.String> getSsids(); + } + + public static final class VcnWifiUnderlyingNetworkTemplate.Builder { + ctor public VcnWifiUnderlyingNetworkTemplate.Builder(); + method @NonNull public android.net.vcn.VcnWifiUnderlyingNetworkTemplate build(); + method @NonNull public android.net.vcn.VcnWifiUnderlyingNetworkTemplate.Builder setMetered(int); + method @NonNull public android.net.vcn.VcnWifiUnderlyingNetworkTemplate.Builder setMinDownstreamBandwidthKbps(int, int); + method @NonNull public android.net.vcn.VcnWifiUnderlyingNetworkTemplate.Builder setMinUpstreamBandwidthKbps(int, int); + method @NonNull public android.net.vcn.VcnWifiUnderlyingNetworkTemplate.Builder setSsids(@NonNull java.util.Set<java.lang.String>); + } + +} + diff --git a/packages/Vcn/framework-b/api/module-lib-current.txt b/packages/Vcn/framework-b/api/module-lib-current.txt index d802177e249b..8961b2830f86 100644 --- a/packages/Vcn/framework-b/api/module-lib-current.txt +++ b/packages/Vcn/framework-b/api/module-lib-current.txt @@ -1 +1,28 @@ // Signature format: 2.0 +package android.net { + + @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public final class ConnectivityFrameworkInitializerBaklava { + method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public static void registerServiceWrappers(); + } + +} + +package android.net.vcn { + + @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public final class VcnTransportInfo implements android.os.Parcelable android.net.TransportInfo { + method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public int describeContents(); + method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public long getApplicableRedactions(); + method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public int getMinUdpPort4500NatTimeoutSeconds(); + method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") @NonNull public android.net.TransportInfo makeCopy(long); + method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public void writeToParcel(@NonNull android.os.Parcel, int); + field @FlaggedApi("android.net.vcn.mainline_vcn_module_api") @NonNull public static final android.os.Parcelable.Creator<android.net.vcn.VcnTransportInfo> CREATOR; + } + + @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public static final class VcnTransportInfo.Builder { + ctor @FlaggedApi("android.net.vcn.mainline_vcn_module_api") public VcnTransportInfo.Builder(); + method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") @NonNull public android.net.vcn.VcnTransportInfo build(); + method @FlaggedApi("android.net.vcn.mainline_vcn_module_api") @NonNull public android.net.vcn.VcnTransportInfo.Builder setMinUdpPort4500NatTimeoutSeconds(@IntRange(from=0x78) int); + } + +} + diff --git a/packages/Vcn/framework-b/api/system-current.txt b/packages/Vcn/framework-b/api/system-current.txt index d802177e249b..9c5a67701b74 100644 --- a/packages/Vcn/framework-b/api/system-current.txt +++ b/packages/Vcn/framework-b/api/system-current.txt @@ -1 +1,23 @@ // Signature format: 2.0 +package android.net.vcn { + + public class VcnManager { + method @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public void addVcnNetworkPolicyChangeListener(@NonNull java.util.concurrent.Executor, @NonNull android.net.vcn.VcnManager.VcnNetworkPolicyChangeListener); + method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public android.net.vcn.VcnNetworkPolicyResult applyVcnNetworkPolicy(@NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties); + method @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public void removeVcnNetworkPolicyChangeListener(@NonNull android.net.vcn.VcnManager.VcnNetworkPolicyChangeListener); + } + + public static interface VcnManager.VcnNetworkPolicyChangeListener { + method public void onPolicyChanged(); + } + + public final class VcnNetworkPolicyResult implements android.os.Parcelable { + method public int describeContents(); + method @NonNull public android.net.NetworkCapabilities getNetworkCapabilities(); + method public boolean isTeardownRequested(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.net.vcn.VcnNetworkPolicyResult> CREATOR; + } + +} + diff --git a/packages/Vcn/framework-b/framework-vcn-jarjar-rules.txt b/packages/Vcn/framework-b/framework-vcn-jarjar-rules.txt new file mode 100644 index 000000000000..757043bdbbc0 --- /dev/null +++ b/packages/Vcn/framework-b/framework-vcn-jarjar-rules.txt @@ -0,0 +1,2 @@ +rule android.net.vcn.persistablebundleutils.** android.net.vcn.module.repackaged.persistablebundleutils.@1 +rule android.net.vcn.util.** android.net.vcn.module.repackaged.util.@1
\ No newline at end of file diff --git a/core/java/android/net/ConnectivityFrameworkInitializerBaklava.java b/packages/Vcn/framework-b/src/android/net/ConnectivityFrameworkInitializerBaklava.java index 1f0fa92d7976..1f0fa92d7976 100644 --- a/core/java/android/net/ConnectivityFrameworkInitializerBaklava.java +++ b/packages/Vcn/framework-b/src/android/net/ConnectivityFrameworkInitializerBaklava.java diff --git a/core/java/android/net/vcn/IVcnManagementService.aidl b/packages/Vcn/framework-b/src/android/net/vcn/IVcnManagementService.aidl index e16f6b167750..e16f6b167750 100644 --- a/core/java/android/net/vcn/IVcnManagementService.aidl +++ b/packages/Vcn/framework-b/src/android/net/vcn/IVcnManagementService.aidl diff --git a/core/java/android/net/vcn/IVcnStatusCallback.aidl b/packages/Vcn/framework-b/src/android/net/vcn/IVcnStatusCallback.aidl index 11bc443c9dd6..11bc443c9dd6 100644 --- a/core/java/android/net/vcn/IVcnStatusCallback.aidl +++ b/packages/Vcn/framework-b/src/android/net/vcn/IVcnStatusCallback.aidl diff --git a/core/java/android/net/vcn/IVcnUnderlyingNetworkPolicyListener.aidl b/packages/Vcn/framework-b/src/android/net/vcn/IVcnUnderlyingNetworkPolicyListener.aidl index 62de8216ce54..62de8216ce54 100644 --- a/core/java/android/net/vcn/IVcnUnderlyingNetworkPolicyListener.aidl +++ b/packages/Vcn/framework-b/src/android/net/vcn/IVcnUnderlyingNetworkPolicyListener.aidl diff --git a/core/java/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java b/packages/Vcn/framework-b/src/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java index ded94159a945..ded94159a945 100644 --- a/core/java/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java diff --git a/core/java/android/net/vcn/VcnConfig.aidl b/packages/Vcn/framework-b/src/android/net/vcn/VcnConfig.aidl index 67006a42a701..67006a42a701 100644 --- a/core/java/android/net/vcn/VcnConfig.aidl +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnConfig.aidl diff --git a/core/java/android/net/vcn/VcnConfig.java b/packages/Vcn/framework-b/src/android/net/vcn/VcnConfig.java index 0d0efb2f73f9..0d0efb2f73f9 100644 --- a/core/java/android/net/vcn/VcnConfig.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnConfig.java diff --git a/core/java/android/net/vcn/VcnGatewayConnectionConfig.java b/packages/Vcn/framework-b/src/android/net/vcn/VcnGatewayConnectionConfig.java index 067144e6f474..067144e6f474 100644 --- a/core/java/android/net/vcn/VcnGatewayConnectionConfig.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnGatewayConnectionConfig.java diff --git a/core/java/android/net/vcn/VcnManager.java b/packages/Vcn/framework-b/src/android/net/vcn/VcnManager.java index f275714e2cf5..594bbb8a2015 100644 --- a/core/java/android/net/vcn/VcnManager.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnManager.java @@ -334,7 +334,7 @@ public class VcnManager { * @param executor the Executor that will be used for invoking all calls to the specified * Listener * @param listener the VcnUnderlyingNetworkPolicyListener to be added - * @throws SecurityException if the caller does not have permission NETWORK_FACTORY + * @throws SecurityException if the caller does not have the required permission * @throws IllegalStateException if the specified VcnUnderlyingNetworkPolicyListener is already * registered * @hide @@ -423,7 +423,7 @@ public class VcnManager { * @param executor the Executor that will be used for invoking all calls to the specified * Listener * @param listener the VcnNetworkPolicyChangeListener to be added - * @throws SecurityException if the caller does not have permission NETWORK_FACTORY + * @throws SecurityException if the caller does not have the required permission * @throws IllegalStateException if the specified VcnNetworkPolicyChangeListener is already * registered * @hide @@ -455,7 +455,7 @@ public class VcnManager { * <p>If the specified listener is not currently registered, this is a no-op. * * @param listener the VcnNetworkPolicyChangeListener that will be removed - * @throws SecurityException if the caller does not have permission NETWORK_FACTORY + * @throws SecurityException if the caller does not have the required permission * @hide */ @SystemApi @@ -489,7 +489,7 @@ public class VcnManager { * policy result for this Network. * @param linkProperties the LinkProperties to be used in determining the Network policy result * for this Network. - * @throws SecurityException if the caller does not have permission NETWORK_FACTORY + * @throws SecurityException if the caller does not have the required permission * @return the {@link VcnNetworkPolicyResult} to be used for this Network. * @hide */ diff --git a/core/java/android/net/vcn/VcnNetworkPolicyResult.aidl b/packages/Vcn/framework-b/src/android/net/vcn/VcnNetworkPolicyResult.aidl index 3f13abe869da..3f13abe869da 100644 --- a/core/java/android/net/vcn/VcnNetworkPolicyResult.aidl +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnNetworkPolicyResult.aidl diff --git a/core/java/android/net/vcn/VcnNetworkPolicyResult.java b/packages/Vcn/framework-b/src/android/net/vcn/VcnNetworkPolicyResult.java index fca084a00a79..fca084a00a79 100644 --- a/core/java/android/net/vcn/VcnNetworkPolicyResult.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnNetworkPolicyResult.java diff --git a/core/java/android/net/vcn/VcnTransportInfo.java b/packages/Vcn/framework-b/src/android/net/vcn/VcnTransportInfo.java index 3638429f33fb..3638429f33fb 100644 --- a/core/java/android/net/vcn/VcnTransportInfo.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnTransportInfo.java diff --git a/core/java/android/net/vcn/VcnUnderlyingNetworkPolicy.aidl b/packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkPolicy.aidl index 6cb6ee685a64..6cb6ee685a64 100644 --- a/core/java/android/net/vcn/VcnUnderlyingNetworkPolicy.aidl +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkPolicy.aidl diff --git a/core/java/android/net/vcn/VcnUnderlyingNetworkPolicy.java b/packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkPolicy.java index 2b5305d05dcd..2b5305d05dcd 100644 --- a/core/java/android/net/vcn/VcnUnderlyingNetworkPolicy.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkPolicy.java diff --git a/core/java/android/net/vcn/VcnUnderlyingNetworkSpecifier.java b/packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkSpecifier.java index e1d1b3c65c99..e1d1b3c65c99 100644 --- a/core/java/android/net/vcn/VcnUnderlyingNetworkSpecifier.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkSpecifier.java diff --git a/core/java/android/net/vcn/VcnUnderlyingNetworkTemplate.java b/packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkTemplate.java index 16114dd135af..16114dd135af 100644 --- a/core/java/android/net/vcn/VcnUnderlyingNetworkTemplate.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkTemplate.java diff --git a/core/java/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java b/packages/Vcn/framework-b/src/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java index 770a8c118a4d..770a8c118a4d 100644 --- a/core/java/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java diff --git a/core/java/android/net/vcn/persistablebundleutils/CertUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/CertUtils.java index 35b318687773..35b318687773 100644 --- a/core/java/android/net/vcn/persistablebundleutils/CertUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/CertUtils.java diff --git a/core/java/android/net/vcn/persistablebundleutils/ChildSaProposalUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/ChildSaProposalUtils.java index 48c1b25a97ab..48c1b25a97ab 100644 --- a/core/java/android/net/vcn/persistablebundleutils/ChildSaProposalUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/ChildSaProposalUtils.java diff --git a/core/java/android/net/vcn/persistablebundleutils/EapSessionConfigUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/EapSessionConfigUtils.java index dc1ee36b71c1..dc1ee36b71c1 100644 --- a/core/java/android/net/vcn/persistablebundleutils/EapSessionConfigUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/EapSessionConfigUtils.java diff --git a/core/java/android/net/vcn/persistablebundleutils/IkeIdentificationUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeIdentificationUtils.java index 6e8616fc9cb0..6e8616fc9cb0 100644 --- a/core/java/android/net/vcn/persistablebundleutils/IkeIdentificationUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeIdentificationUtils.java diff --git a/core/java/android/net/vcn/persistablebundleutils/IkeSaProposalUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeSaProposalUtils.java index b590148de51f..b590148de51f 100644 --- a/core/java/android/net/vcn/persistablebundleutils/IkeSaProposalUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeSaProposalUtils.java diff --git a/core/java/android/net/vcn/persistablebundleutils/IkeSessionParamsUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeSessionParamsUtils.java index aefac2e89aea..aefac2e89aea 100644 --- a/core/java/android/net/vcn/persistablebundleutils/IkeSessionParamsUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeSessionParamsUtils.java diff --git a/core/java/android/net/vcn/persistablebundleutils/IkeTrafficSelectorUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeTrafficSelectorUtils.java index 6bbc6b1e8218..6bbc6b1e8218 100644 --- a/core/java/android/net/vcn/persistablebundleutils/IkeTrafficSelectorUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/IkeTrafficSelectorUtils.java diff --git a/core/java/android/net/vcn/persistablebundleutils/SaProposalUtilsBase.java b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/SaProposalUtilsBase.java index 469966a48465..469966a48465 100644 --- a/core/java/android/net/vcn/persistablebundleutils/SaProposalUtilsBase.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/SaProposalUtilsBase.java diff --git a/core/java/android/net/vcn/persistablebundleutils/TunnelConnectionParamsUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/TunnelConnectionParamsUtils.java index 0427742f9c0a..0427742f9c0a 100644 --- a/core/java/android/net/vcn/persistablebundleutils/TunnelConnectionParamsUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/TunnelConnectionParamsUtils.java diff --git a/core/java/android/net/vcn/persistablebundleutils/TunnelModeChildSessionParamsUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/TunnelModeChildSessionParamsUtils.java index 3f4ba345a118..3f4ba345a118 100644 --- a/core/java/android/net/vcn/persistablebundleutils/TunnelModeChildSessionParamsUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/persistablebundleutils/TunnelModeChildSessionParamsUtils.java diff --git a/core/java/android/net/vcn/util/LogUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/util/LogUtils.java index 7f7f85271603..742aa761e602 100644 --- a/core/java/android/net/vcn/util/LogUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/util/LogUtils.java @@ -19,7 +19,7 @@ package android.net.vcn.util; import android.annotation.Nullable; import android.os.ParcelUuid; -import com.android.internal.util.HexDump; +import com.android.net.module.util.HexDump; /** @hide */ public class LogUtils { diff --git a/core/java/android/net/vcn/util/MtuUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/util/MtuUtils.java index c3123bcecf33..c3123bcecf33 100644 --- a/core/java/android/net/vcn/util/MtuUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/util/MtuUtils.java diff --git a/core/java/android/net/vcn/util/OneWayBoolean.java b/packages/Vcn/framework-b/src/android/net/vcn/util/OneWayBoolean.java index a7ef67b187b9..a7ef67b187b9 100644 --- a/core/java/android/net/vcn/util/OneWayBoolean.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/util/OneWayBoolean.java diff --git a/core/java/android/net/vcn/util/PersistableBundleUtils.java b/packages/Vcn/framework-b/src/android/net/vcn/util/PersistableBundleUtils.java index 4dc42c7827f8..8a687d8c5942 100644 --- a/core/java/android/net/vcn/util/PersistableBundleUtils.java +++ b/packages/Vcn/framework-b/src/android/net/vcn/util/PersistableBundleUtils.java @@ -21,7 +21,7 @@ import android.annotation.Nullable; import android.os.ParcelUuid; import android.os.PersistableBundle; -import com.android.internal.util.HexDump; +import com.android.net.module.util.HexDump; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/packages/Vcn/service-b/Android.bp b/packages/Vcn/service-b/Android.bp index 03ef4e67af1c..26d83974949a 100644 --- a/packages/Vcn/service-b/Android.bp +++ b/packages/Vcn/service-b/Android.bp @@ -32,6 +32,33 @@ filegroup { visibility: ["//frameworks/base/services/core"], } +// Do not static include this lib in VCN because these files exist in +// both service-connectivity.jar and framework.jar +// TODO: b/374174952 After VCN moves to Connectivity/ and the modularization is done +// this lib can be removed and "service-connectivity-b-pre-jarjar" can include +// "service-connectivity-pre-jarjar" +java_library { + name: "connectivity-utils-service-vcn-internal", + sdk_version: "module_current", + min_sdk_version: "30", + srcs: [ + ":framework-connectivity-shared-srcs", + ], + libs: [ + "framework-annotations-lib", + "unsupportedappusage", + ], + visibility: [ + "//visibility:private", + ], + apex_available: [ + // TODO: b/374174952 Remove it when VCN modularization is released + "//apex_available:platform", + + "com.android.tethering", + ], +} + java_library { name: "service-connectivity-b-pre-jarjar", sdk_version: "system_server_current", @@ -42,8 +69,32 @@ java_library { "src/**/*.java", ], - // TODO: b/375213246 Expose this library to Tethering module + libs: [ + "android.net.ipsec.ike.stubs.module_lib", + "connectivity-utils-service-vcn-internal", + "framework-annotations-lib", + "framework-connectivity-pre-jarjar", + "framework-connectivity-t-pre-jarjar", + "framework-connectivity-b-pre-jarjar", + "framework-wifi.stubs.module_lib", + "modules-utils-statemachine", + "unsupportedappusage", + ], + + // TODO: b/374174952 Dynamically include these libs when VCN + // modularization is released + static_libs: [ + "net-utils-service-vcn", + "modules-utils-handlerexecutor", + ], + visibility: [ "//frameworks/base/services", ], + apex_available: [ + // TODO: b/374174952 Remove it when VCN modularization is released + "//apex_available:platform", + + "com.android.tethering", + ], } diff --git a/services/core/java/com/android/server/VcnManagementService.java b/packages/Vcn/service-b/src/com/android/server/VcnManagementService.java index a45b715ccac6..26db6a988e31 100644 --- a/services/core/java/com/android/server/VcnManagementService.java +++ b/packages/Vcn/service-b/src/com/android/server/VcnManagementService.java @@ -86,6 +86,7 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting.Visibility; import com.android.net.module.util.BinderUtils; +import com.android.net.module.util.HandlerUtils; import com.android.net.module.util.LocationPermissionChecker; import com.android.net.module.util.PermissionUtils; import com.android.server.vcn.TelephonySubscriptionTracker; @@ -1332,41 +1333,46 @@ public class VcnManagementService extends IVcnManagementService.Stub { final IndentingPrintWriter pw = new IndentingPrintWriter(writer, "| "); // Post to handler thread to prevent ConcurrentModificationExceptions, and avoid lock-hell. - mHandler.runWithScissors(() -> { - mNetworkProvider.dump(pw); - pw.println(); + HandlerUtils.runWithScissorsForDump( + mHandler, + () -> { + mNetworkProvider.dump(pw); + pw.println(); - mTrackingNetworkCallback.dump(pw); - pw.println(); + mTrackingNetworkCallback.dump(pw); + pw.println(); - synchronized (mLock) { - mLastSnapshot.dump(pw); - pw.println(); + synchronized (mLock) { + mLastSnapshot.dump(pw); + pw.println(); - pw.println("mConfigs:"); - pw.increaseIndent(); - for (Entry<ParcelUuid, VcnConfig> entry : mConfigs.entrySet()) { - pw.println(entry.getKey() + ": " - + entry.getValue().getProvisioningPackageName()); - } - pw.decreaseIndent(); - pw.println(); + pw.println("mConfigs:"); + pw.increaseIndent(); + for (Entry<ParcelUuid, VcnConfig> entry : mConfigs.entrySet()) { + pw.println( + entry.getKey() + + ": " + + entry.getValue().getProvisioningPackageName()); + } + pw.decreaseIndent(); + pw.println(); - pw.println("mVcns:"); - pw.increaseIndent(); - for (Vcn vcn : mVcns.values()) { - vcn.dump(pw); - } - pw.decreaseIndent(); - pw.println(); - } + pw.println("mVcns:"); + pw.increaseIndent(); + for (Vcn vcn : mVcns.values()) { + vcn.dump(pw); + } + pw.decreaseIndent(); + pw.println(); + } - pw.println("Local log:"); - pw.increaseIndent(); - LOCAL_LOG.dump(pw); - pw.decreaseIndent(); - pw.println(); - }, DUMP_TIMEOUT_MILLIS); + pw.println("Local log:"); + pw.increaseIndent(); + LOCAL_LOG.dump(pw); + pw.decreaseIndent(); + pw.println(); + }, + DUMP_TIMEOUT_MILLIS); } // TODO(b/180452282): Make name more generic and implement directly with VcnManagementService diff --git a/services/core/java/com/android/server/vcn/TelephonySubscriptionTracker.java b/packages/Vcn/service-b/src/com/android/server/vcn/TelephonySubscriptionTracker.java index 154897eecee4..b448f7595b3b 100644 --- a/services/core/java/com/android/server/vcn/TelephonySubscriptionTracker.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/TelephonySubscriptionTracker.java @@ -29,7 +29,6 @@ import android.content.IntentFilter; import android.net.vcn.VcnManager; import android.net.vcn.util.PersistableBundleUtils.PersistableBundleWrapper; import android.os.Handler; -import android.os.HandlerExecutor; import android.os.ParcelUuid; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; @@ -46,6 +45,7 @@ import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting.Visibility; +import com.android.modules.utils.HandlerExecutor; import java.util.ArrayList; import java.util.Collections; diff --git a/services/core/java/com/android/server/vcn/Vcn.java b/packages/Vcn/service-b/src/com/android/server/vcn/Vcn.java index 95acb107fd05..2524d0eedac3 100644 --- a/services/core/java/com/android/server/vcn/Vcn.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/Vcn.java @@ -40,7 +40,6 @@ import android.net.vcn.VcnGatewayConnectionConfig; import android.net.vcn.VcnManager.VcnErrorCode; import android.net.vcn.util.LogUtils; import android.os.Handler; -import android.os.HandlerExecutor; import android.os.Message; import android.os.ParcelUuid; import android.provider.Settings; @@ -53,6 +52,7 @@ import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting.Visibility; +import com.android.modules.utils.HandlerExecutor; import com.android.server.VcnManagementService.VcnCallback; import com.android.server.vcn.TelephonySubscriptionTracker.TelephonySubscriptionSnapshot; diff --git a/services/core/java/com/android/server/vcn/VcnContext.java b/packages/Vcn/service-b/src/com/android/server/vcn/VcnContext.java index 9213d96ad4ca..9213d96ad4ca 100644 --- a/services/core/java/com/android/server/vcn/VcnContext.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/VcnContext.java diff --git a/services/core/java/com/android/server/vcn/VcnGatewayConnection.java b/packages/Vcn/service-b/src/com/android/server/vcn/VcnGatewayConnection.java index 77bda9dc6b14..e50fc3a6e8b9 100644 --- a/services/core/java/com/android/server/vcn/VcnGatewayConnection.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/VcnGatewayConnection.java @@ -45,6 +45,7 @@ import android.net.InetAddresses; import android.net.IpPrefix; import android.net.IpSecManager; import android.net.IpSecManager.IpSecTunnelInterface; +import android.net.IpSecManager.PolicyDirection; import android.net.IpSecManager.ResourceUnavailableException; import android.net.IpSecTransform; import android.net.LinkAddress; @@ -59,7 +60,6 @@ import android.net.NetworkScore; import android.net.RouteInfo; import android.net.TelephonyNetworkSpecifier; import android.net.Uri; -import android.net.annotations.PolicyDirection; import android.net.ipsec.ike.ChildSaProposal; import android.net.ipsec.ike.ChildSessionCallback; import android.net.ipsec.ike.ChildSessionConfiguration; @@ -83,7 +83,6 @@ import android.net.vcn.util.MtuUtils; import android.net.vcn.util.OneWayBoolean; import android.net.wifi.WifiInfo; import android.os.Handler; -import android.os.HandlerExecutor; import android.os.Message; import android.os.ParcelUuid; import android.os.PowerManager; @@ -101,6 +100,7 @@ import com.android.internal.annotations.VisibleForTesting.Visibility; import com.android.internal.util.State; import com.android.internal.util.StateMachine; import com.android.internal.util.WakeupMessage; +import com.android.modules.utils.HandlerExecutor; import com.android.server.vcn.TelephonySubscriptionTracker.TelephonySubscriptionSnapshot; import com.android.server.vcn.Vcn.VcnGatewayStatusCallback; import com.android.server.vcn.routeselection.UnderlyingNetworkController; diff --git a/services/core/java/com/android/server/vcn/VcnNetworkProvider.java b/packages/Vcn/service-b/src/com/android/server/vcn/VcnNetworkProvider.java index 78ff432f5423..4552f509b59a 100644 --- a/services/core/java/com/android/server/vcn/VcnNetworkProvider.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/VcnNetworkProvider.java @@ -33,7 +33,6 @@ import android.net.NetworkRequest; import android.net.NetworkScore; import android.net.vcn.VcnGatewayConnectionConfig; import android.os.Handler; -import android.os.HandlerExecutor; import android.os.Looper; import android.util.ArraySet; import android.util.IndentingPrintWriter; @@ -41,6 +40,7 @@ import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting.Visibility; +import com.android.modules.utils.HandlerExecutor; import java.util.Objects; import java.util.Set; diff --git a/services/core/java/com/android/server/vcn/routeselection/IpSecPacketLossDetector.java b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/IpSecPacketLossDetector.java index e6a1ff967508..72de61363d26 100644 --- a/services/core/java/com/android/server/vcn/routeselection/IpSecPacketLossDetector.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/IpSecPacketLossDetector.java @@ -32,12 +32,12 @@ import android.net.IpSecTransformState; import android.net.Network; import android.net.vcn.VcnManager; import android.os.Handler; -import android.os.HandlerExecutor; import android.os.OutcomeReceiver; import android.os.PowerManager; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting.Visibility; +import com.android.modules.utils.HandlerExecutor; import com.android.server.vcn.VcnContext; import java.lang.annotation.ElementType; diff --git a/services/core/java/com/android/server/vcn/routeselection/NetworkMetricMonitor.java b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/NetworkMetricMonitor.java index 86cee554be6f..86cee554be6f 100644 --- a/services/core/java/com/android/server/vcn/routeselection/NetworkMetricMonitor.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/NetworkMetricMonitor.java diff --git a/services/core/java/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java index 79c4116d0cd4..79c4116d0cd4 100644 --- a/services/core/java/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java diff --git a/services/core/java/com/android/server/vcn/routeselection/UnderlyingNetworkController.java b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/UnderlyingNetworkController.java index f7a564ad5281..29a0762f5fe8 100644 --- a/services/core/java/com/android/server/vcn/routeselection/UnderlyingNetworkController.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/UnderlyingNetworkController.java @@ -41,7 +41,6 @@ import android.net.vcn.VcnGatewayConnectionConfig; import android.net.vcn.VcnUnderlyingNetworkTemplate; import android.net.vcn.util.LogUtils; import android.os.Handler; -import android.os.HandlerExecutor; import android.os.ParcelUuid; import android.telephony.TelephonyCallback; import android.telephony.TelephonyManager; @@ -52,6 +51,7 @@ import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting.Visibility; +import com.android.modules.utils.HandlerExecutor; import com.android.server.vcn.TelephonySubscriptionTracker.TelephonySubscriptionSnapshot; import com.android.server.vcn.VcnContext; import com.android.server.vcn.routeselection.UnderlyingNetworkEvaluator.NetworkEvaluatorCallback; diff --git a/services/core/java/com/android/server/vcn/routeselection/UnderlyingNetworkEvaluator.java b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/UnderlyingNetworkEvaluator.java index 30f4ed1b9f0b..30f4ed1b9f0b 100644 --- a/services/core/java/com/android/server/vcn/routeselection/UnderlyingNetworkEvaluator.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/UnderlyingNetworkEvaluator.java diff --git a/services/core/java/com/android/server/vcn/routeselection/UnderlyingNetworkRecord.java b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/UnderlyingNetworkRecord.java index 1945052b92df..1945052b92df 100644 --- a/services/core/java/com/android/server/vcn/routeselection/UnderlyingNetworkRecord.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/routeselection/UnderlyingNetworkRecord.java diff --git a/services/Android.bp b/services/Android.bp index d99ed3dbdba8..904becd4a4c8 100644 --- a/services/Android.bp +++ b/services/Android.bp @@ -254,6 +254,10 @@ java_library { "service-permission.stubs.system_server", "service-rkp.stubs.system_server", "service-sdksandbox.stubs.system_server", + + // TODO: b/30242953 This is for accessing IVcnManagementService and + // can be removed VCN is in mainline + "framework-connectivity-b-pre-jarjar", ], vintf_fragment_modules: [ diff --git a/services/core/java/com/android/server/vcn/TEST_MAPPING b/services/core/java/com/android/server/vcn/TEST_MAPPING deleted file mode 100644 index 5b04d884fc1a..000000000000 --- a/services/core/java/com/android/server/vcn/TEST_MAPPING +++ /dev/null @@ -1,10 +0,0 @@ -{ - "presubmit": [ - { - "name": "FrameworksVcnTests" - }, - { - "name": "CtsVcnTestCases" - } - ] -}
\ No newline at end of file diff --git a/tests/vcn/Android.bp b/tests/vcn/Android.bp index b16ba15a6867..51a300bff7ea 100644 --- a/tests/vcn/Android.bp +++ b/tests/vcn/Android.bp @@ -14,21 +14,24 @@ package { android_test { name: "FrameworksVcnTests", + // For access hidden connectivity methods in tests + defaults: ["framework-connectivity-test-defaults"], srcs: [ "java/**/*.java", "java/**/*.kt", ], platform_apis: true, - defaults: ["framework-connectivity-test-defaults"], test_suites: ["device-tests"], certificate: "platform", static_libs: [ + "android.net.vcn.flags-aconfig-java-export", "androidx.test.rules", "frameworks-base-testutils", "framework-protos", "mockito-target-minus-junit4", "net-tests-utils", "platform-test-annotations", + "service-connectivity-b-pre-jarjar", "services.core", "service-connectivity-tiramisu-pre-jarjar", "flag-junit", diff --git a/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java b/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java index b999475cba38..77f82f0d8cf4 100644 --- a/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java +++ b/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java @@ -55,7 +55,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.net.vcn.VcnManager; import android.os.Handler; -import android.os.HandlerExecutor; import android.os.ParcelUuid; import android.os.PersistableBundle; import android.os.test.TestLooper; @@ -72,6 +71,8 @@ import android.util.ArraySet; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; +import com.android.modules.utils.HandlerExecutor; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; |