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

Unverified Commit 8182bc29 authored by dhacker29's avatar dhacker29 Committed by Michael Bestas
Browse files

Allow devices to specify certain ro. props via TARGET_UNIFIED_DEVICE

This modifies buildinfo.sh to not set model, name, description, and
fingerprint in build.prop. These can then be set via custom init
lib.
This also fixes ota_from_target_files to function without these
props being preset.

Change-Id: I945b2c38e60b207d2d0f82b34f4f230ac21b0657
parent 2311094b
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -265,6 +265,7 @@ endif
			TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \
			TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \
			TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \
			TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \
			TARGET_AAPT_CHARACTERISTICS="$(TARGET_AAPT_CHARACTERISTICS)" \
			TARGET_AAPT_CHARACTERISTICS="$(TARGET_AAPT_CHARACTERISTICS)" \
			TARGET_UNIFIED_DEVICE="$(TARGET_UNIFIED_DEVICE)" \
			$(PRODUCT_BUILD_PROP_OVERRIDES) \
			$(PRODUCT_BUILD_PROP_OVERRIDES) \
	        bash $(BUILDINFO_SH) >> $@
	        bash $(BUILDINFO_SH) >> $@
	$(hide) $(foreach file,$(system_prop_file), \
	$(hide) $(foreach file,$(system_prop_file), \
@@ -2038,6 +2039,10 @@ else
    $(INTERNAL_OTA_PACKAGE_TARGET): override_device := $(TARGET_OTA_ASSERT_DEVICE)
    $(INTERNAL_OTA_PACKAGE_TARGET): override_device := $(TARGET_OTA_ASSERT_DEVICE)
endif
endif


ifneq ($(TARGET_UNIFIED_DEVICE),)
    $(INTERNAL_OTA_PACKAGE_TARGET): override_prop := --override_prop=true
endif

$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE)
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE)
	@echo "$(OTA_FROM_TARGET_SCRIPT)" > $(PRODUCT_OUT)/ota_script_path
	@echo "$(OTA_FROM_TARGET_SCRIPT)" > $(PRODUCT_OUT)/ota_script_path
	@echo "$(override_device)" > $(PRODUCT_OUT)/ota_override_device
	@echo "$(override_device)" > $(PRODUCT_OUT)/ota_override_device
@@ -2048,7 +2053,7 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE)
	   -p $(HOST_OUT) \
	   -p $(HOST_OUT) \
	   -k $(KEY_CERT_PAIR) \
	   -k $(KEY_CERT_PAIR) \
	   --backup=$(backuptool) \
	   --backup=$(backuptool) \
	   --override_device=$(override_device) \
	   --override_device=$(override_device) $(override_prop) \
	   $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \
	   $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \
	   $(BUILT_TARGET_FILES_PACKAGE) $@
	   $(BUILT_TARGET_FILES_PACKAGE) $@


+9 −7
Original line number Original line Diff line number Diff line
@@ -26,10 +26,8 @@ fi
if [ -n "$AB_OTA_UPDATER" ] ; then
if [ -n "$AB_OTA_UPDATER" ] ; then
  echo "ro.build.ab_update=$AB_OTA_UPDATER"
  echo "ro.build.ab_update=$AB_OTA_UPDATER"
fi
fi
echo "ro.product.model=$PRODUCT_MODEL"
echo "ro.product.brand=$PRODUCT_BRAND"
echo "ro.product.brand=$PRODUCT_BRAND"
echo "ro.product.name=$PRODUCT_NAME"
echo "ro.product.name=$PRODUCT_NAME"
echo "ro.product.device=$TARGET_DEVICE"
echo "ro.product.board=$TARGET_BOOTLOADER_BOARD_NAME"
echo "ro.product.board=$TARGET_BOOTLOADER_BOARD_NAME"


# These values are deprecated, use "ro.product.cpu.abilist"
# These values are deprecated, use "ro.product.cpu.abilist"
@@ -54,12 +52,16 @@ echo "ro.board.platform=$TARGET_BOARD_PLATFORM"
echo "# ro.build.product is obsolete; use ro.product.device"
echo "# ro.build.product is obsolete; use ro.product.device"
echo "ro.build.product=$TARGET_DEVICE"
echo "ro.build.product=$TARGET_DEVICE"


if [ "$TARGET_UNIFIED_DEVICE" == "" ] ; then
  echo "ro.product.model=$PRODUCT_MODEL"
  echo "ro.product.device=$TARGET_DEVICE"
  echo "# Do not try to parse description, fingerprint, or thumbprint"
  echo "# Do not try to parse description, fingerprint, or thumbprint"
  echo "ro.build.description=$PRIVATE_BUILD_DESC"
  echo "ro.build.description=$PRIVATE_BUILD_DESC"
  echo "ro.build.fingerprint=$BUILD_FINGERPRINT"
  echo "ro.build.fingerprint=$BUILD_FINGERPRINT"
  if [ -n "$BUILD_THUMBPRINT" ] ; then
  if [ -n "$BUILD_THUMBPRINT" ] ; then
    echo "ro.build.thumbprint=$BUILD_THUMBPRINT"
    echo "ro.build.thumbprint=$BUILD_THUMBPRINT"
  fi
  fi
