Loading Android.bp +0 −1 Original line number Original line Diff line number Diff line Loading @@ -55,7 +55,6 @@ bootstrap_go_package { "android/namespace.go", "android/namespace.go", "android/neverallow.go", "android/neverallow.go", "android/onceper.go", "android/onceper.go", "android/override_module.go", "android/package_ctx.go", "android/package_ctx.go", "android/paths.go", "android/paths.go", "android/prebuilt.go", "android/prebuilt.go", Loading android/config.go +1 −15 Original line number Original line Diff line number Diff line Loading @@ -895,30 +895,16 @@ func (c *deviceConfig) PlatPrivateSepolicyDirs() []string { } } func (c *deviceConfig) OverrideManifestPackageNameFor(name string) (manifestName string, overridden bool) { func (c *deviceConfig) OverrideManifestPackageNameFor(name string) (manifestName string, overridden bool) { if newManifestName, overridden := c.manifestPackageNameOverrides().Load(name); overridden { return newManifestName.(string), true } return findOverrideValue(c.config.productVariables.ManifestPackageNameOverrides, name, return findOverrideValue(c.config.productVariables.ManifestPackageNameOverrides, name, "invalid override rule %q in PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES should be <module_name>:<manifest_name>") "invalid override rule %q in PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES should be <module_name>:<manifest_name>") } } func (c *deviceConfig) OverrideCertificateFor(name string) (certificatePath string, overridden bool) { func (c *deviceConfig) OverrideCertificateFor(name string) (certificatePath string, overridden bool) { if newCert, overridden := c.certificateOverrides().Load(name); overridden { return findOverrideValue(c.config.productVariables.CertificateOverrides, name, return newCert.(string), true } newCert, overridden := findOverrideValue(c.config.productVariables.CertificateOverrides, name, "invalid override rule %q in PRODUCT_CERTIFICATE_OVERRIDES should be <module_name>:<certificate_module_name>") "invalid override rule %q in PRODUCT_CERTIFICATE_OVERRIDES should be <module_name>:<certificate_module_name>") if overridden { // PRODUCT_CERTIFICATE_OVERRIDES only supports cert modules. newCert = ":" + newCert } return newCert, overridden } } func (c *deviceConfig) OverridePackageNameFor(name string) string { func (c *deviceConfig) OverridePackageNameFor(name string) string { if newName, overridden := c.moduleNameOverrides().Load(name); overridden { return newName.(string) } newName, overridden := findOverrideValue( newName, overridden := findOverrideValue( c.config.productVariables.PackageNameOverrides, c.config.productVariables.PackageNameOverrides, name, name, Loading android/override_module.godeleted 100644 → 0 +0 −97 Original line number Original line Diff line number Diff line package android import ( "github.com/google/blueprint/proptools" "sync" ) func init() { RegisterModuleType("override_module", OverrideModuleFactory) } type OverrideModule struct { ModuleBase properties OverrideModuleProperties } type OverrideModuleProperties struct { // base module to override Base *string // file path or module name (in the form ":module") of a certificate to override with Certificate *string // manifest package name to override with Manifest_package_name *string } // TODO(jungjw): Work with the mainline team to see if we can deprecate all PRODUCT_*_OVERRIDES vars // and hand over overriding values directly to base module code. func processOverrides(ctx LoadHookContext, p *OverrideModuleProperties) { base := proptools.String(p.Base) if base == "" { ctx.PropertyErrorf("base", "base module name must be provided") } config := ctx.DeviceConfig() if other, loaded := config.moduleNameOverrides().LoadOrStore(base, ctx.ModuleName()); loaded { ctx.ModuleErrorf("multiple overriding modules for %q, the other: %q", base, other.(string)) } if p.Certificate != nil { config.certificateOverrides().Store(base, *p.Certificate) } if p.Manifest_package_name != nil { config.manifestPackageNameOverrides().Store(base, *p.Manifest_package_name) } } func (i *OverrideModule) DepsMutator(ctx BottomUpMutatorContext) { base := *i.properties.Base // Right now, we add a dependency only to check the base module exists, and so are not using a tag here. // TODO(jungjw): Add a tag and check the base module type once we finalize supported base module types. ctx.AddDependency(ctx.Module(), nil, base) } func (i *OverrideModule) GenerateAndroidBuildActions(ctx ModuleContext) { // All the overrides happen in the base module. // TODO(jungjw): Check the base module type. } // override_module overrides an existing module with the specified properties. // // Currently, only android_app is officially supported. func OverrideModuleFactory() Module { m := &OverrideModule{} AddLoadHook(m, func(ctx LoadHookContext) { processOverrides(ctx, &m.properties) }) m.AddProperties(&m.properties) InitAndroidModule(m) return m } var moduleNameOverridesKey = NewOnceKey("moduleNameOverrides") func (c *deviceConfig) moduleNameOverrides() *sync.Map { return c.Once(moduleNameOverridesKey, func() interface{} { return &sync.Map{} }).(*sync.Map) } var certificateOverridesKey = NewOnceKey("certificateOverrides") func (c *deviceConfig) certificateOverrides() *sync.Map { return c.Once(certificateOverridesKey, func() interface{} { return &sync.Map{} }).(*sync.Map) } var manifestPackageNameOverridesKey = NewOnceKey("manifestPackageNameOverrides") func (c *deviceConfig) manifestPackageNameOverrides() *sync.Map { return c.Once(manifestPackageNameOverridesKey, func() interface{} { return &sync.Map{} }).(*sync.Map) } apex/apex.go +1 −1 Original line number Original line Diff line number Diff line Loading @@ -534,7 +534,7 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) { func (a *apexBundle) getCertString(ctx android.BaseContext) string { func (a *apexBundle) getCertString(ctx android.BaseContext) string { certificate, overridden := ctx.DeviceConfig().OverrideCertificateFor(ctx.ModuleName()) certificate, overridden := ctx.DeviceConfig().OverrideCertificateFor(ctx.ModuleName()) if overridden { if overridden { return certificate return ":" + certificate } } return String(a.properties.Certificate) return String(a.properties.Certificate) } } Loading java/app.go +1 −1 Original line number Original line Diff line number Diff line Loading @@ -392,7 +392,7 @@ func (a *AndroidApp) collectAppDeps(ctx android.ModuleContext) ([]jniLib, []Cert func (a *AndroidApp) getCertString(ctx android.BaseContext) string { func (a *AndroidApp) getCertString(ctx android.BaseContext) string { certificate, overridden := ctx.DeviceConfig().OverrideCertificateFor(ctx.ModuleName()) certificate, overridden := ctx.DeviceConfig().OverrideCertificateFor(ctx.ModuleName()) if overridden { if overridden { return certificate return ":" + certificate } } return String(a.appProperties.Certificate) return String(a.appProperties.Certificate) } } Loading Loading
Android.bp +0 −1 Original line number Original line Diff line number Diff line Loading @@ -55,7 +55,6 @@ bootstrap_go_package { "android/namespace.go", "android/namespace.go", "android/neverallow.go", "android/neverallow.go", "android/onceper.go", "android/onceper.go", "android/override_module.go", "android/package_ctx.go", "android/package_ctx.go", "android/paths.go", "android/paths.go", "android/prebuilt.go", "android/prebuilt.go", Loading
android/config.go +1 −15 Original line number Original line Diff line number Diff line Loading @@ -895,30 +895,16 @@ func (c *deviceConfig) PlatPrivateSepolicyDirs() []string { } } func (c *deviceConfig) OverrideManifestPackageNameFor(name string) (manifestName string, overridden bool) { func (c *deviceConfig) OverrideManifestPackageNameFor(name string) (manifestName string, overridden bool) { if newManifestName, overridden := c.manifestPackageNameOverrides().Load(name); overridden { return newManifestName.(string), true } return findOverrideValue(c.config.productVariables.ManifestPackageNameOverrides, name, return findOverrideValue(c.config.productVariables.ManifestPackageNameOverrides, name, "invalid override rule %q in PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES should be <module_name>:<manifest_name>") "invalid override rule %q in PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES should be <module_name>:<manifest_name>") } } func (c *deviceConfig) OverrideCertificateFor(name string) (certificatePath string, overridden bool) { func (c *deviceConfig) OverrideCertificateFor(name string) (certificatePath string, overridden bool) { if newCert, overridden := c.certificateOverrides().Load(name); overridden { return findOverrideValue(c.config.productVariables.CertificateOverrides, name, return newCert.(string), true } newCert, overridden := findOverrideValue(c.config.productVariables.CertificateOverrides, name, "invalid override rule %q in PRODUCT_CERTIFICATE_OVERRIDES should be <module_name>:<certificate_module_name>") "invalid override rule %q in PRODUCT_CERTIFICATE_OVERRIDES should be <module_name>:<certificate_module_name>") if overridden { // PRODUCT_CERTIFICATE_OVERRIDES only supports cert modules. newCert = ":" + newCert } return newCert, overridden } } func (c *deviceConfig) OverridePackageNameFor(name string) string { func (c *deviceConfig) OverridePackageNameFor(name string) string { if newName, overridden := c.moduleNameOverrides().Load(name); overridden { return newName.(string) } newName, overridden := findOverrideValue( newName, overridden := findOverrideValue( c.config.productVariables.PackageNameOverrides, c.config.productVariables.PackageNameOverrides, name, name, Loading
android/override_module.godeleted 100644 → 0 +0 −97 Original line number Original line Diff line number Diff line package android import ( "github.com/google/blueprint/proptools" "sync" ) func init() { RegisterModuleType("override_module", OverrideModuleFactory) } type OverrideModule struct { ModuleBase properties OverrideModuleProperties } type OverrideModuleProperties struct { // base module to override Base *string // file path or module name (in the form ":module") of a certificate to override with Certificate *string // manifest package name to override with Manifest_package_name *string } // TODO(jungjw): Work with the mainline team to see if we can deprecate all PRODUCT_*_OVERRIDES vars // and hand over overriding values directly to base module code. func processOverrides(ctx LoadHookContext, p *OverrideModuleProperties) { base := proptools.String(p.Base) if base == "" { ctx.PropertyErrorf("base", "base module name must be provided") } config := ctx.DeviceConfig() if other, loaded := config.moduleNameOverrides().LoadOrStore(base, ctx.ModuleName()); loaded { ctx.ModuleErrorf("multiple overriding modules for %q, the other: %q", base, other.(string)) } if p.Certificate != nil { config.certificateOverrides().Store(base, *p.Certificate) } if p.Manifest_package_name != nil { config.manifestPackageNameOverrides().Store(base, *p.Manifest_package_name) } } func (i *OverrideModule) DepsMutator(ctx BottomUpMutatorContext) { base := *i.properties.Base // Right now, we add a dependency only to check the base module exists, and so are not using a tag here. // TODO(jungjw): Add a tag and check the base module type once we finalize supported base module types. ctx.AddDependency(ctx.Module(), nil, base) } func (i *OverrideModule) GenerateAndroidBuildActions(ctx ModuleContext) { // All the overrides happen in the base module. // TODO(jungjw): Check the base module type. } // override_module overrides an existing module with the specified properties. // // Currently, only android_app is officially supported. func OverrideModuleFactory() Module { m := &OverrideModule{} AddLoadHook(m, func(ctx LoadHookContext) { processOverrides(ctx, &m.properties) }) m.AddProperties(&m.properties) InitAndroidModule(m) return m } var moduleNameOverridesKey = NewOnceKey("moduleNameOverrides") func (c *deviceConfig) moduleNameOverrides() *sync.Map { return c.Once(moduleNameOverridesKey, func() interface{} { return &sync.Map{} }).(*sync.Map) } var certificateOverridesKey = NewOnceKey("certificateOverrides") func (c *deviceConfig) certificateOverrides() *sync.Map { return c.Once(certificateOverridesKey, func() interface{} { return &sync.Map{} }).(*sync.Map) } var manifestPackageNameOverridesKey = NewOnceKey("manifestPackageNameOverrides") func (c *deviceConfig) manifestPackageNameOverrides() *sync.Map { return c.Once(manifestPackageNameOverridesKey, func() interface{} { return &sync.Map{} }).(*sync.Map) }
apex/apex.go +1 −1 Original line number Original line Diff line number Diff line Loading @@ -534,7 +534,7 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) { func (a *apexBundle) getCertString(ctx android.BaseContext) string { func (a *apexBundle) getCertString(ctx android.BaseContext) string { certificate, overridden := ctx.DeviceConfig().OverrideCertificateFor(ctx.ModuleName()) certificate, overridden := ctx.DeviceConfig().OverrideCertificateFor(ctx.ModuleName()) if overridden { if overridden { return certificate return ":" + certificate } } return String(a.properties.Certificate) return String(a.properties.Certificate) } } Loading
java/app.go +1 −1 Original line number Original line Diff line number Diff line Loading @@ -392,7 +392,7 @@ func (a *AndroidApp) collectAppDeps(ctx android.ModuleContext) ([]jniLib, []Cert func (a *AndroidApp) getCertString(ctx android.BaseContext) string { func (a *AndroidApp) getCertString(ctx android.BaseContext) string { certificate, overridden := ctx.DeviceConfig().OverrideCertificateFor(ctx.ModuleName()) certificate, overridden := ctx.DeviceConfig().OverrideCertificateFor(ctx.ModuleName()) if overridden { if overridden { return certificate return ":" + certificate } } return String(a.appProperties.Certificate) return String(a.appProperties.Certificate) } } Loading