Make PRODUCT_BOOT_JARS and PRODUCT_UPDATABLE_BOOT_JARS disjoint.

This is to unify boot jars with system server jars:
PRODUCT_SYSTEM_SERVER_JARS and PRODUCT_UPDATABLE_SYSTEM_SERVER_JARS
do not overlap.

Test: aosp_walleye-userdebug boots

Exempt-From-Owner-Approval: cherry-pick.
Bug: 146363577
Change-Id: If001049a46f8e9d38921dabeedbd61e971ebfe73
Merged-In: If001049a46f8e9d38921dabeedbd61e971ebfe73
(cherry picked from commit ef4358e536)
This commit is contained in:
Ulya Trafimovich
2020-02-10 15:29:28 +00:00
committed by Ulyana Trafimovich
parent 4e29184a4e
commit 4cdada2d1f
4 changed files with 26 additions and 20 deletions

View File

@@ -923,8 +923,23 @@ func (c *config) ModulesLoadedByPrivilegedModules() []string {
return c.productVariables.ModulesLoadedByPrivilegedModules
}
// Expected format for apexJarValue = <apex name>:<jar name>
func SplitApexJarPair(apexJarValue string) (string, string) {
var apexJarPair []string = strings.SplitN(apexJarValue, ":", 2)
if apexJarPair == nil || len(apexJarPair) != 2 {
panic(fmt.Errorf("malformed apexJarValue: %q, expected format: <apex>:<jar>",
apexJarValue))
}
return apexJarPair[0], apexJarPair[1]
}
func (c *config) BootJars() []string {
return c.productVariables.BootJars
jars := c.productVariables.BootJars
for _, p := range c.productVariables.UpdatableBootJars {
_, jar := SplitApexJarPair(p)
jars = append(jars, jar)
}
return jars
}
func (c *config) DexpreoptGlobalConfig(ctx PathContext) ([]byte, error) {

View File

@@ -230,7 +230,8 @@ type productVariables struct {
UncompressPrivAppDex *bool `json:",omitempty"`
ModulesLoadedByPrivilegedModules []string `json:",omitempty"`
BootJars []string `json:",omitempty"`
BootJars []string `json:",omitempty"`
UpdatableBootJars []string `json:",omitempty"`
IntegerOverflowExcludePaths []string `json:",omitempty"`

View File

@@ -102,7 +102,7 @@ func dexpreoptDisabled(global GlobalConfig, module ModuleConfig) bool {
// Don't preopt system server jars that are updatable.
for _, p := range global.UpdatableSystemServerJars {
if _, jar := SplitApexJarPair(p); jar == module.Name {
if _, jar := android.SplitApexJarPair(p); jar == module.Name {
return true
}
}
@@ -536,19 +536,9 @@ func makefileMatch(pattern, s string) bool {
}
}
// Expected format for apexJarValue = <apex name>:<jar name>
func SplitApexJarPair(apexJarValue string) (string, string) {
var apexJarPair []string = strings.SplitN(apexJarValue, ":", 2)
if apexJarPair == nil || len(apexJarPair) != 2 {
panic(fmt.Errorf("malformed apexJarValue: %q, expected format: <apex>:<jar>",
apexJarValue))
}
return apexJarPair[0], apexJarPair[1]
}
// Expected format for apexJarValue = <apex name>:<jar name>
func GetJarLocationFromApexJarPair(apexJarValue string) string {
apex, jar := SplitApexJarPair(apexJarValue)
apex, jar := android.SplitApexJarPair(apexJarValue)
return filepath.Join("/apex", apex, "javalib", jar+".jar")
}

View File

@@ -115,16 +115,16 @@ func stemOf(moduleName string) string {
func getJarsFromApexJarPairs(apexJarPairs []string) []string {
modules := make([]string, len(apexJarPairs))
for i, p := range apexJarPairs {
_, jar := dexpreopt.SplitApexJarPair(p)
_, jar := android.SplitApexJarPair(p)
modules[i] = jar
}
return modules
}
var (
bootImageConfigKey = android.NewOnceKey("bootImageConfig")
artBootImageName = "art"
frameworkBootImageName = "boot"
bootImageConfigKey = android.NewOnceKey("bootImageConfig")
artBootImageName = "art"
frameworkBootImageName = "boot"
)
// Construct the global boot image configs.
@@ -179,8 +179,8 @@ func genBootImageConfigs(ctx android.PathContext) map[string]*bootImageConfig {
}
configs := map[string]*bootImageConfig{
artBootImageName: &artCfg,
frameworkBootImageName: &frameworkCfg,
artBootImageName: &artCfg,
frameworkBootImageName: &frameworkCfg,
}
// common to all configs