Handle boot jars on /system_ext correctly.

When Soong looks for boot jars among all modules, it applies certain
constraints to each module that looks like a boot jar (e.g. that it
comes from the right apex or platform). Previously these constraints did
not handle boot jars on /system_ext correctly (they were handled like
apex jars, while they should be handled like platform jars).

Bug: 154976937
Test: m nothing (the modified Soong test would fail previously)
Change-Id: I0746a2fd276ab5ef0400340c5b61cf26c2570e5a
This commit is contained in:
Ulya Trafimovich 2021-04-09 17:41:24 +01:00
parent 76579e0e9a
commit e736e13a8d
2 changed files with 3 additions and 2 deletions

View file

@ -484,7 +484,7 @@ func getBootJar(ctx android.SingletonContext, bootjars android.ConfiguredJarList
// Now match the apex part of the boot image configuration.
requiredApex := bootjars.Apex(index)
if requiredApex == "platform" {
if requiredApex == "platform" || requiredApex == "system_ext" {
if len(apexInfo.InApexes) != 0 {
// A platform variant is required but this is for an apex so ignore it.
return -1, nil, nil

View file

@ -35,6 +35,7 @@ func testDexpreoptBoot(t *testing.T, ruleFile string, expectedInputs, expectedOu
name: "bar",
srcs: ["b.java"],
installable: true,
system_ext_specific: true,
}
dex_import {
@ -47,7 +48,7 @@ func testDexpreoptBoot(t *testing.T, ruleFile string, expectedInputs, expectedOu
prepareForJavaTest,
PrepareForTestWithJavaSdkLibraryFiles,
FixtureWithLastReleaseApis("foo"),
dexpreopt.FixtureSetBootJars("platform:foo", "platform:bar", "platform:baz"),
dexpreopt.FixtureSetBootJars("platform:foo", "system_ext:bar", "platform:baz"),
).RunTestWithBp(t, bp)
dexpreoptBootJars := result.SingletonForTests("dex_bootjars")