summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libnativeloader/library_namespaces.cpp8
-rw-r--r--libnativeloader/native_loader.cpp2
-rw-r--r--libnativeloader/native_loader_test.cpp16
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));
}