From 278db58bf536551158e8082d3e7572650a908b05 Mon Sep 17 00:00:00 2001 From: Motomu Utsumi Date: Fri, 21 Apr 2023 12:35:22 +0900 Subject: [PATCH] Fix isFeatureEnabled namespace and overload usage From service-connectivity, NAMESPACE_TETHERING must be used, as NAMESPACE_CONNECTIVITY is used for the NetworkStack module. Also the isFeatureEnabled with module name must be used, otherwise the "android" package version is queried instead of the tethering module version. BpfNetMaps is using flag value 1 to workaround this issue. flags in NsdService, AutomaticOnOffKeepaliveTracker, and ConnectivityFlags were not pushed currently. So, this change has no effect to devices. Bug: 279108992 Test: TH Change-Id: I2b4b6a13c048c20beef52b1f43b9e21aca0c637a --- service-t/src/com/android/server/NsdService.java | 10 +++++----- service/src/com/android/server/BpfNetMaps.java | 4 ++-- .../src/com/android/server/ConnectivityService.java | 8 ++++---- .../connectivity/AutomaticOnOffKeepaliveTracker.java | 2 +- .../android/server/connectivity/ConnectivityFlags.java | 2 +- .../com/android/server/ConnectivityServiceTest.java | 4 ++-- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/service-t/src/com/android/server/NsdService.java b/service-t/src/com/android/server/NsdService.java index a62ee7f739..1882cf4404 100644 --- a/service-t/src/com/android/server/NsdService.java +++ b/service-t/src/com/android/server/NsdService.java @@ -19,7 +19,6 @@ package com.android.server; import static android.net.ConnectivityManager.NETID_UNSET; import static android.net.nsd.NsdManager.MDNS_DISCOVERY_MANAGER_EVENT; import static android.net.nsd.NsdManager.MDNS_SERVICE_EVENT; -import static android.provider.DeviceConfig.NAMESPACE_CONNECTIVITY; import static android.provider.DeviceConfig.NAMESPACE_TETHERING; import static com.android.modules.utils.build.SdkLevel.isAtLeastU; @@ -1368,8 +1367,8 @@ public class NsdService extends INsdManager.Stub { * @return true if the MdnsDiscoveryManager feature is enabled. */ public boolean isMdnsDiscoveryManagerEnabled(Context context) { - return isAtLeastU() || DeviceConfigUtils.isFeatureEnabled(context, - NAMESPACE_CONNECTIVITY, MDNS_DISCOVERY_MANAGER_VERSION, + return isAtLeastU() || DeviceConfigUtils.isFeatureEnabled(context, NAMESPACE_TETHERING, + MDNS_DISCOVERY_MANAGER_VERSION, DeviceConfigUtils.TETHERING_MODULE_NAME, false /* defaultEnabled */); } @@ -1380,8 +1379,9 @@ public class NsdService extends INsdManager.Stub { * @return true if the MdnsAdvertiser feature is enabled. */ public boolean isMdnsAdvertiserEnabled(Context context) { - return isAtLeastU() || DeviceConfigUtils.isFeatureEnabled(context, - NAMESPACE_CONNECTIVITY, MDNS_ADVERTISER_VERSION, false /* defaultEnabled */); + return isAtLeastU() || DeviceConfigUtils.isFeatureEnabled(context, NAMESPACE_TETHERING, + MDNS_ADVERTISER_VERSION, DeviceConfigUtils.TETHERING_MODULE_NAME, + false /* defaultEnabled */); } /** diff --git a/service/src/com/android/server/BpfNetMaps.java b/service/src/com/android/server/BpfNetMaps.java index b4fce37dc4..84e581edfe 100644 --- a/service/src/com/android/server/BpfNetMaps.java +++ b/service/src/com/android/server/BpfNetMaps.java @@ -281,8 +281,8 @@ public class BpfNetMaps { if (sEnableJavaBpfMap == null) { sEnableJavaBpfMap = SdkLevel.isAtLeastU() || DeviceConfigUtils.isFeatureEnabled(context, - DeviceConfig.NAMESPACE_TETHERING, BPF_NET_MAPS_ENABLE_JAVA_BPF_MAP, - false /* defaultValue */); + DeviceConfig.NAMESPACE_TETHERING, BPF_NET_MAPS_ENABLE_JAVA_BPF_MAP, + DeviceConfigUtils.TETHERING_MODULE_NAME, false /* defaultValue */); } Log.d(TAG, "BpfNetMaps is initialized with sEnableJavaBpfMap=" + sEnableJavaBpfMap); diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java index c080c5951d..fa770a9583 100755 --- a/service/src/com/android/server/ConnectivityService.java +++ b/service/src/com/android/server/ConnectivityService.java @@ -91,7 +91,7 @@ import static android.net.OemNetworkPreferences.OEM_NETWORK_PREFERENCE_TEST; import static android.net.OemNetworkPreferences.OEM_NETWORK_PREFERENCE_TEST_ONLY; import static android.os.Process.INVALID_UID; import static android.os.Process.VPN_UID; -import static android.provider.DeviceConfig.NAMESPACE_CONNECTIVITY; +import static android.provider.DeviceConfig.NAMESPACE_TETHERING; import static android.system.OsConstants.ETH_P_ALL; import static android.system.OsConstants.IPPROTO_TCP; import static android.system.OsConstants.IPPROTO_UDP; @@ -1393,9 +1393,9 @@ public class ConnectivityService extends IConnectivityManager.Stub /** * @see DeviceConfigUtils#isFeatureEnabled */ - public boolean isFeatureEnabled(Context context, String name, boolean defaultEnabled) { - return DeviceConfigUtils.isFeatureEnabled(context, NAMESPACE_CONNECTIVITY, name, - TETHERING_MODULE_NAME, defaultEnabled); + public boolean isFeatureEnabled(Context context, String name) { + return DeviceConfigUtils.isFeatureEnabled(context, NAMESPACE_TETHERING, name, + TETHERING_MODULE_NAME, false /* defaultValue */); } /** diff --git a/service/src/com/android/server/connectivity/AutomaticOnOffKeepaliveTracker.java b/service/src/com/android/server/connectivity/AutomaticOnOffKeepaliveTracker.java index ee8ab6824f..7c23816420 100644 --- a/service/src/com/android/server/connectivity/AutomaticOnOffKeepaliveTracker.java +++ b/service/src/com/android/server/connectivity/AutomaticOnOffKeepaliveTracker.java @@ -842,7 +842,7 @@ public class AutomaticOnOffKeepaliveTracker { */ public boolean isFeatureEnabled(@NonNull final String name, final boolean defaultEnabled) { return DeviceConfigUtils.isFeatureEnabled(mContext, NAMESPACE_TETHERING, name, - defaultEnabled); + DeviceConfigUtils.TETHERING_MODULE_NAME, defaultEnabled); } /** diff --git a/service/src/com/android/server/connectivity/ConnectivityFlags.java b/service/src/com/android/server/connectivity/ConnectivityFlags.java index 122ea1c2b9..9039a14f86 100644 --- a/service/src/com/android/server/connectivity/ConnectivityFlags.java +++ b/service/src/com/android/server/connectivity/ConnectivityFlags.java @@ -61,6 +61,6 @@ public final class ConnectivityFlags { */ public void loadFlags(ConnectivityService.Dependencies deps, Context ctx) { mNoRematchAllRequestsOnRegister = deps.isFeatureEnabled( - ctx, NO_REMATCH_ALL_REQUESTS_ON_REGISTER, false /* defaultEnabled */); + ctx, NO_REMATCH_ALL_REQUESTS_ON_REGISTER); } } diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java index 877df98f90..d1869208c5 100755 --- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java @@ -2077,12 +2077,12 @@ public class ConnectivityServiceTest { } @Override - public boolean isFeatureEnabled(Context context, String name, boolean defaultEnabled) { + public boolean isFeatureEnabled(Context context, String name) { switch (name) { case ConnectivityFlags.NO_REMATCH_ALL_REQUESTS_ON_REGISTER: return true; default: - return super.isFeatureEnabled(context, name, defaultEnabled); + return super.isFeatureEnabled(context, name); } }