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.
This commit is contained in:
parent
7ebafd5aa0
commit
fdd8e69c42
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue