Add support for prop overrides
The format of the overrides is KEY=VALUE
Where KEY is one of the dict keys used in config
https://cs.android.com/android/platform/superproject/main/+/main:build/soong/scripts/gen_build_prop.py
And VALUE is the value you want take over.
An example:
PRODUCT_BUILD_PROP_OVERRIDES += \
BuildDesc="jfltevzw-user 4.2.2 JDQ39 I545VRUAMDK release-keys" \
BuildFingerprint=Verizon/jfltevzw/jfltevzw:4.2.2/JDQ39/I545VRUAMDK:user/release-keys \
DeviceName=jfltevzw \
DeviceProduct=jfltevzw \
SystemDevice=jfltevzw \
SystemName=jfltevzw
Change-Id: Ib44a3bb573d08d492acc092e104cb4f687f3b168
diff --git a/scripts/gen_build_prop.py b/scripts/gen_build_prop.py
index c08a3fd..64ef683 100644
--- a/scripts/gen_build_prop.py
+++ b/scripts/gen_build_prop.py
@@ -45,6 +45,24 @@
return "test-keys"
return "dev-keys"
+def override_config(config):
+ if "PRODUCT_BUILD_PROP_OVERRIDES" in config:
+ current_key = None
+ props_overrides = {}
+
+ for var in config["PRODUCT_BUILD_PROP_OVERRIDES"]:
+ if "=" in var:
+ current_key, value = var.split("=")
+ props_overrides[current_key] = value
+ else:
+ props_overrides[current_key] += f" {var}"
+
+ for key, value in props_overrides.items():
+ if key not in config:
+ print(f"Key \"{key}\" isn't a valid prop override", file=sys.stderr)
+ sys.exit(1)
+ config[key] = value
+
def parse_args():
"""Parse commandline arguments."""
parser = argparse.ArgumentParser()
@@ -100,6 +118,8 @@
if args.build_thumbprint_file:
config["BuildThumbprint"] = args.build_thumbprint_file.read().strip()
+ override_config(config)
+
append_additional_system_props(args)
append_additional_vendor_props(args)
append_additional_product_props(args)