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
This commit is contained in:
Dimitry Ivanov 2016-04-20 16:07:30 -07:00
parent d61bfb9a79
commit 213676b880
1 changed files with 3 additions and 9 deletions

View File

@ -159,10 +159,6 @@ class LibraryNamespaces {
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() {
@ -180,10 +176,7 @@ jstring CreateClassLoaderNamespace(JNIEnv* env,
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,
@ -206,7 +199,8 @@ void* OpenNativeLibrary(JNIEnv* env,
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);
}