summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yi-yo Chiang <yochiang@google.com> 2020-07-10 03:31:35 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-07-10 03:31:35 +0000
commitbbdb45ab15a6563892edfd07c5a46333499b2a57 (patch)
tree09aa36d3c5a9d384ca2ea6c25320dfff037a6bfa
parent57b7cba0ca606097d016e60928744d0fc944bd8c (diff)
parentaf73b7d2b7eb4049d5faa2fd070606557e457bb1 (diff)
Merge "ApexManager: Allow duplicating VNDK APEX package names" into rvc-dev-plus-aosp am: 397e7efce4 am: af73b7d2b7
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12086438 Change-Id: I5373d824bbfbdb221557c9e1698574aba423581a
-rw-r--r--services/core/java/com/android/server/pm/ApexManager.java6
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);