From 3bc8e218f97339b1c9106596960f5b27e8d1f89d Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Fri, 16 Jul 2021 14:00:37 +0100 Subject: [PATCH] Avoid permitted_packages related build failures in unbundled builds Unbundled builds cause AlwaysUsePrebuiltSdks() to return true which causes java_sdk_library_import modules to be preferred instead of their corresponding java_sdk_library module. That causes the platform-bootclasspath module to depend on prebuilt versions of modules like framework-statsd which currently do not specify permitted_packages and so cause a failure. This is a temporary hack to prevent an unbundled build from checking for permitted_packages. It can be removed once the prebuilts have been updated to include the permitted_packages. Bug: 193095050 Bug: 193889859 Test: m TARGET_BUILD_APPS=Calendar apps_only - before the change it failed in Soong. - after the change it started failing, later in Make, so the Soong problem has been worked around. - I reverted all the recent changes to permitted_packages and ran this and it still failed so that failure is unrelated to these changes. Change-Id: I213d35437d76d61cf616d1f16dae213b311c6c8e --- java/platform_bootclasspath.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/java/platform_bootclasspath.go b/java/platform_bootclasspath.go index c1e14b21e..8bed3e9e5 100644 --- a/java/platform_bootclasspath.go +++ b/java/platform_bootclasspath.go @@ -423,8 +423,13 @@ func (b *platformBootclasspathModule) generateBootImageBuildActions(ctx android. // Generate the framework profile rule bootFrameworkProfileRule(ctx, imageConfig) - // Generate the updatable bootclasspath packages rule. - generateUpdatableBcpPackagesRule(ctx, imageConfig, updatableModules) + // If always using prebuilt sdks then do not generate the updatable-bcp-packages.txt file as it + // will break because the prebuilts do not yet specify a permitted_packages property. + // TODO(b/193889859): Remove when the prebuilts have been updated. + if !ctx.Config().AlwaysUsePrebuiltSdks() { + // Generate the updatable bootclasspath packages rule. + generateUpdatableBcpPackagesRule(ctx, imageConfig, updatableModules) + } // Copy non-updatable module dex jars to their predefined locations. nonUpdatableBootDexJarsByModule := extractEncodedDexJarsFromModules(ctx, nonUpdatableModules)