From 2c8888edef945d8fe97b6324421b4d43a49d61e1 Mon Sep 17 00:00:00 2001 From: Bob Badour Date: Mon, 4 Apr 2022 16:12:21 -0700 Subject: [PATCH] Keep dependency files out of the apk file. Bug: 227682036 Test: TARGET_BUILD_VARIANT=userdebug UNBUNDLED_BUILD_SDKS_FROM_SOURCE=true vendor/google/build/mainline_modules_bundles.sh -j97 Change-Id: I1a9775af7c652191bb1ce3b97c1cb9365b469c19 --- apex/builder.go | 12 +++++++++--- java/app.go | 12 +++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/apex/builder.go b/apex/builder.go index 50c8dd122..ea61e1ae8 100644 --- a/apex/builder.go +++ b/apex/builder.go @@ -617,10 +617,16 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) { } // Create a NOTICE file, and embed it as an asset file in the APEX. - a.htmlGzNotice = android.PathForModuleOut(ctx, "NOTICE", "NOTICE.html.gz") + a.htmlGzNotice = android.PathForModuleOut(ctx, "NOTICE.html.gz") android.BuildNoticeHtmlOutputFromLicenseMetadata(ctx, a.htmlGzNotice) - implicitInputs = append(implicitInputs, a.htmlGzNotice) - optFlags = append(optFlags, "--assets_dir "+filepath.Dir(a.htmlGzNotice.String())) + noticeAssetPath := android.PathForModuleOut(ctx, "NOTICE", "NOTICE.html.gz") + builder := android.NewRuleBuilder(pctx, ctx) + builder.Command().Text("cp"). + Input(a.htmlGzNotice). + Output(noticeAssetPath) + builder.Build("notice_dir", "Building notice dir") + implicitInputs = append(implicitInputs, noticeAssetPath) + optFlags = append(optFlags, "--assets_dir "+filepath.Dir(noticeAssetPath.String())) if (moduleMinSdkVersion.GreaterThan(android.SdkVersion_Android10) && !a.shouldGenerateHashtree()) && !compressionEnabled { // Apexes which are supposed to be installed in builtin dirs(/system, etc) diff --git a/java/app.go b/java/app.go index 5b1daa412..21ee34e7c 100755 --- a/java/app.go +++ b/java/app.go @@ -586,10 +586,16 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) { } a.onDeviceDir = android.InstallPathToOnDevicePath(ctx, a.installDir) - noticeFile := android.PathForModuleOut(ctx, "NOTICE", "NOTICE.html.gz") - android.BuildNoticeHtmlOutputFromLicenseMetadata(ctx, noticeFile) if Bool(a.appProperties.Embed_notices) || ctx.Config().IsEnvTrue("ALWAYS_EMBED_NOTICES") { - a.aapt.noticeFile = android.OptionalPathForPath(noticeFile) + noticeFile := android.PathForModuleOut(ctx, "NOTICE.html.gz") + android.BuildNoticeHtmlOutputFromLicenseMetadata(ctx, noticeFile) + noticeAssetPath := android.PathForModuleOut(ctx, "NOTICE", "NOTICE.html.gz") + builder := android.NewRuleBuilder(pctx, ctx) + builder.Command().Text("cp"). + Input(noticeFile). + Output(noticeAssetPath) + builder.Build("notice_dir", "Building notice dir") + a.aapt.noticeFile = android.OptionalPathForPath(noticeAssetPath) } a.classLoaderContexts = a.usesLibrary.classLoaderContextForUsesLibDeps(ctx)