Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3df182d3 authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Conditionally remove VCN jars from non-updatable platform" into...

Merge "Merge "Conditionally remove VCN jars from non-updatable platform" into main am: 08e435dd am: bbf3e137" into main
parents 9f9155d3 805611d7
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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",
    ],
}
+76 −22
Original line number Diff line number Diff line
@@ -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: [
@@ -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
@@ -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",
@@ -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",
@@ -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",
    ],
+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
+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
+10 −14
Original line number Diff line number Diff line
@@ -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;
@@ -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
@@ -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