diff options
| author | 2020-07-10 03:22:08 +0000 | |
|---|---|---|
| committer | 2020-07-10 03:22:08 +0000 | |
| commit | af73b7d2b7eb4049d5faa2fd070606557e457bb1 (patch) | |
| tree | 1be827fb6f06e33f1caa38fd8c76c21105a997e3 | |
| parent | bf8e96d3ece621fc27c3d67f14fd77e6f0793119 (diff) | |
| parent | 397e7efce4874f25f605ab5c271d4376db4a4568 (diff) | |
Merge "ApexManager: Allow duplicating VNDK APEX package names" into rvc-dev-plus-aosp am: 397e7efce4
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12086438
Change-Id: I963b658bdcb54a4468ca8da3d4a33ffbd50570f4
| -rw-r--r-- | services/core/java/com/android/server/pm/ApexManager.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/ApexManager.java b/services/core/java/com/android/server/pm/ApexManager.java index d9d949154ce1..e12cb8f533a7 100644 --- a/services/core/java/com/android/server/pm/ApexManager.java +++ b/services/core/java/com/android/server/pm/ApexManager.java @@ -77,6 +77,8 @@ public abstract class ApexManager { public static final int MATCH_ACTIVE_PACKAGE = 1 << 0; static final int MATCH_FACTORY_PACKAGE = 1 << 1; + private static final String VNDK_APEX_MODULE_NAME_PREFIX = "com.android.vndk."; + private static final Singleton<ApexManager> sApexManagerSingleton = new Singleton<ApexManager>() { @Override @@ -521,7 +523,9 @@ public abstract class ApexManager { activePackagesSet.add(packageInfo.packageName); } if (ai.isFactory) { - if (factoryPackagesSet.contains(packageInfo.packageName)) { + // Don't throw when the duplicating APEX is VNDK APEX + if (factoryPackagesSet.contains(packageInfo.packageName) + && !ai.moduleName.startsWith(VNDK_APEX_MODULE_NAME_PREFIX)) { throw new IllegalStateException( "Two factory packages have the same name: " + packageInfo.packageName); |