Merge "Copy implementation and header jars to make when possible"
diff --git a/java/boot_jars.go b/java/boot_jars.go
index 5ec9f71..86ebe36 100644
--- a/java/boot_jars.go
+++ b/java/boot_jars.go
@@ -37,7 +37,7 @@
 	rule.Command().BuiltTool("check_boot_jars").
 		Input(ctx.Config().HostToolPath(ctx, "dexdump")).
 		Input(android.PathForSource(ctx, "build/soong/scripts/check_boot_jars/package_allowed_list.txt")).
-		Inputs(bootDexJarByModule.bootDexJars()).
+		Inputs(bootDexJarByModule.bootDexJarsWithoutCoverage()).
 		Text("&& touch").Output(timestamp)
 	rule.Build("boot_jars_package_check", "check boot jar packages")
 
diff --git a/java/hiddenapi_modular.go b/java/hiddenapi_modular.go
index 60300af..de72b39 100644
--- a/java/hiddenapi_modular.go
+++ b/java/hiddenapi_modular.go
@@ -589,6 +589,19 @@
 	return paths
 }
 
+// bootDexJarsWithoutCoverage returns the boot dex jar paths sorted by their keys without coverage
+// libraries if present.
+func (b bootDexJarByModule) bootDexJarsWithoutCoverage() android.Paths {
+	paths := android.Paths{}
+	for _, k := range android.SortedStringKeys(b) {
+		if k == "jacocoagent" {
+			continue
+		}
+		paths = append(paths, b[k])
+	}
+	return paths
+}
+
 // HiddenAPIOutput encapsulates the output from the hidden API processing.
 type HiddenAPIOutput struct {
 	HiddenAPIFlagOutput