diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-06-22 18:14:02 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-06-22 18:14:02 +0000 |
commit | 2a3106623fe64b589f27ce79c44042ae53aa4016 (patch) | |
tree | 9fc9514e02a40a43d0af7dd5910627c36443e801 | |
parent | f075558cd27d51d5e89cbc66b999aff4af80a843 (diff) | |
parent | cb302ae4f0deca04042b6573c3742c68da1f6d86 (diff) | |
download | base-2a3106623fe64b589f27ce79c44042ae53aa4016.tar.gz |
Merge "dexopt: Drop native libraries from the class loader context." into sc-dev am: cb302ae4f0
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15055237
Change-Id: Iad05cb99209ba2b2fd22f831a082a3ebd98c7ef7
-rw-r--r-- | services/core/java/com/android/server/pm/PackageDexOptimizer.java | 4 | ||||
-rw-r--r-- | services/core/java/com/android/server/pm/pkg/PackageStateUnserialized.java | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java index 5fd8e3c6e302..44f7d8869322 100644 --- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java +++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java @@ -177,8 +177,10 @@ public class PackageDexOptimizer { private int performDexOptLI(AndroidPackage pkg, @NonNull PackageSetting pkgSetting, String[] targetInstructionSets, CompilerStats.PackageStats packageStats, PackageDexUsage.PackageUseInfo packageUseInfo, DexoptOptions options) { + // ClassLoader only refers non-native (jar) shared libraries and must ignore + // native (so) shared libraries. See also LoadedApk#createSharedLibraryLoader(). final List<SharedLibraryInfo> sharedLibraries = pkgSetting.getPkgState() - .getUsesLibraryInfos(); + .getNonNativeUsesLibraryInfos(); final String[] instructionSets = targetInstructionSets != null ? targetInstructionSets : getAppDexInstructionSets( AndroidPackageUtils.getPrimaryCpuAbi(pkg, pkgSetting), diff --git a/services/core/java/com/android/server/pm/pkg/PackageStateUnserialized.java b/services/core/java/com/android/server/pm/pkg/PackageStateUnserialized.java index 05879ec9545e..fad0aefd3c0a 100644 --- a/services/core/java/com/android/server/pm/pkg/PackageStateUnserialized.java +++ b/services/core/java/com/android/server/pm/pkg/PackageStateUnserialized.java @@ -28,6 +28,7 @@ import com.android.server.pm.PackageSetting; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * For use by {@link PackageSetting} to maintain functionality that used to exist in @@ -110,6 +111,10 @@ public class PackageStateUnserialized { this.overrideSeInfo = other.overrideSeInfo; } + public @NonNull List<SharedLibraryInfo> getNonNativeUsesLibraryInfos() { + return getUsesLibraryInfos().stream() + .filter((l) -> !l.isNative()).collect(Collectors.toList()); + } // Code below generated by codegen v1.0.14. |