Preopt: Do not strip non-image boot class path jars.

Test: Pixel 2 XL boots.
Bug: 119868597
Change-Id: I7bd3b7655aecf1a8c26dd8d4d18d3eec685ece88
This commit is contained in:
Vladimir Marko 2018-12-21 15:54:16 +00:00 committed by Nicolas Geoffray
parent ae1366f60d
commit e8b00d69c0
4 changed files with 18 additions and 0 deletions

View File

@ -749,6 +749,14 @@ func (c *config) ModulesLoadedByPrivilegedModules() []string {
return c.productVariables.ModulesLoadedByPrivilegedModules
}
func (c *config) BootJars() []string {
return c.productVariables.BootJars
}
func (c *config) PreoptBootJars() []string {
return c.productVariables.PreoptBootJars
}
func (c *config) DisableDexPreopt(name string) bool {
return Bool(c.productVariables.DisableDexPreopt) || InList(name, c.productVariables.DisableDexPreoptModules)
}

View File

@ -198,6 +198,9 @@ type productVariables struct {
UncompressPrivAppDex *bool `json:",omitempty"`
ModulesLoadedByPrivilegedModules []string `json:",omitempty"`
BootJars []string `json:",omitempty"`
PreoptBootJars []string `json:",omitempty"`
DisableDexPreopt *bool `json:",omitempty"`
DisableDexPreoptModules []string `json:",omitempty"`
DexPreoptProfileDir *string `json:",omitempty"`

View File

@ -36,6 +36,7 @@ type GlobalConfig struct {
PreoptBootClassPathDexLocations []string // virtual locations of boot class path files
BootJars []string // modules for jars that form the boot class path
PreoptBootJars []string // modules for jars that form the boot image
SystemServerJars []string // jars that form the system server
SystemServerApps []string // apps that are loaded into system server
SpeedApps []string // apps that should be speed optimized

View File

@ -1364,6 +1364,12 @@ type Library struct {
}
func (j *Library) shouldUncompressDex(ctx android.ModuleContext) bool {
// Store uncompressed (and do not strip) dex files from boot class path jars that are not
// part of the boot image.
if inList(ctx.ModuleName(), ctx.Config().BootJars()) &&
!inList(ctx.ModuleName(), ctx.Config().PreoptBootJars()) {
return true
}
return false
}