Allow installing boot images outside of APEX.
After this change, `bootImageConfig.installDirOnDevice` can be set to a path outside of the APEX, in which case, the boot image will not be installed in the APEX. Instead, it will be installed to the given path by Make. This is a no-op change. Current behavior is not affected. Bug: 211973309 Test: m nothing Test: - 1. m com.android.art 2. See the boot image still being installed in the ART APEX. Test: - 1. Change `installDirOnDevice` of the ART boot image config to `system/framework`. 2. See the boot image being installed in `/system/framework/<arch>`. Change-Id: Ib13b17cc9e94dc5754c9b51b04df3307323b8783
This commit is contained in:
@@ -57,6 +57,25 @@ func (install *dexpreopterInstall) SubModuleName() string {
|
||||
return "-dexpreopt-" + install.name
|
||||
}
|
||||
|
||||
// Returns Make entries for installing the file.
|
||||
//
|
||||
// This function uses a value receiver rather than a pointer receiver to ensure that the object is
|
||||
// safe to use in `android.AndroidMkExtraEntriesFunc`.
|
||||
func (install dexpreopterInstall) ToMakeEntries() android.AndroidMkEntries {
|
||||
return android.AndroidMkEntries{
|
||||
Class: "ETC",
|
||||
SubName: install.SubModuleName(),
|
||||
OutputFile: android.OptionalPathForPath(install.outputPathOnHost),
|
||||
ExtraEntries: []android.AndroidMkExtraEntriesFunc{
|
||||
func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
|
||||
entries.SetString("LOCAL_MODULE_PATH", install.installDirOnDevice.String())
|
||||
entries.SetString("LOCAL_INSTALLED_MODULE_STEM", install.installFileOnDevice)
|
||||
entries.SetString("LOCAL_NOT_AVAILABLE_FOR_PLATFORM", "false")
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
type dexpreopter struct {
|
||||
dexpreoptProperties DexpreoptProperties
|
||||
|
||||
@@ -383,19 +402,7 @@ func (d *dexpreopter) DexpreoptBuiltInstalledForApex() []dexpreopterInstall {
|
||||
func (d *dexpreopter) AndroidMkEntriesForApex() []android.AndroidMkEntries {
|
||||
var entries []android.AndroidMkEntries
|
||||
for _, install := range d.builtInstalledForApex {
|
||||
install := install
|
||||
entries = append(entries, android.AndroidMkEntries{
|
||||
Class: "ETC",
|
||||
SubName: install.SubModuleName(),
|
||||
OutputFile: android.OptionalPathForPath(install.outputPathOnHost),
|
||||
ExtraEntries: []android.AndroidMkExtraEntriesFunc{
|
||||
func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
|
||||
entries.SetString("LOCAL_MODULE_PATH", install.installDirOnDevice.String())
|
||||
entries.SetString("LOCAL_INSTALLED_MODULE_STEM", install.installFileOnDevice)
|
||||
entries.SetString("LOCAL_NOT_AVAILABLE_FOR_PLATFORM", "false")
|
||||
},
|
||||
},
|
||||
})
|
||||
entries = append(entries, install.ToMakeEntries())
|
||||
}
|
||||
return entries
|
||||
}
|
||||
|
Reference in New Issue
Block a user