Install required deps for flattened APEX.
The primary boot image is a required dep of the ART APEX. It needs to be installed no matter the APEX is flattened or not. Bug: 220991677 Test: 1. m OVERRIDE_TARGET_FLATTEN_APEX=true com.android.art 2. See boot.art in /system/framework/<isa> Change-Id: I1a69ae1b86df97fc44ea6c75c8bb9ec960c8d249
This commit is contained in:
parent
4c696f2a89
commit
d70dff7c9b
2 changed files with 42 additions and 12 deletions
|
@ -309,7 +309,14 @@ func (a *apexBundle) androidMkForFiles(w io.Writer, apexBundleName, apexName, mo
|
||||||
return moduleNames
|
return moduleNames
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *apexBundle) writeRequiredModules(w io.Writer) {
|
func (a *apexBundle) writeRequiredModules(w io.Writer, moduleNames []string) {
|
||||||
|
if len(moduleNames) > 0 {
|
||||||
|
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(moduleNames, " "))
|
||||||
|
}
|
||||||
|
if len(a.requiredDeps) > 0 {
|
||||||
|
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(a.requiredDeps, " "))
|
||||||
|
}
|
||||||
|
|
||||||
var required []string
|
var required []string
|
||||||
var targetRequired []string
|
var targetRequired []string
|
||||||
var hostRequired []string
|
var hostRequired []string
|
||||||
|
@ -349,10 +356,7 @@ func (a *apexBundle) androidMkForType() android.AndroidMkData {
|
||||||
fmt.Fprintln(w, "LOCAL_PATH :=", moduleDir)
|
fmt.Fprintln(w, "LOCAL_PATH :=", moduleDir)
|
||||||
fmt.Fprintln(w, "LOCAL_MODULE :=", name+a.suffix)
|
fmt.Fprintln(w, "LOCAL_MODULE :=", name+a.suffix)
|
||||||
data.Entries.WriteLicenseVariables(w)
|
data.Entries.WriteLicenseVariables(w)
|
||||||
if len(moduleNames) > 0 {
|
a.writeRequiredModules(w, moduleNames)
|
||||||
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES :=", strings.Join(moduleNames, " "))
|
|
||||||
}
|
|
||||||
a.writeRequiredModules(w)
|
|
||||||
fmt.Fprintln(w, "include $(BUILD_PHONY_PACKAGE)")
|
fmt.Fprintln(w, "include $(BUILD_PHONY_PACKAGE)")
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -388,13 +392,7 @@ func (a *apexBundle) androidMkForType() android.AndroidMkData {
|
||||||
if len(a.overridableProperties.Overrides) > 0 {
|
if len(a.overridableProperties.Overrides) > 0 {
|
||||||
fmt.Fprintln(w, "LOCAL_OVERRIDES_MODULES :=", strings.Join(a.overridableProperties.Overrides, " "))
|
fmt.Fprintln(w, "LOCAL_OVERRIDES_MODULES :=", strings.Join(a.overridableProperties.Overrides, " "))
|
||||||
}
|
}
|
||||||
if len(moduleNames) > 0 {
|
a.writeRequiredModules(w, moduleNames)
|
||||||
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(moduleNames, " "))
|
|
||||||
}
|
|
||||||
if len(a.requiredDeps) > 0 {
|
|
||||||
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(a.requiredDeps, " "))
|
|
||||||
}
|
|
||||||
a.writeRequiredModules(w)
|
|
||||||
|
|
||||||
if a.mergedNotices.Merged.Valid() {
|
if a.mergedNotices.Merged.Valid() {
|
||||||
fmt.Fprintln(w, "LOCAL_NOTICE_FILE :=", a.mergedNotices.Merged.Path().String())
|
fmt.Fprintln(w, "LOCAL_NOTICE_FILE :=", a.mergedNotices.Merged.Path().String())
|
||||||
|
|
|
@ -8661,6 +8661,38 @@ func TestAndroidMk_RequiredModules(t *testing.T) {
|
||||||
ensureContains(t, androidMk, "LOCAL_REQUIRED_MODULES += otherapex")
|
ensureContains(t, androidMk, "LOCAL_REQUIRED_MODULES += otherapex")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAndroidMk_RequiredDeps(t *testing.T) {
|
||||||
|
ctx := testApex(t, `
|
||||||
|
apex {
|
||||||
|
name: "myapex",
|
||||||
|
key: "myapex.key",
|
||||||
|
updatable: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
apex_key {
|
||||||
|
name: "myapex.key",
|
||||||
|
public_key: "testkey.avbpubkey",
|
||||||
|
private_key: "testkey.pem",
|
||||||
|
}
|
||||||
|
`)
|
||||||
|
|
||||||
|
bundle := ctx.ModuleForTests("myapex", "android_common_myapex_image").Module().(*apexBundle)
|
||||||
|
bundle.requiredDeps = append(bundle.requiredDeps, "foo")
|
||||||
|
data := android.AndroidMkDataForTest(t, ctx, bundle)
|
||||||
|
var builder strings.Builder
|
||||||
|
data.Custom(&builder, bundle.BaseModuleName(), "TARGET_", "", data)
|
||||||
|
androidMk := builder.String()
|
||||||
|
ensureContains(t, androidMk, "LOCAL_REQUIRED_MODULES += foo")
|
||||||
|
|
||||||
|
flattenedBundle := ctx.ModuleForTests("myapex", "android_common_myapex_flattened").Module().(*apexBundle)
|
||||||
|
flattenedBundle.requiredDeps = append(flattenedBundle.requiredDeps, "foo")
|
||||||
|
flattenedData := android.AndroidMkDataForTest(t, ctx, flattenedBundle)
|
||||||
|
var flattenedBuilder strings.Builder
|
||||||
|
flattenedData.Custom(&flattenedBuilder, flattenedBundle.BaseModuleName(), "TARGET_", "", flattenedData)
|
||||||
|
flattenedAndroidMk := flattenedBuilder.String()
|
||||||
|
ensureContains(t, flattenedAndroidMk, "LOCAL_REQUIRED_MODULES += foo")
|
||||||
|
}
|
||||||
|
|
||||||
func TestApexOutputFileProducer(t *testing.T) {
|
func TestApexOutputFileProducer(t *testing.T) {
|
||||||
for _, tc := range []struct {
|
for _, tc := range []struct {
|
||||||
name string
|
name string
|
||||||
|
|
Loading…
Reference in a new issue