summaryrefslogtreecommitdiff
path: root/apex
diff options
context:
space:
mode:
author Spandan Das <spandandas@google.com> 2024-05-21 18:59:23 +0000
committer Spandan Das <spandandas@google.com> 2024-05-21 18:59:23 +0000
commit5f1f9405b5000331b9422673e7e973a69d2d7f61 (patch)
tree0d29d56f8433c7c6440ef43ea4e948a94e973446 /apex
parente0d5ea1d7c8fd09182328a6fb1bed2d804fa1de4 (diff)
Restrict validateApexClasspathFragments to active apex prebuilts
This is a followup to https://r.android.com/3073624 that moved validation of bcp jars to the top-level prebuilt apex. It is possible that there can be multiple prebuilt variants of a mainline module and each prebuilt might have a skew in bcp jars. This CL limits the check to only the selected apex prebuilt. Test: go test ./apex Bug: 328578801 Change-Id: If225a1af6004b6584b86ec442f99672f0d1f8314
Diffstat (limited to 'apex')
-rw-r--r--apex/platform_bootclasspath_test.go30
-rw-r--r--apex/prebuilt.go8
2 files changed, 36 insertions, 2 deletions
diff --git a/apex/platform_bootclasspath_test.go b/apex/platform_bootclasspath_test.go
index 9f1e1e16f..4a20cf0e3 100644
--- a/apex/platform_bootclasspath_test.go
+++ b/apex/platform_bootclasspath_test.go
@@ -865,6 +865,36 @@ func TestNonBootJarMissingInPrebuiltFragment(t *testing.T) {
},
}
+ // Another prebuilt apex, but this is not selected during the build.
+ prebuilt_apex {
+ name: "com.google.android.myapex.v2", // mainline prebuilt selection logic in soong relies on the naming convention com.google.android
+ apex_name: "myapex",
+ source_apex_name: "myapex",
+ src: "myapex.apex",
+ exported_bootclasspath_fragments: ["apex-fragment.v2"],
+ }
+
+ java_import {
+ name: "bar",
+ jars: ["bar.jar"],
+ apex_available: ["myapex"],
+ permitted_packages: ["bar"],
+ }
+
+ prebuilt_bootclasspath_fragment {
+ name: "apex-fragment.v2",
+ contents: ["bar"], // Unlike the source fragment, this is missing foo
+ apex_available:[ "myapex" ],
+ hidden_api: {
+ annotation_flags: "my-bootclasspath-fragment/annotation-flags.csv",
+ metadata: "my-bootclasspath-fragment/metadata.csv",
+ index: "my-bootclasspath-fragment/index.csv",
+ stub_flags: "my-bootclasspath-fragment/stub-flags.csv",
+ all_flags: "my-bootclasspath-fragment/all-flags.csv",
+ },
+ }
+
+
apex_contributions {
name: "my_apex_contributions",
api_domain: "myapex",
diff --git a/apex/prebuilt.go b/apex/prebuilt.go
index b2afa3933..9ad5159b5 100644
--- a/apex/prebuilt.go
+++ b/apex/prebuilt.go
@@ -848,7 +848,9 @@ func validateApexClasspathFragments(ctx android.ModuleContext) {
func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) {
// Validate contents of classpath fragments
- validateApexClasspathFragments(ctx)
+ if !p.IsHideFromMake() {
+ validateApexClasspathFragments(ctx)
+ }
p.apexKeysPath = writeApexKeys(ctx, p)
// TODO(jungjw): Check the key validity.
@@ -1074,7 +1076,9 @@ func (a *ApexSet) ApexInfoMutator(mctx android.TopDownMutatorContext) {
func (a *ApexSet) GenerateAndroidBuildActions(ctx android.ModuleContext) {
// Validate contents of classpath fragments
- validateApexClasspathFragments(ctx)
+ if !a.IsHideFromMake() {
+ validateApexClasspathFragments(ctx)
+ }
a.apexKeysPath = writeApexKeys(ctx, a)
a.installFilename = a.InstallFilename()