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 213676b880)
This commit is contained in:
parent
f92838ca1d
commit
5539db0b4f
1 changed files with 3 additions and 9 deletions
|
|
@ -172,10 +172,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() {
|
||||
|
|
@ -193,10 +189,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,
|
||||
|
|
@ -220,7 +213,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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue