Merge "ApexManager: Allow duplicating VNDK APEX package names" into rvc-dev-plus-aosp am: 397e7efce4 am: af73b7d2b7 am: bbdb45ab15

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12086438

Change-Id: Ib00f74a6a34f2a9fa9126ed2c99409588cc7aa5b
This commit is contained in:
Yi-yo Chiang
2020-07-10 03:45:51 +00:00
committed by Automerger Merge Worker

View File

@@ -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
@@ -535,7 +537,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);