From 3e157018f7745956e03bc82324ef4921366a43fc Mon Sep 17 00:00:00 2001 From: Pete Bentley Date: Thu, 7 Jan 2021 13:51:18 +0000 Subject: [PATCH] Revert "Move service-connectivity to the tethering APEX" Revert submission 1532910-connectivity_jar_in_apex Reason for revert: Breaks boot tests: b/176969905 Reverted Changes: Ie41a5b569:Set setCurrentProxyScriptUrl as public Id7b6a4664:Move service-connectivity to the tethering APEX Ia7cb83834:Add service-connectivity to tethering APEX Change-Id: I1c369dd8a6527513f8fc1a5cacde59d78d104c7e --- packages/Connectivity/service/Android.bp | 26 ++++++++++++++----- services/Android.bp | 1 + .../ConnectivityServiceInitializer.java | 2 -- .../connectivity/IpConnectivityMetrics.java | 2 -- services/core/jni/Android.bp | 1 + services/core/jni/onload.cpp | 4 +++ .../java/com/android/server/SystemServer.java | 9 +++---- tests/net/Android.bp | 3 --- 8 files changed, 29 insertions(+), 19 deletions(-) diff --git a/packages/Connectivity/service/Android.bp b/packages/Connectivity/service/Android.bp index c8f3bd3666e48..a26f715280a1c 100644 --- a/packages/Connectivity/service/Android.bp +++ b/packages/Connectivity/service/Android.bp @@ -14,8 +14,8 @@ // limitations under the License. // -cc_library_shared { - name: "libservice-connectivity", +cc_defaults { + name: "libservice-connectivity-defaults", // TODO: build against the NDK (sdk_version: "30" for example) cflags: [ "-Wall", @@ -26,7 +26,6 @@ cc_library_shared { srcs: [ "jni/com_android_server_TestNetworkService.cpp", "jni/com_android_server_connectivity_Vpn.cpp", - "jni/onload.cpp", ], shared_libs: [ "libbase", @@ -36,9 +35,25 @@ cc_library_shared { // addresses, and remove dependency on libnetutils. "libnetutils", ], - apex_available: [ - "com.android.tethering", +} + +cc_library_shared { + name: "libservice-connectivity", + defaults: ["libservice-connectivity-defaults"], + srcs: [ + "jni/onload.cpp", ], + apex_available: [ + // TODO: move this library to the tethering APEX and remove libservice-connectivity-static + // "com.android.tethering", + ], +} + +// Static library linked into libservices.core until libservice-connectivity can be loaded from +// the tethering APEX instead. +cc_library_static { + name: "libservice-connectivity-static", + defaults: ["libservice-connectivity-defaults"], } java_library { @@ -60,6 +75,5 @@ java_library { ], apex_available: [ "//apex_available:platform", - "com.android.tethering", ], } diff --git a/services/Android.bp b/services/Android.bp index ef52c2aff002c..f40f7cfa73219 100644 --- a/services/Android.bp +++ b/services/Android.bp @@ -83,6 +83,7 @@ java_library { "services.voiceinteraction", "services.wifi", "service-blobstore", + "service-connectivity", "service-jobscheduler", "android.hidl.base-V1.0-java", ], diff --git a/services/core/java/com/android/server/ConnectivityServiceInitializer.java b/services/core/java/com/android/server/ConnectivityServiceInitializer.java index f276329d394bd..2bc8925be0190 100644 --- a/services/core/java/com/android/server/ConnectivityServiceInitializer.java +++ b/services/core/java/com/android/server/ConnectivityServiceInitializer.java @@ -36,8 +36,6 @@ public final class ConnectivityServiceInitializer extends SystemService { public ConnectivityServiceInitializer(Context context) { super(context); - // Load JNI libraries used by ConnectivityService and its dependencies - System.loadLibrary("service-connectivity"); // TODO: Define formal APIs to get the needed services. mConnectivity = new ConnectivityService(context, getNetworkManagementService(), getNetworkStatsService(), getNetworkPolicyManager()); diff --git a/services/core/java/com/android/server/connectivity/IpConnectivityMetrics.java b/services/core/java/com/android/server/connectivity/IpConnectivityMetrics.java index b5d875d5c162c..2c06d8230f134 100644 --- a/services/core/java/com/android/server/connectivity/IpConnectivityMetrics.java +++ b/services/core/java/com/android/server/connectivity/IpConnectivityMetrics.java @@ -122,8 +122,6 @@ final public class IpConnectivityMetrics extends SystemService { public IpConnectivityMetrics(Context ctx, ToIntFunction capacityGetter) { super(ctx); - // Load JNI libraries used by the IpConnectivityMetrics service and its dependencies - System.loadLibrary("service-connectivity"); mCapacityGetter = capacityGetter; initBuffer(); } diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp index e0db93a01efdc..4f95696dce881 100644 --- a/services/core/jni/Android.bp +++ b/services/core/jni/Android.bp @@ -168,6 +168,7 @@ cc_defaults { static_libs: [ "android.hardware.broadcastradio@common-utils-1x-lib", + "libservice-connectivity-static", ], product_variables: { diff --git a/services/core/jni/onload.cpp b/services/core/jni/onload.cpp index ccf685c1abd79..8cb3e6d1ae730 100644 --- a/services/core/jni/onload.cpp +++ b/services/core/jni/onload.cpp @@ -40,6 +40,8 @@ int register_android_server_UsbHostManager(JNIEnv* env); int register_android_server_vr_VrManagerService(JNIEnv* env); int register_android_server_VibratorService(JNIEnv* env); int register_android_server_location_GnssLocationProvider(JNIEnv* env); +int register_android_server_connectivity_Vpn(JNIEnv* env); +int register_android_server_TestNetworkService(JNIEnv* env); int register_android_server_devicepolicy_CryptoTestHelper(JNIEnv*); int register_android_server_tv_TvUinputBridge(JNIEnv* env); int register_android_server_tv_TvInputHal(JNIEnv* env); @@ -91,6 +93,8 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void* /* reserved */) register_android_server_VibratorService(env); register_android_server_SystemServer(env); register_android_server_location_GnssLocationProvider(env); + register_android_server_connectivity_Vpn(env); + register_android_server_TestNetworkService(env); register_android_server_devicepolicy_CryptoTestHelper(env); register_android_server_ConsumerIrService(env); register_android_server_BatteryStatsService(env); diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index d55a5b7792d44..b5c5bb52d0501 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -221,8 +221,6 @@ public final class SystemServer { "com.android.server.companion.CompanionDeviceManagerService"; private static final String STATS_COMPANION_APEX_PATH = "/apex/com.android.os.statsd/javalib/service-statsd.jar"; - private static final String CONNECTIVITY_SERVICE_APEX_PATH = - "/apex/com.android.tethering/javalib/service-connectivity.jar"; private static final String STATS_COMPANION_LIFECYCLE_CLASS = "com.android.server.stats.StatsCompanion$Lifecycle"; private static final String STATS_PULL_ATOM_SERVICE_CLASS = @@ -1219,8 +1217,7 @@ public final class SystemServer { } t.traceBegin("IpConnectivityMetrics"); - mSystemServiceManager.startServiceFromJar(IP_CONNECTIVITY_METRICS_CLASS, - CONNECTIVITY_SERVICE_APEX_PATH); + mSystemServiceManager.startService(IP_CONNECTIVITY_METRICS_CLASS); t.traceEnd(); t.traceBegin("NetworkWatchlistService"); @@ -1561,8 +1558,8 @@ public final class SystemServer { // This has to be called after NetworkManagementService, NetworkStatsService // and NetworkPolicyManager because ConnectivityService needs to take these // services to initialize. - mSystemServiceManager.startServiceFromJar(CONNECTIVITY_SERVICE_INITIALIZER_CLASS, - CONNECTIVITY_SERVICE_APEX_PATH); + // TODO: Dynamically load service-connectivity.jar by using startServiceFromJar. + mSystemServiceManager.startService(CONNECTIVITY_SERVICE_INITIALIZER_CLASS); connectivity = IConnectivityManager.Stub.asInterface( ServiceManager.getService(Context.CONNECTIVITY_SERVICE)); // TODO: Use ConnectivityManager instead of ConnectivityService. diff --git a/tests/net/Android.bp b/tests/net/Android.bp index f6a2846c9b3cd..a7622198cec72 100644 --- a/tests/net/Android.bp +++ b/tests/net/Android.bp @@ -70,7 +70,4 @@ android_test { "android.test.base", "android.test.mock", ], - jni_libs: [ - "libservice-connectivity", - ], }