Merge "Switch command to subprocess in build_image.py" am: 36e612b753

am: 82e63d3037

Change-Id: I4a241ec872093067c9792ec36a5e9f1eec8c3d9e
This commit is contained in:
Tianjie Xu 2017-03-13 18:29:39 +00:00 committed by android-build-merger
commit 44bc991757
1 changed files with 32 additions and 46 deletions

View File

@ -25,7 +25,6 @@ import os.path
import re import re
import subprocess import subprocess
import sys import sys
import commands
import common import common
import shlex import shlex
import shutil import shutil
@ -52,29 +51,24 @@ def RunCommand(cmd):
return (output, p.returncode) return (output, p.returncode)
def GetVerityFECSize(partition_size): def GetVerityFECSize(partition_size):
cmd = "fec -s %d" % partition_size cmd = ["fec", "-s", str(partition_size)]
status, output = commands.getstatusoutput(cmd) output, exit_code = RunCommand(cmd)
if status: if exit_code != 0:
print output
return False, 0 return False, 0
return True, int(output) return True, int(output)
def GetVerityTreeSize(partition_size): def GetVerityTreeSize(partition_size):
cmd = "build_verity_tree -s %d" cmd = ["build_verity_tree", "-s", str(partition_size)]
cmd %= partition_size output, exit_code = RunCommand(cmd)
status, output = commands.getstatusoutput(cmd) if exit_code != 0:
if status:
print output
return False, 0 return False, 0
return True, int(output) return True, int(output)
def GetVerityMetadataSize(partition_size): def GetVerityMetadataSize(partition_size):
cmd = "system/extras/verity/build_verity_metadata.py size %d" cmd = ["system/extras/verity/build_verity_metadata.py", "size",
cmd %= partition_size str(partition_size)]
output, exit_code = RunCommand(cmd)
status, output = commands.getstatusoutput(cmd) if exit_code != 0:
if status:
print output
return False, 0 return False, 0
return True, int(output) return True, int(output)
@ -191,21 +185,19 @@ AdjustPartitionSizeForVerity.results = {}
def BuildVerityFEC(sparse_image_path, verity_path, verity_fec_path, def BuildVerityFEC(sparse_image_path, verity_path, verity_fec_path,
padding_size): padding_size):
cmd = "fec -e -p %d %s %s %s" % (padding_size, sparse_image_path, cmd = ["fec", "-e", "-p", str(padding_size), sparse_image_path,
verity_path, verity_fec_path) verity_path, verity_fec_path]
print cmd output, exit_code = RunCommand(cmd)
status, output = commands.getstatusoutput(cmd) if exit_code != 0:
if status:
print "Could not build FEC data! Error: %s" % output print "Could not build FEC data! Error: %s" % output
return False return False
return True return True
def BuildVerityTree(sparse_image_path, verity_image_path, prop_dict): def BuildVerityTree(sparse_image_path, verity_image_path, prop_dict):
cmd = "build_verity_tree -A %s %s %s" % ( cmd = ["build_verity_tree", "-A", FIXED_SALT, sparse_image_path,
FIXED_SALT, sparse_image_path, verity_image_path) verity_image_path]
print cmd output, exit_code = RunCommand(cmd)
status, output = commands.getstatusoutput(cmd) if exit_code != 0:
if status:
print "Could not build verity tree! Error: %s" % output print "Could not build verity tree! Error: %s" % output
return False return False
root, salt = output.split() root, salt = output.split()
@ -215,16 +207,13 @@ def BuildVerityTree(sparse_image_path, verity_image_path, prop_dict):
def BuildVerityMetadata(image_size, verity_metadata_path, root_hash, salt, def BuildVerityMetadata(image_size, verity_metadata_path, root_hash, salt,
block_device, signer_path, key, signer_args): block_device, signer_path, key, signer_args):
cmd_template = ( cmd = ["system/extras/verity/build_verity_metadata.py", "build",
"system/extras/verity/build_verity_metadata.py build " + str(image_size), verity_metadata_path, root_hash, salt, block_device,
"%s %s %s %s %s %s %s") signer_path, key]
cmd = cmd_template % (image_size, verity_metadata_path, root_hash, salt,
block_device, signer_path, key)
if signer_args: if signer_args:
cmd += " --signer_args=\"%s\"" % (' '.join(signer_args),) cmd.append("--signer_args=\"%s\"" % (' '.join(signer_args),))
print cmd output, exit_code = RunCommand(cmd)
status, output = commands.getstatusoutput(cmd) if exit_code != 0:
if status:
print "Could not build verity metadata! Error: %s" % output print "Could not build verity metadata! Error: %s" % output
return False return False
return True return True
@ -238,22 +227,19 @@ def Append2Simg(sparse_image_path, unsparse_image_path, error_message):
Returns: Returns:
True on success, False on failure. True on success, False on failure.
""" """
cmd = "append2simg %s %s" cmd = ["append2simg", sparse_image_path, unsparse_image_path]
cmd %= (sparse_image_path, unsparse_image_path) output, exit_code = RunCommand(cmd)
print cmd if exit_code != 0:
status, output = commands.getstatusoutput(cmd)
if status:
print "%s: %s" % (error_message, output) print "%s: %s" % (error_message, output)
return False return False
return True return True
def Append(target, file_to_append, error_message): def Append(target, file_to_append, error_message):
cmd = 'cat %s >> %s' % (file_to_append, target) print "appending %s to %s" % (file_to_append, target)
print cmd with open(target, "a") as out_file:
status, output = commands.getstatusoutput(cmd) with open(file_to_append, "r") as input_file:
if status: for line in input_file:
print "%s: %s" % (error_message, output) out_file.write(line)
return False
return True return True
def BuildVerifiedImage(data_image_path, verity_image_path, def BuildVerifiedImage(data_image_path, verity_image_path,