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

Commit f9cc9930 authored by dhacker29's avatar dhacker29 Committed by Ricardo Cerqueira
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 038b7b47
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -210,6 +210,7 @@ $(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(
			TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \
			TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \
			TARGET_AAPT_CHARACTERISTICS="$(TARGET_AAPT_CHARACTERISTICS)" \
			TARGET_UNIFIED_DEVICE="$(TARGET_UNIFIED_DEVICE)" \
			$(PRODUCT_BUILD_PROP_OVERRIDES) \
			BUILD_DISPLAY_ID="$(BUILD_DISPLAY_ID)" \
			BUILD_NUMBER="$(BUILD_NUMBER)" \
@@ -1431,6 +1432,10 @@ else
    $(INTERNAL_OTA_PACKAGE_TARGET): override_device := $(TARGET_OTA_ASSERT_DEVICE)
endif

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

$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
	@echo "$(OTA_FROM_TARGET_SCRIPT)" > $(PRODUCT_OUT)/ota_script_path
	@echo "$(override_device)" > $(PRODUCT_OUT)/ota_override_device
@@ -1440,7 +1445,7 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
	   -p $(HOST_OUT) \
	   -k $(KEY_CERT_PAIR) \
	   --backup=$(backuptool) \
	   --override_device=$(override_device) \
	   --override_device=$(override_device) $(override_prop) \
	   $(BUILT_TARGET_FILES_PACKAGE) $@

CM_TARGET_PACKAGE := $(PRODUCT_OUT)/cm-$(CM_VERSION).zip
+7 −6
Original line number Diff line number Diff line
@@ -15,10 +15,8 @@ echo "ro.build.type=$TARGET_BUILD_TYPE"
echo "ro.build.user=$USER"
echo "ro.build.host=`hostname`"
echo "ro.build.tags=$BUILD_VERSION_TAGS"
echo "ro.product.model=$PRODUCT_MODEL"
echo "ro.product.brand=$PRODUCT_BRAND"
echo "ro.product.name=$PRODUCT_NAME"
echo "ro.product.device=$TARGET_DEVICE"
echo "ro.product.board=$TARGET_BOOTLOADER_BOARD_NAME"
echo "ro.product.cpu.abi=$TARGET_CPU_ABI"
if [ -n "$TARGET_CPU_ABI2" ] ; then
@@ -36,10 +34,13 @@ echo "ro.board.platform=$TARGET_BOARD_PLATFORM"

echo "# ro.build.product is obsolete; use ro.product.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 ro.build.description or .fingerprint"
  echo "ro.build.description=$PRIVATE_BUILD_DESC"
  echo "ro.build.fingerprint=$BUILD_FINGERPRINT"
fi
echo "ro.build.characteristics=$TARGET_AAPT_CHARACTERISTICS"

echo "ro.cm.device=$CM_DEVICE"
+42 −20
Original line number Diff line number Diff line
@@ -59,6 +59,10 @@ Usage: ota_from_target_files [flags] input_target_files output_ota_package
  --override_device <device>
      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
@@ -97,6 +101,7 @@ OPTIONS.aslr_mode = True
OPTIONS.worker_threads = 3
OPTIONS.backuptool = False
OPTIONS.override_device = 'auto'
OPTIONS.override_prop = False

def MostPopularKey(d, default):
  """Given a dict, return the key corresponding to the largest
@@ -351,6 +356,9 @@ def SignOutput(temp_zip_name, output_zip_name):

def AppendAssertions(script, info_dict):
  if OPTIONS.override_device == "auto":
    if OPTIONS.override_prop:
      device = GetBuildProp("ro.build.product", info_dict)
    else:
      device = GetBuildProp("ro.product.device", info_dict)
  else:
    device = OPTIONS.override_device
@@ -417,6 +425,11 @@ def WriteFullOTAPackage(input_zip, output_zip):
  # change very often.
  script = edify_generator.EdifyGenerator(3, OPTIONS.info_dict)

  if OPTIONS.override_prop:
    metadata = {"post-timestamp": GetBuildProp("ro.build.date.utc",
                                               OPTIONS.info_dict),
                }
  else:
    metadata = {"post-build": GetBuildProp("ro.build.fingerprint",
                                           OPTIONS.info_dict),
                "pre-device": GetBuildProp("ro.product.device",
@@ -536,6 +549,11 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip):
  script = edify_generator.EdifyGenerator(source_version,
                                          OPTIONS.target_info_dict)

  if OPTIONS.override_prop:
    metadata = {"post-timestamp": GetBuildProp("ro.build.date.utc",
                                               OPTIONS.target_info_dict),
                }
  else:
    metadata = {"pre-device": GetBuildProp("ro.product.device",
                                           OPTIONS.source_info_dict),
                "post-timestamp": GetBuildProp("ro.build.date.utc",
@@ -609,6 +627,7 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip):
      patch_list.append((sf.name, tf, sf, tf.size, common.sha1(d).hexdigest()))
      largest_source_size = max(largest_source_size, sf.size)

  if not OPTIONS.override_prop:
    source_fp = GetBuildProp("ro.build.fingerprint", OPTIONS.source_info_dict)
    target_fp = GetBuildProp("ro.build.fingerprint", OPTIONS.target_info_dict)
    metadata["pre-build"] = source_fp
@@ -847,6 +866,8 @@ def main(argv):
      OPTIONS.backuptool = bool(a.lower() == 'true')
    elif o in ("--override_device"):
      OPTIONS.override_device = a
    elif o in ("--override_prop"):
      OPTIONS.override_prop = bool(a.lower() == 'true')
    else:
      return False
    return True
@@ -862,7 +883,8 @@ def main(argv):
                                              "worker_threads=",
                                              "aslr_mode=",
                                              "backup=",
                                              "override_device="],
                                              "override_device=",
                                              "override_prop="],
                             extra_option_handler=option_handler)

  if len(args) != 2: