diff options
-rw-r--r-- | libnativeloader/library_namespaces.cpp | 8 | ||||
-rw-r--r-- | libnativeloader/native_loader.cpp | 2 | ||||
-rw-r--r-- | libnativeloader/native_loader_test.cpp | 16 |
3 files changed, 14 insertions, 12 deletions
diff --git a/libnativeloader/library_namespaces.cpp b/libnativeloader/library_namespaces.cpp index 9c658d78e5..3d74e2d3e5 100644 --- a/libnativeloader/library_namespaces.cpp +++ b/libnativeloader/library_namespaces.cpp @@ -42,10 +42,10 @@ namespace { // vendor and system namespaces. constexpr const char* kVendorNamespaceName = "sphal"; constexpr const char* kVndkNamespaceName = "vndk"; -constexpr const char* kArtNamespaceName = "com.android.art"; -constexpr const char* kNeuralNetworksNamespaceName = "com.android.neuralnetworks"; -constexpr const char* kCronetNamespaceName = "com.android.cronet"; -constexpr const char* kStatsdNamespaceName = "com.android.os.statsd"; +constexpr const char* kArtNamespaceName = "com_android_art"; +constexpr const char* kNeuralNetworksNamespaceName = "com_android_neuralnetworks"; +constexpr const char* kCronetNamespaceName = "com_android_cronet"; +constexpr const char* kStatsdNamespaceName = "com_android_os_statsd"; // classloader-namespace is a linker namespace that is created for the loaded // app. To be specific, it is created for the app classloader. When diff --git a/libnativeloader/native_loader.cpp b/libnativeloader/native_loader.cpp index 3998f61eaa..988e8a841c 100644 --- a/libnativeloader/native_loader.cpp +++ b/libnativeloader/native_loader.cpp @@ -21,6 +21,7 @@ #include <dlfcn.h> #include <sys/types.h> +#include <algorithm> #include <memory> #include <mutex> #include <string> @@ -61,6 +62,7 @@ android_namespace_t* FindExportedNamespace(const char* caller_location) { LOG_ALWAYS_FATAL_IF((slash_index == std::string::npos), "Error finding namespace of apex: no slash in path %s", caller_location); std::string name = location.substr(start_index, slash_index - start_index); + std::replace(name.begin(), name.end(), '.', '_'); android_namespace_t* boot_namespace = android_get_exported_namespace(name.c_str()); LOG_ALWAYS_FATAL_IF((boot_namespace == nullptr), "Error finding namespace of apex: no namespace called %s", name.c_str()); diff --git a/libnativeloader/native_loader_test.cpp b/libnativeloader/native_loader_test.cpp index 75cbc601bc..cc43e58a00 100644 --- a/libnativeloader/native_loader_test.cpp +++ b/libnativeloader/native_loader_test.cpp @@ -94,12 +94,12 @@ class Platform { static std::unordered_map<std::string, Platform::mock_namespace_handle> namespaces = { {"system", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("system"))}, {"default", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("default"))}, - {"com.android.art", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com.android.art"))}, + {"com_android_art", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com_android_art"))}, {"sphal", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("sphal"))}, {"vndk", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("vndk"))}, - {"com.android.neuralnetworks", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com.android.neuralnetworks"))}, - {"com.android.cronet", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com.android.cronet"))}, - {"com.android.os.statsd", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com.android.os.statsd"))}, + {"com_android_neuralnetworks", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com_android_neuralnetworks"))}, + {"com_android_cronet", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com_android_cronet"))}, + {"com_android_os_statsd", TO_MOCK_NAMESPACE(TO_ANDROID_NAMESPACE("com_android_os_statsd"))}, }; // The actual gmock object @@ -386,7 +386,7 @@ class NativeLoaderTest_Create : public NativeLoaderTest { .WillOnce(Return(true)); } if (expected_link_with_art_ns) { - EXPECT_CALL(*mock, mock_link_namespaces(Eq(IsBridged()), _, NsEq("com.android.art"), + EXPECT_CALL(*mock, mock_link_namespaces(Eq(IsBridged()), _, NsEq("com_android_art"), StrEq(expected_shared_libs_to_art_ns))) .WillOnce(Return(true)); } @@ -406,17 +406,17 @@ class NativeLoaderTest_Create : public NativeLoaderTest { .WillOnce(Return(true)); } if (expected_link_with_neuralnetworks_ns) { - EXPECT_CALL(*mock, mock_link_namespaces(Eq(IsBridged()), _, NsEq("com.android.neuralnetworks"), + EXPECT_CALL(*mock, mock_link_namespaces(Eq(IsBridged()), _, NsEq("com_android_neuralnetworks"), StrEq(expected_shared_libs_to_neuralnetworks_ns))) .WillOnce(Return(true)); } if (expected_link_with_cronet_ns) { - EXPECT_CALL(*mock, mock_link_namespaces(Eq(IsBridged()), _, NsEq("com.android.cronet"), + EXPECT_CALL(*mock, mock_link_namespaces(Eq(IsBridged()), _, NsEq("com_android_cronet"), StrEq(expected_shared_libs_to_cronet_ns))) .WillOnce(Return(true)); } if (expected_link_with_statsd_ns) { - EXPECT_CALL(*mock, mock_link_namespaces(Eq(IsBridged()), _, NsEq("com.android.os.statsd"), + EXPECT_CALL(*mock, mock_link_namespaces(Eq(IsBridged()), _, NsEq("com_android_os_statsd"), StrEq(expected_shared_libs_to_statsd_ns))) .WillOnce(Return(true)); } |