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

Commit fdd8e69c authored by Doug Zongker's avatar Doug Zongker
Browse files

use the max image sizes from the target files zip

For some time now the build system has included all the max image
sizes in a file in the META directory.  Use these instead of needing
to parse the BoardConfig.mk file for the device at the time of
building an image or OTA package.
parent 7ebafd5a
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -46,18 +46,18 @@ def Run(args, **kwargs):
  return subprocess.Popen(args, **kwargs)


def LoadBoardConfig(fn):
  """Parse a board_config.mk file looking for lines that specify the
  maximum size of various images, and parse them into the
  OPTIONS.max_image_size dict."""
def LoadMaxSizes():
  """Load the maximum allowable images sizes from the input
  target_files size."""
  OPTIONS.max_image_size = {}
  for line in open(fn):
    line = line.strip()
    m = re.match(r"BOARD_(BOOT|RECOVERY|SYSTEM|USERDATA)IMAGE_MAX_SIZE"
                 r"\s*:=\s*(\d+)", line)
    if not m: continue

    OPTIONS.max_image_size[m.group(1).lower() + ".img"] = int(m.group(2))
  try:
    for line in open(os.path.join(OPTIONS.input_tmp, "META", "imagesizes.txt")):
      image, size = line.split()
      size = int(size)
      OPTIONS.max_image_size[image + ".img"] = size
  except IOError, e:
    if e.errno == errno.ENOENT:
      pass


def BuildAndAddBootableImage(sourcedir, targetname, output_zip):
+8 −9
Original line number Diff line number Diff line
@@ -21,8 +21,7 @@ use with 'fastboot update'.
Usage:  img_from_target_files [flags] input_target_files output_image_zip

  -b  (--board_config)  <file>
      Specifies a BoardConfig.mk file containing image max sizes
      against which the generated image files are checked.
      Deprecated.

"""

@@ -109,10 +108,10 @@ def main(argv):

  def option_handler(o, a):
    if o in ("-b", "--board_config"):
      common.LoadBoardConfig(a)
      return True
      pass       # deprecated
    else:
      return False
    return True

  args = common.ParseOptions(argv, __doc__,
                             extra_opts="b:",
@@ -123,15 +122,15 @@ def main(argv):
    common.Usage(__doc__)
    sys.exit(1)

  OPTIONS.input_tmp = common.UnzipTemp(args[0])

  common.LoadMaxSizes()
  if not OPTIONS.max_image_size:
    print
    print "  WARNING:  No board config specified; will not check image"
    print "  sizes against limits.  Use -b to make sure the generated"
    print "  images don't exceed partition sizes."
    print "  WARNING:  Failed to load max image sizes; will not enforce"
    print "  image size limits."
    print

  OPTIONS.input_tmp = common.UnzipTemp(args[0])

  output_zip = zipfile.ZipFile(args[1], "w", compression=zipfile.ZIP_DEFLATED)

  common.AddBoot(output_zip)
+10 −10
Original line number Diff line number Diff line
@@ -22,8 +22,7 @@ a full OTA is produced.
Usage:  ota_from_target_files [flags] input_target_files output_ota_package

  -b  (--board_config)  <file>
      Specifies a BoardConfig.mk file containing image max sizes
      against which the generated image files are checked.
      Deprecated.

  -k  (--package_key)  <key>
      Key to use to sign the package (default is
@@ -736,7 +735,7 @@ def main(argv):

  def option_handler(o, a):
    if o in ("-b", "--board_config"):
      common.LoadBoardConfig(a)
      pass   # deprecated
    elif o in ("-k", "--package_key"):
      OPTIONS.package_key = a
    elif o in ("-i", "--incremental_from"):
@@ -768,13 +767,6 @@ def main(argv):
    common.Usage(__doc__)
    sys.exit(1)

  if not OPTIONS.max_image_size:
    print
    print "  WARNING:  No board config specified; will not check image"
    print "  sizes against limits.  Use -b to make sure the generated"
    print "  images don't exceed partition sizes."
    print

  if OPTIONS.script_mode not in ("amend", "edify", "auto"):
    raise ValueError('unknown script mode "%s"' % (OPTIONS.script_mode,))

@@ -783,6 +775,14 @@ def main(argv):

  print "unzipping target target-files..."
  OPTIONS.input_tmp = common.UnzipTemp(args[0])

  common.LoadMaxSizes()
  if not OPTIONS.max_image_size:
    print
    print "  WARNING:  Failed to load max image sizes; will not enforce"
    print "  image size limits."
    print

  OPTIONS.target_tmp = OPTIONS.input_tmp
  input_zip = zipfile.ZipFile(args[0], "r")
  if OPTIONS.package_key: