From 541056c3fa8014126cb92f6312362c8cedc7a7c8 Mon Sep 17 00:00:00 2001 From: Sasha Smundak Date: Mon, 28 Oct 2019 15:50:06 -0700 Subject: [PATCH] Add dont_merge_manifests attribute to android_test Bug: 122332514 Test: treehugger, convert cts/tests/tests/content Change-Id: Ib66fcafd7c31913402cd390dfecce292b1817729 --- androidmk/androidmk/android.go | 1 + java/aar.go | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/androidmk/androidmk/android.go b/androidmk/androidmk/android.go index be5287990..0082d8b0b 100644 --- a/androidmk/androidmk/android.go +++ b/androidmk/androidmk/android.go @@ -198,6 +198,7 @@ func init() { "LOCAL_EXPORT_PACKAGE_RESOURCES": "export_package_resources", "LOCAL_PRIVILEGED_MODULE": "privileged", "LOCAL_AAPT_INCLUDE_ALL_RESOURCES": "aapt_include_all_resources", + "LOCAL_DONT_MERGE_MANIFESTS": "dont_merge_manifests", "LOCAL_USE_EMBEDDED_NATIVE_LIBS": "use_embedded_native_libs", "LOCAL_USE_EMBEDDED_DEX": "use_embedded_dex", diff --git a/java/aar.go b/java/aar.go index 6426ac365..96eb5c0fc 100644 --- a/java/aar.go +++ b/java/aar.go @@ -72,6 +72,9 @@ type aaptProperties struct { // paths to additional manifest files to merge with main manifest. Additional_manifests []string `android:"path"` + + // do not include AndroidManifest from dependent libraries + Dont_merge_manifests *bool } type aapt struct { @@ -225,7 +228,7 @@ func (a *aapt) buildActions(ctx android.ModuleContext, sdkContext sdkContext, ex a.transitiveManifestPaths = append(android.Paths{manifestPath}, additionalManifests...) a.transitiveManifestPaths = append(a.transitiveManifestPaths, transitiveStaticLibManifests...) - if len(a.transitiveManifestPaths) > 1 { + if len(a.transitiveManifestPaths) > 1 && !Bool(a.aaptProperties.Dont_merge_manifests) { a.mergedManifestFile = manifestMerger(ctx, a.transitiveManifestPaths[0], a.transitiveManifestPaths[1:], a.isLibrary) if !a.isLibrary { // Only use the merged manifest for applications. For libraries, the transitive closure of manifests