summaryrefslogtreecommitdiff
path: root/libnativeloader/library_namespaces.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libnativeloader/library_namespaces.cpp')
-rw-r--r--libnativeloader/library_namespaces.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/libnativeloader/library_namespaces.cpp b/libnativeloader/library_namespaces.cpp
index 8e9b6ea6da..9c658d78e5 100644
--- a/libnativeloader/library_namespaces.cpp
+++ b/libnativeloader/library_namespaces.cpp
@@ -45,6 +45,7 @@ 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";
// classloader-namespace is a linker namespace that is created for the loaded
// app. To be specific, it is created for the app classloader. When
@@ -295,6 +296,16 @@ Result<NativeLoaderNamespace*> LibraryNamespaces::Create(JNIEnv* env, uint32_t t
}
}
+ // Give access to StatsdAPI libraries
+ auto statsd_ns =
+ NativeLoaderNamespace::GetExportedNamespace(kStatsdNamespaceName, is_bridged);
+ if (statsd_ns.ok()) {
+ linked = app_ns->Link(*statsd_ns, statsd_public_libraries());
+ if (!linked.ok()) {
+ 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 system namespace