Loading packages/Vcn/flags/Android.bp +14 −0 Original line number Diff line number Diff line Loading @@ -29,10 +29,24 @@ aconfig_declarations { ], } // TODO: b/374174952 Remove this library when VCN modularization is done 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"], apex_available: [ "//apex_available:platform", ], } java_aconfig_library { name: "android.net.vcn.flags-aconfig-java", aconfig_declarations: "android.net.vcn.flags-aconfig", min_sdk_version: "35", defaults: ["framework-minus-apex-aconfig-java-defaults"], apex_available: [ "com.android.tethering", ], } packages/Vcn/framework-b/Android.bp +76 −22 Original line number Diff line number Diff line Loading @@ -32,9 +32,9 @@ filegroup { } java_defaults { name: "framework-connectivity-b-defaults", name: "framework-connectivity-b-defaults-base", sdk_version: "module_current", min_sdk_version: "35", // TODO: Make it Android 25Q2 when this is included in mainline defaults: ["framework-module-defaults"], // This is a boot jar srcs: [ Loading @@ -44,14 +44,10 @@ java_defaults { 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 Loading @@ -60,16 +56,83 @@ java_defaults { }, } soong_config_module_type { name: "framework_connectivity_b_defaults_soong_config", module_type: "java_defaults", config_namespace: "ANDROID", bool_variables: [ "is_vcn_in_mainline", ], properties: [ "min_sdk_version", "static_libs", "apex_available", ], } framework_connectivity_b_defaults_soong_config { name: "framework-connectivity-b-defaults", defaults: [ "framework-connectivity-b-defaults-base", ], soong_config_variables: { is_vcn_in_mainline: { //TODO: b/380155299 Make it Baklava when aidl tool can understand it min_sdk_version: "current", static_libs: ["android.net.vcn.flags-aconfig-java"], apex_available: ["com.android.tethering"], conditions_default: { min_sdk_version: "35", static_libs: ["android.net.vcn.flags-aconfig-java-export"], apex_available: ["//apex_available:platform"], }, }, }, } soong_config_module_type { name: "framework_connectivity_b_java_sdk_library_defaults_soong_config", module_type: "java_defaults", config_namespace: "ANDROID", bool_variables: [ "is_vcn_in_mainline", ], properties: [ "aconfig_declarations", "jarjar_rules", ], } framework_connectivity_b_java_sdk_library_defaults_soong_config { name: "framework-connectivity-b-java-sdk-library-defaults", soong_config_variables: { is_vcn_in_mainline: { aconfig_declarations: ["android.net.vcn.flags-aconfig-java"], // TODO: b/375213246 Use the connectivity jarjar rule generator to create the // jarjar rules. In the end state, use "framework-connectivity-jarjar-rules" // after VCN code is moved to the Connectivity folder jarjar_rules: "framework-vcn-jarjar-rules.txt", conditions_default: { aconfig_declarations: ["android.net.vcn.flags-aconfig-java-export"], // Use "android.net.connectivity" as prefix would trigger // "Hidden API flags are inconsistent" build error jarjar_rules: "framework-vcn-jarjar-rules-platform.txt", }, }, }, } java_sdk_library { name: "framework-connectivity-b", defaults: [ "framework-connectivity-b-defaults", "framework-connectivity-b-java-sdk-library-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", Loading @@ -92,11 +155,6 @@ java_sdk_library { "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", Loading @@ -120,17 +178,13 @@ java_sdk_library { "//packages/modules/Wifi/service/tests/wifitests", ], apex_available: [ // TODO: b/374174952 Remove it when VCN modularization is released "//apex_available:platform", "com.android.tethering", ], visibility: ["//packages/modules/Connectivity:__subpackages__"], } java_library { name: "framework-connectivity-b-pre-jarjar", defaults: ["framework-connectivity-b-defaults"], installable: false, libs: [ "framework-connectivity-pre-jarjar", ], Loading packages/Vcn/framework-b/framework-vcn-jarjar-rules-platform.txt 0 → 100644 +2 −0 Original line number Diff line number Diff line 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 packages/Vcn/framework-b/framework-vcn-jarjar-rules.txt +2 −2 Original line number Diff line number Diff line 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 rule android.net.vcn.persistablebundleutils.** android.net.connectivity.android.net.vcn.persistablebundleutils.@1 rule android.net.vcn.util.** android.net.connectivity.android.net.vcn.util.@1 No newline at end of file packages/Vcn/framework-b/src/android/net/ConnectivityFrameworkInitializerBaklava.java +10 −14 Original line number Diff line number Diff line Loading @@ -23,8 +23,6 @@ import android.annotation.Nullable; import android.annotation.SystemApi; import android.app.SystemServiceRegistry; import android.compat.Compatibility; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.content.Context; import android.content.pm.PackageManager; import android.net.vcn.IVcnManagementService; Loading @@ -40,17 +38,15 @@ import android.os.SystemProperties; @FlaggedApi(FLAG_MAINLINE_VCN_MODULE_API) @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) public final class ConnectivityFrameworkInitializerBaklava { /** * Starting with {@link VANILLA_ICE_CREAM}, Telephony feature flags (e.g. {@link * PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION}) are being checked before returning managers * that depend on them. If the feature is missing, {@link Context#getSystemService} will return * null. * * <p>This change is specific to VcnManager. */ @ChangeId @EnabledSince(targetSdkVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM) private static final long ENABLE_CHECKING_TELEPHONY_FEATURES_FOR_VCN = 330902016; // This is a copy of TelephonyFrameworkInitializer.ENABLE_CHECKING_TELEPHONY_FEATURES. This // ChangeId will replace ENABLE_CHECKING_TELEPHONY_FEATURES_FOR_VCN to gate VcnManager // feature flag enforcement. // This replacement is safe because both ChangeIds have been enabled since Android V and serve // the same purpose: enforcing telephony feature flag checks before using telephony-based // features. This also simplifies VCN modularization by avoiding the need to handle different // states, such as: SDK < B vs. SDK >= B; VCN in platform vs. VCN in the apex. private static final long ENABLE_CHECKING_TELEPHONY_FEATURES = 330583731; /** * The corresponding vendor API for Android V Loading @@ -71,7 +67,7 @@ public final class ConnectivityFrameworkInitializerBaklava { private static String getVcnFeatureDependency() { // Check SDK version of the client app. Apps targeting pre-V SDK might // have not checked for existence of these features. if (!Compatibility.isChangeEnabled(ENABLE_CHECKING_TELEPHONY_FEATURES_FOR_VCN)) { if (!Compatibility.isChangeEnabled(ENABLE_CHECKING_TELEPHONY_FEATURES)) { return null; } Loading Loading
packages/Vcn/flags/Android.bp +14 −0 Original line number Diff line number Diff line Loading @@ -29,10 +29,24 @@ aconfig_declarations { ], } // TODO: b/374174952 Remove this library when VCN modularization is done 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"], apex_available: [ "//apex_available:platform", ], } java_aconfig_library { name: "android.net.vcn.flags-aconfig-java", aconfig_declarations: "android.net.vcn.flags-aconfig", min_sdk_version: "35", defaults: ["framework-minus-apex-aconfig-java-defaults"], apex_available: [ "com.android.tethering", ], }
packages/Vcn/framework-b/Android.bp +76 −22 Original line number Diff line number Diff line Loading @@ -32,9 +32,9 @@ filegroup { } java_defaults { name: "framework-connectivity-b-defaults", name: "framework-connectivity-b-defaults-base", sdk_version: "module_current", min_sdk_version: "35", // TODO: Make it Android 25Q2 when this is included in mainline defaults: ["framework-module-defaults"], // This is a boot jar srcs: [ Loading @@ -44,14 +44,10 @@ java_defaults { 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 Loading @@ -60,16 +56,83 @@ java_defaults { }, } soong_config_module_type { name: "framework_connectivity_b_defaults_soong_config", module_type: "java_defaults", config_namespace: "ANDROID", bool_variables: [ "is_vcn_in_mainline", ], properties: [ "min_sdk_version", "static_libs", "apex_available", ], } framework_connectivity_b_defaults_soong_config { name: "framework-connectivity-b-defaults", defaults: [ "framework-connectivity-b-defaults-base", ], soong_config_variables: { is_vcn_in_mainline: { //TODO: b/380155299 Make it Baklava when aidl tool can understand it min_sdk_version: "current", static_libs: ["android.net.vcn.flags-aconfig-java"], apex_available: ["com.android.tethering"], conditions_default: { min_sdk_version: "35", static_libs: ["android.net.vcn.flags-aconfig-java-export"], apex_available: ["//apex_available:platform"], }, }, }, } soong_config_module_type { name: "framework_connectivity_b_java_sdk_library_defaults_soong_config", module_type: "java_defaults", config_namespace: "ANDROID", bool_variables: [ "is_vcn_in_mainline", ], properties: [ "aconfig_declarations", "jarjar_rules", ], } framework_connectivity_b_java_sdk_library_defaults_soong_config { name: "framework-connectivity-b-java-sdk-library-defaults", soong_config_variables: { is_vcn_in_mainline: { aconfig_declarations: ["android.net.vcn.flags-aconfig-java"], // TODO: b/375213246 Use the connectivity jarjar rule generator to create the // jarjar rules. In the end state, use "framework-connectivity-jarjar-rules" // after VCN code is moved to the Connectivity folder jarjar_rules: "framework-vcn-jarjar-rules.txt", conditions_default: { aconfig_declarations: ["android.net.vcn.flags-aconfig-java-export"], // Use "android.net.connectivity" as prefix would trigger // "Hidden API flags are inconsistent" build error jarjar_rules: "framework-vcn-jarjar-rules-platform.txt", }, }, }, } java_sdk_library { name: "framework-connectivity-b", defaults: [ "framework-connectivity-b-defaults", "framework-connectivity-b-java-sdk-library-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", Loading @@ -92,11 +155,6 @@ java_sdk_library { "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", Loading @@ -120,17 +178,13 @@ java_sdk_library { "//packages/modules/Wifi/service/tests/wifitests", ], apex_available: [ // TODO: b/374174952 Remove it when VCN modularization is released "//apex_available:platform", "com.android.tethering", ], visibility: ["//packages/modules/Connectivity:__subpackages__"], } java_library { name: "framework-connectivity-b-pre-jarjar", defaults: ["framework-connectivity-b-defaults"], installable: false, libs: [ "framework-connectivity-pre-jarjar", ], Loading
packages/Vcn/framework-b/framework-vcn-jarjar-rules-platform.txt 0 → 100644 +2 −0 Original line number Diff line number Diff line 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
packages/Vcn/framework-b/framework-vcn-jarjar-rules.txt +2 −2 Original line number Diff line number Diff line 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 rule android.net.vcn.persistablebundleutils.** android.net.connectivity.android.net.vcn.persistablebundleutils.@1 rule android.net.vcn.util.** android.net.connectivity.android.net.vcn.util.@1 No newline at end of file
packages/Vcn/framework-b/src/android/net/ConnectivityFrameworkInitializerBaklava.java +10 −14 Original line number Diff line number Diff line Loading @@ -23,8 +23,6 @@ import android.annotation.Nullable; import android.annotation.SystemApi; import android.app.SystemServiceRegistry; import android.compat.Compatibility; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.content.Context; import android.content.pm.PackageManager; import android.net.vcn.IVcnManagementService; Loading @@ -40,17 +38,15 @@ import android.os.SystemProperties; @FlaggedApi(FLAG_MAINLINE_VCN_MODULE_API) @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) public final class ConnectivityFrameworkInitializerBaklava { /** * Starting with {@link VANILLA_ICE_CREAM}, Telephony feature flags (e.g. {@link * PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION}) are being checked before returning managers * that depend on them. If the feature is missing, {@link Context#getSystemService} will return * null. * * <p>This change is specific to VcnManager. */ @ChangeId @EnabledSince(targetSdkVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM) private static final long ENABLE_CHECKING_TELEPHONY_FEATURES_FOR_VCN = 330902016; // This is a copy of TelephonyFrameworkInitializer.ENABLE_CHECKING_TELEPHONY_FEATURES. This // ChangeId will replace ENABLE_CHECKING_TELEPHONY_FEATURES_FOR_VCN to gate VcnManager // feature flag enforcement. // This replacement is safe because both ChangeIds have been enabled since Android V and serve // the same purpose: enforcing telephony feature flag checks before using telephony-based // features. This also simplifies VCN modularization by avoiding the need to handle different // states, such as: SDK < B vs. SDK >= B; VCN in platform vs. VCN in the apex. private static final long ENABLE_CHECKING_TELEPHONY_FEATURES = 330583731; /** * The corresponding vendor API for Android V Loading @@ -71,7 +67,7 @@ public final class ConnectivityFrameworkInitializerBaklava { private static String getVcnFeatureDependency() { // Check SDK version of the client app. Apps targeting pre-V SDK might // have not checked for existence of these features. if (!Compatibility.isChangeEnabled(ENABLE_CHECKING_TELEPHONY_FEATURES_FOR_VCN)) { if (!Compatibility.isChangeEnabled(ENABLE_CHECKING_TELEPHONY_FEATURES)) { return null; } Loading