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

Commit 41334adb authored by Lucas Wei's avatar Lucas Wei Committed by Automerger Merge Worker
Browse files

Merge "vendor_kernel_boot: Update releasetools for vendor_kernel_boot" am:...

Merge "vendor_kernel_boot: Update releasetools for vendor_kernel_boot" am: 2d5ecef1 am: bd66e323 am: b8b3c0d0 am: 035fdee0

Original change: https://android-review.googlesource.com/c/platform/build/+/2064760



Change-Id: Ifd47ad2e898ce89384a598477471523429234bac
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 24e03d7e 035fdee0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -871,7 +871,7 @@ def AddImagesToTargetFiles(filename):

  if has_vendor_kernel_boot:
    banner("vendor_kernel_boot")
    vendor_kernel_boot_image = common.GetVendorBootImage(
    vendor_kernel_boot_image = common.GetVendorKernelBootImage(
        "IMAGES/vendor_kernel_boot.img", "vendor_kernel_boot.img", OPTIONS.input_tmp,
        "VENDOR_KERNEL_BOOT")
    if vendor_kernel_boot_image:
+38 −9
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@ SPECIAL_CERT_STRINGS = ("PRESIGNED", "EXTERNAL")
# AVB_FOOTER_ARGS_BY_PARTITION in sign_target_files_apks need to be updated
# accordingly.
AVB_PARTITIONS = ('boot', 'init_boot', 'dtbo', 'odm', 'product', 'pvmfw', 'recovery',
                  'system', 'system_ext', 'vendor', 'vendor_boot',
                  'system', 'system_ext', 'vendor', 'vendor_boot', 'vendor_kernel_boot',
                  'vendor_dlkm', 'odm_dlkm', 'system_dlkm')

# Chained VBMeta partitions.
@@ -1840,7 +1840,7 @@ def GetBootableImage(name, prebuilt_name, unpack_dir, tree_subdir,
  return None


def _BuildVendorBootImage(sourcedir, info_dict=None):
def _BuildVendorBootImage(sourcedir, partition_name, info_dict=None):
  """Build a vendor boot image from the specified sourcedir.

  Take a ramdisk, dtb, and vendor_cmdline from the input (in 'sourcedir'), and
@@ -1865,6 +1865,11 @@ def _BuildVendorBootImage(sourcedir, info_dict=None):

  fn = os.path.join(sourcedir, "dtb")
  if os.access(fn, os.F_OK):
    has_vendor_kernel_boot = (info_dict.get("vendor_kernel_boot", "").lower() == "true")

    # Pack dtb into vendor_kernel_boot if building vendor_kernel_boot.
    # Otherwise pack dtb into vendor_boot.
    if not has_vendor_kernel_boot or partition_name == "vendor_kernel_boot":
      cmd.append("--dtb")
      cmd.append(fn)

@@ -1926,11 +1931,11 @@ def _BuildVendorBootImage(sourcedir, info_dict=None):
  # AVB: if enabled, calculate and add hash.
  if info_dict.get("avb_enable") == "true":
    avbtool = info_dict["avb_avbtool"]
    part_size = info_dict["vendor_boot_size"]
    part_size = info_dict[f'{partition_name}_size']
    cmd = [avbtool, "add_hash_footer", "--image", img.name,
           "--partition_size", str(part_size), "--partition_name", "vendor_boot"]
    AppendAVBSigningArgs(cmd, "vendor_boot")
    args = info_dict.get("avb_vendor_boot_add_hash_footer_args")
           "--partition_size", str(part_size), "--partition_name", partition_name]
    AppendAVBSigningArgs(cmd, partition_name)
    args = info_dict.get(f'avb_{partition_name}_add_hash_footer_args')
    if args and args.strip():
      cmd.extend(shlex.split(args))
    RunAndCheckOutput(cmd)
@@ -1964,7 +1969,31 @@ def GetVendorBootImage(name, prebuilt_name, unpack_dir, tree_subdir,
    info_dict = OPTIONS.info_dict

  data = _BuildVendorBootImage(
      os.path.join(unpack_dir, tree_subdir), info_dict)
      os.path.join(unpack_dir, tree_subdir), "vendor_boot", info_dict)
  if data:
    return File(name, data)
  return None


def GetVendorKernelBootImage(name, prebuilt_name, unpack_dir, tree_subdir,
                       info_dict=None):
  """Return a File object with the desired vendor kernel boot image.

  Look for it under 'unpack_dir'/IMAGES, otherwise construct it from
  the source files in 'unpack_dir'/'tree_subdir'."""

  prebuilt_path = os.path.join(unpack_dir, "IMAGES", prebuilt_name)
  if os.path.exists(prebuilt_path):
    logger.info("using prebuilt %s from IMAGES...", prebuilt_name)
    return File.FromLocalFile(name, prebuilt_path)

  logger.info("building image from target_files %s...", tree_subdir)

  if info_dict is None:
    info_dict = OPTIONS.info_dict

  data = _BuildVendorBootImage(
      os.path.join(unpack_dir, tree_subdir), "vendor_kernel_boot", info_dict)
  if data:
    return File(name, data)
  return None
+1 −0
Original line number Diff line number Diff line
@@ -214,6 +214,7 @@ AVB_FOOTER_ARGS_BY_PARTITION = {
    'pvmfw': 'avb_pvmfw_add_hash_footer_args',
    'vendor': 'avb_vendor_add_hashtree_footer_args',
    'vendor_boot': 'avb_vendor_boot_add_hash_footer_args',
    'vendor_kernel_boot': 'avb_vendor_kernel_boot_add_hash_footer_args',
    'vendor_dlkm': "avb_vendor_dlkm_add_hashtree_footer_args",
    'vbmeta': 'avb_vbmeta_args',
    'vbmeta_system': 'avb_vbmeta_system_args',