From 5c0177215ee88a9372b883d06661e25a8f6105de Mon Sep 17 00:00:00 2001 From: Luke Huang Date: Tue, 17 Dec 2019 10:54:26 +0800 Subject: Add public lib of Cronet apex mainline This is a workaround since apex module library path is not supported in jni Bug: 139397529 Bug: 145474221 Test: Build Test: manual test with Cronet Test: atest CtsJniTestCases Test: atest libnativeloader_test Change-Id: Ifd8aa85bd78e95131b2ce3eab0ad32c2bb19cee2 --- libnativeloader/library_namespaces.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'libnativeloader/library_namespaces.cpp') diff --git a/libnativeloader/library_namespaces.cpp b/libnativeloader/library_namespaces.cpp index 03e0814211..c01f80464a 100644 --- a/libnativeloader/library_namespaces.cpp +++ b/libnativeloader/library_namespaces.cpp @@ -44,6 +44,7 @@ constexpr const char* kVendorNamespaceName = "sphal"; constexpr const char* kVndkNamespaceName = "vndk"; constexpr const char* kArtNamespaceName = "art"; constexpr const char* kNeuralNetworksNamespaceName = "neuralnetworks"; +constexpr const char* kCronetNamespaceName = "cronet"; // classloader-namespace is a linker namespace that is created for the loaded // app. To be specific, it is created for the app classloader. When @@ -279,6 +280,16 @@ Result LibraryNamespaces::Create(JNIEnv* env, uint32_t t } } + // TODO(b/143733063): Remove it after library path of apex module is supported. + auto cronet_ns = + NativeLoaderNamespace::GetExportedNamespace(kCronetNamespaceName, is_bridged); + if (cronet_ns) { + linked = app_ns->Link(*cronet_ns, cronet_public_libraries()); + if (!linked) { + return linked.error(); + } + } + if (!vendor_public_libraries().empty()) { auto vendor_ns = NativeLoaderNamespace::GetExportedNamespace(kVendorNamespaceName, is_bridged); // when vendor_ns is not configured, link to the platform namespace -- cgit v1.2.3-59-g8ed1b