Add product apk support from libnativeloader
Currently libnativeloader appends vendor lib path if apk is from vendor partition. Similar to this, as part of mainline core, we should add product lib path if apk if from product partition. Bug: 124705551 Test: m -j && tested from crosshatch with product apps (such as Wallpaper) Change-Id: Iaa8d0ea61b1b9ab8a1da676a492f75c6a5d71d5d
This commit is contained in:
@@ -1770,7 +1770,7 @@ Lcom/android/internal/os/BaseCommand;->mArgs:Landroid/os/ShellCommand;
|
|||||||
Lcom/android/internal/os/BatterySipper$DrainType;->values()[Lcom/android/internal/os/BatterySipper$DrainType;
|
Lcom/android/internal/os/BatterySipper$DrainType;->values()[Lcom/android/internal/os/BatterySipper$DrainType;
|
||||||
Lcom/android/internal/os/BinderInternal;->getContextObject()Landroid/os/IBinder;
|
Lcom/android/internal/os/BinderInternal;->getContextObject()Landroid/os/IBinder;
|
||||||
Lcom/android/internal/os/BinderInternal;->handleGc()V
|
Lcom/android/internal/os/BinderInternal;->handleGc()V
|
||||||
Lcom/android/internal/os/ClassLoaderFactory;->createClassloaderNamespace(Ljava/lang/ClassLoader;ILjava/lang/String;Ljava/lang/String;ZZ)Ljava/lang/String;
|
Lcom/android/internal/os/ClassLoaderFactory;->createClassloaderNamespace(Ljava/lang/ClassLoader;ILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Ljava/lang/String;
|
||||||
Lcom/android/internal/os/IDropBoxManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IDropBoxManagerService;
|
Lcom/android/internal/os/IDropBoxManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IDropBoxManagerService;
|
||||||
Lcom/android/internal/os/IDropBoxManagerService;->getNextEntry(Ljava/lang/String;JLjava/lang/String;)Landroid/os/DropBoxManager$Entry;
|
Lcom/android/internal/os/IDropBoxManagerService;->getNextEntry(Ljava/lang/String;JLjava/lang/String;)Landroid/os/DropBoxManager$Entry;
|
||||||
Lcom/android/internal/os/ProcessCpuTracker$Stats;->name:Ljava/lang/String;
|
Lcom/android/internal/os/ProcessCpuTracker$Stats;->name:Ljava/lang/String;
|
||||||
|
|||||||
@@ -115,20 +115,13 @@ public class ClassLoaderFactory {
|
|||||||
final ClassLoader classLoader = createClassLoader(dexPath, librarySearchPath, parent,
|
final ClassLoader classLoader = createClassLoader(dexPath, librarySearchPath, parent,
|
||||||
classLoaderName, sharedLibraries);
|
classLoaderName, sharedLibraries);
|
||||||
|
|
||||||
boolean isForVendor = false;
|
|
||||||
for (String path : dexPath.split(":")) {
|
|
||||||
if (path.startsWith("/vendor/")) {
|
|
||||||
isForVendor = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "createClassloaderNamespace");
|
Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "createClassloaderNamespace");
|
||||||
String errorMessage = createClassloaderNamespace(classLoader,
|
String errorMessage = createClassloaderNamespace(classLoader,
|
||||||
targetSdkVersion,
|
targetSdkVersion,
|
||||||
librarySearchPath,
|
librarySearchPath,
|
||||||
libraryPermittedPath,
|
libraryPermittedPath,
|
||||||
isNamespaceShared,
|
isNamespaceShared,
|
||||||
isForVendor);
|
dexPath);
|
||||||
Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
|
Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
|
||||||
|
|
||||||
if (errorMessage != null) {
|
if (errorMessage != null) {
|
||||||
@@ -144,5 +137,5 @@ public class ClassLoaderFactory {
|
|||||||
String librarySearchPath,
|
String librarySearchPath,
|
||||||
String libraryPermittedPath,
|
String libraryPermittedPath,
|
||||||
boolean isNamespaceShared,
|
boolean isNamespaceShared,
|
||||||
boolean isForVendor);
|
String dexPath);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,16 +28,16 @@ static jstring createClassloaderNamespace_native(JNIEnv* env,
|
|||||||
jstring librarySearchPath,
|
jstring librarySearchPath,
|
||||||
jstring libraryPermittedPath,
|
jstring libraryPermittedPath,
|
||||||
jboolean isShared,
|
jboolean isShared,
|
||||||
jboolean isForVendor) {
|
jstring dexPath) {
|
||||||
return android::CreateClassLoaderNamespace(env, targetSdkVersion,
|
return android::CreateClassLoaderNamespace(env, targetSdkVersion,
|
||||||
classLoader, isShared == JNI_TRUE,
|
classLoader, isShared == JNI_TRUE,
|
||||||
isForVendor == JNI_TRUE,
|
dexPath,
|
||||||
librarySearchPath, libraryPermittedPath);
|
librarySearchPath, libraryPermittedPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const JNINativeMethod g_methods[] = {
|
static const JNINativeMethod g_methods[] = {
|
||||||
{ "createClassloaderNamespace",
|
{ "createClassloaderNamespace",
|
||||||
"(Ljava/lang/ClassLoader;ILjava/lang/String;Ljava/lang/String;ZZ)Ljava/lang/String;",
|
"(Ljava/lang/ClassLoader;ILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Ljava/lang/String;",
|
||||||
reinterpret_cast<void*>(createClassloaderNamespace_native) },
|
reinterpret_cast<void*>(createClassloaderNamespace_native) },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user