fi
echo "ro.build.characteristics=$TARGET_AAPT_CHARACTERISTICS"
echo "ro.build.characteristics=$TARGET_AAPT_CHARACTERISTICS"


echo "ro.cm.device=$CM_DEVICE"
echo "ro.cm.device=$CM_DEVICE"
+50 −28
Original line number Original line Diff line number Diff line
@@ -131,6 +131,10 @@ Usage: ota_from_target_files [flags] input_target_files output_ota_package


  --override_device <device>
  --override_device <device>
      Override device-specific asserts. Can be a comma-separated list.
      Override device-specific asserts. Can be a comma-separated list.

  --override_prop <boolean>
      Override build.prop items with custom vendor init.
      Enabled when TARGET_UNIFIED_DEVICE is defined in BoardConfig
"""
"""


import sys
import sys
@@ -183,6 +187,7 @@ OPTIONS.payload_signer = None
OPTIONS.payload_signer_args = []
OPTIONS.payload_signer_args = []
OPTIONS.backuptool = False
OPTIONS.backuptool = False
OPTIONS.override_device = 'auto'
OPTIONS.override_device = 'auto'
OPTIONS.override_prop = False


def MostPopularKey(d, default):
def MostPopularKey(d, default):
  """Given a dict, return the key corresponding to the largest
  """Given a dict, return the key corresponding to the largest
@@ -464,6 +469,9 @@ def AppendAssertions(script, info_dict, oem_dict=None):
  oem_props = info_dict.get("oem_fingerprint_properties")
  oem_props = info_dict.get("oem_fingerprint_properties")
  if oem_props is None or len(oem_props) == 0:
  if oem_props is None or len(oem_props) == 0:
    if OPTIONS.override_device == "auto":
    if OPTIONS.override_device == "auto":
      if OPTIONS.override_prop:
        device = GetBuildProp("ro.build.product", info_dict)
      else:
        device = GetBuildProp("ro.product.device", info_dict)
        device = GetBuildProp("ro.product.device", info_dict)
    else:
    else:
      device = OPTIONS.override_device
      device = OPTIONS.override_device
@@ -565,6 +573,11 @@ def WriteFullOTAPackage(input_zip, output_zip):
    oem_dict = common.LoadDictionaryFromLines(
    oem_dict = common.LoadDictionaryFromLines(
        open(OPTIONS.oem_source).readlines())
        open(OPTIONS.oem_source).readlines())


  if OPTIONS.override_prop:
    metadata = {
        "post-timestamp": GetBuildProp("ro.build.date.utc", OPTIONS.info_dict),
    }
  else:
    metadata = {
    metadata = {
        "post-build": CalculateFingerprint(oem_props, oem_dict,
        "post-build": CalculateFingerprint(oem_props, oem_dict,
                                           OPTIONS.info_dict),
                                           OPTIONS.info_dict),
@@ -850,6 +863,11 @@ def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_zip):
    oem_dict = common.LoadDictionaryFromLines(
    oem_dict = common.LoadDictionaryFromLines(
        open(OPTIONS.oem_source).readlines())
        open(OPTIONS.oem_source).readlines())


  if OPTIONS.override_prop:
    metadata = {
        "ota-type": "BLOCK",
    }
  else:
    metadata = {
    metadata = {
        "pre-device": GetOemProperty("ro.product.device", oem_props, oem_dict,
        "pre-device": GetOemProperty("ro.product.device", oem_props, oem_dict,
                                       OPTIONS.source_info_dict),
                                       OPTIONS.source_info_dict),
@@ -1585,6 +1603,7 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip):
  else:
  else:
    vendor_diff = None
    vendor_diff = None


  if not OPTIONS.override_prop:
    target_fp = CalculateFingerprint(oem_props, oem_dict,
    target_fp = CalculateFingerprint(oem_props, oem_dict,
                                     OPTIONS.target_info_dict)
                                     OPTIONS.target_info_dict)
    source_fp = CalculateFingerprint(oem_props, oem_dict,
    source_fp = CalculateFingerprint(oem_props, oem_dict,
@@ -1998,6 +2017,8 @@ def main(argv):
      OPTIONS.backuptool = bool(a.lower() == 'true')
      OPTIONS.backuptool = bool(a.lower() == 'true')
    elif o in ("--override_device"):
    elif o in ("--override_device"):
      OPTIONS.override_device = a
      OPTIONS.override_device = a
    elif o in ("--override_prop"):
      OPTIONS.override_prop = bool(a.lower() == 'true')
    else:
    else:
      return False
      return False
    return True
    return True
@@ -2030,7 +2051,8 @@ def main(argv):
                                 "payload_signer=",
                                 "payload_signer=",
                                 "payload_signer_args=",
                                 "payload_signer_args=",
                                 "backup=",
                                 "backup=",
                                 "override_device="
                                 "override_device=",
                                 "override_prop="
                             ], extra_option_handler=option_handler)
                             ], extra_option_handler=option_handler)


  if len(args) != 2:
  if len(args) != 2: