Enable namespaces for all target sdk versions
We previously relied on the fact that target sdk version 0
implies system_server, which is not true, target sdk version
may be set to 0 for other apps and it means 1 - the earliest
version of android. This change enables namespaces for
apps targeting all sdk version and for system_server.
Bug: http://b/27702070
Change-Id: I16fbdeb6868c7035aec71132c80c150c08ea2cc3
(cherry picked from commit 213676b88019016f8c968a05c50a196e2aaaeff8)
diff --git a/libnativeloader/native_loader.cpp b/libnativeloader/native_loader.cpp
index 81dc316..af14be8 100644
--- a/libnativeloader/native_loader.cpp
+++ b/libnativeloader/native_loader.cpp
@@ -172,10 +172,6 @@
static std::mutex g_namespaces_mutex;
static LibraryNamespaces* g_namespaces = new LibraryNamespaces;
-
-static bool namespaces_enabled(uint32_t target_sdk_version) {
- return target_sdk_version > 0;
-}
#endif
void InitializeNativeLoader() {
@@ -193,10 +189,7 @@
jstring library_path,
jstring permitted_path) {
#if defined(__ANDROID__)
- if (!namespaces_enabled(target_sdk_version)) {
- return nullptr;
- }
-
+ UNUSED(target_sdk_version);
std::lock_guard<std::mutex> guard(g_namespaces_mutex);
android_namespace_t* ns = g_namespaces->Create(env,
class_loader,
@@ -220,7 +213,8 @@
jobject class_loader,
jstring library_path) {
#if defined(__ANDROID__)
- if (!namespaces_enabled(target_sdk_version) || class_loader == nullptr) {
+ UNUSED(target_sdk_version);
+ if (class_loader == nullptr) {
return dlopen(path, RTLD_NOW);
}