Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 32b8daff authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add system_ext support to build_prop module" into main

parents 9b10ca47 acf91741
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -141,3 +141,12 @@ build_prop {
        "//packages/modules/Virtualization/build/microdroid",
    ],
}

build_prop {
    name: "system_ext-build.prop",
    stem: "build.prop",
    system_ext_specific: true,
    product_config: ":product_config",
    relative_install_path: "etc", // system_ext/etc/build.prop
    visibility: ["//visibility:private"],
}
+8 −3
Original line number Diff line number Diff line
@@ -37,6 +37,9 @@ type buildPropProperties struct {

	// Path to a JSON file containing product configs.
	Product_config *string `android:"path"`

	// Optional subdirectory under which this file is installed into
	Relative_install_path *string
}

type buildPropModule struct {
@@ -56,6 +59,8 @@ func (p *buildPropModule) propFiles(ctx ModuleContext) Paths {
	partition := p.PartitionTag(ctx.DeviceConfig())
	if partition == "system" {
		return ctx.Config().SystemPropFiles(ctx)
	} else if partition == "system_ext" {
		return ctx.Config().SystemExtPropFiles(ctx)
	}
	return nil
}
@@ -84,8 +89,8 @@ func (p *buildPropModule) GenerateAndroidBuildActions(ctx ModuleContext) {
	}

	partition := p.PartitionTag(ctx.DeviceConfig())
	if partition != "system" {
		ctx.PropertyErrorf("partition", "unsupported partition %q: only \"system\" is supported", partition)
	if partition != "system" && partition != "system_ext" {
		ctx.PropertyErrorf("partition", "unsupported partition %q: only \"system\" and \"system_ext\" are supported", partition)
		return
	}

@@ -134,7 +139,7 @@ func (p *buildPropModule) GenerateAndroidBuildActions(ctx ModuleContext) {

	rule.Build(ctx.ModuleName(), "generating build.prop")

	p.installPath = PathForModuleInstall(ctx)
	p.installPath = PathForModuleInstall(ctx, proptools.String(p.properties.Relative_install_path))
	ctx.InstallFile(p.installPath, p.stem(), p.outputFilePath)

	ctx.SetOutputFiles(Paths{p.outputFilePath}, "")
+4 −0
Original line number Diff line number Diff line
@@ -2090,6 +2090,10 @@ func (c *config) SystemPropFiles(ctx PathContext) Paths {
	return PathsForSource(ctx, c.productVariables.SystemPropFiles)
}

func (c *config) SystemExtPropFiles(ctx PathContext) Paths {
	return PathsForSource(ctx, c.productVariables.SystemExtPropFiles)
}

func (c *config) EnableUffdGc() string {
	return String(c.productVariables.EnableUffdGc)
}
+2 −1
Original line number Diff line number Diff line
@@ -509,6 +509,7 @@ type ProductVariables struct {
	ArtTargetIncludeDebugBuild *bool `json:",omitempty"`

	SystemPropFiles    []string `json:",omitempty"`
	SystemExtPropFiles []string `json:",omitempty"`

	EnableUffdGc *string `json:",omitempty"`
}
+21 −10
Original line number Diff line number Diff line
@@ -129,16 +129,16 @@ def generate_common_build_props(args):
    print(f"ro.product.{partition}.name={config['DeviceProduct']}")

  if partition != "system":
    if config["ModelForAttestation"]:
        print(f"ro.product.model_for_attestation={config['ModelForAttestation']}")
    if config["BrandForAttestation"]:
        print(f"ro.product.brand_for_attestation={config['BrandForAttestation']}")
    if config["NameForAttestation"]:
        print(f"ro.product.name_for_attestation={config['NameForAttestation']}")
    if config["DeviceForAttestation"]:
        print(f"ro.product.device_for_attestation={config['DeviceForAttestation']}")
    if config["ManufacturerForAttestation"]:
        print(f"ro.product.manufacturer_for_attestation={config['ManufacturerForAttestation']}")
    if config["ProductModelForAttestation"]:
        print(f"ro.product.model_for_attestation={config['ProductModelForAttestation']}")
    if config["ProductBrandForAttestation"]:
        print(f"ro.product.brand_for_attestation={config['ProductBrandForAttestation']}")
    if config["ProductNameForAttestation"]:
        print(f"ro.product.name_for_attestation={config['ProductNameForAttestation']}")
    if config["ProductDeviceForAttestation"]:
        print(f"ro.product.device_for_attestation={config['ProductDeviceForAttestation']}")
    if config["ProductManufacturerForAttestation"]:
        print(f"ro.product.manufacturer_for_attestation={config['ProductManufacturerForAttestation']}")

  if config["ZygoteForce64"]:
    if partition == "vendor":
@@ -511,6 +511,15 @@ def build_system_prop(args):

  build_prop(args, gen_build_info=True, gen_common_build_props=True, variables=variables)

def build_system_ext_prop(args):
  config = args.config

  # Order matters here. When there are duplicates, the last one wins.
  # TODO(b/117892318): don't allow duplicates so that the ordering doesn't matter
  variables = ["PRODUCT_SYSTEM_EXT_PROPERTIES"]

  build_prop(args, gen_build_info=False, gen_common_build_props=True, variables=variables)

'''
def build_vendor_prop(args):
  config = args.config
@@ -563,6 +572,8 @@ def main():
  with contextlib.redirect_stdout(args.out):
    if args.partition == "system":
      build_system_prop(args)
    elif args.partition == "system_ext":
      build_system_ext_prop(args)
      '''
    elif args.partition == "vendor":
      build_vendor_prop(args)