| #!/usr/bin/env fuchsia-vendored-python |
| # |
| # Copyright 2021 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import sys |
| import argparse |
| import subprocess |
| |
| |
| def main(): |
| parser = argparse.ArgumentParser() |
| parser.add_argument( |
| "--python_path", |
| help="path to the python binary to run avbtool", |
| required=True, |
| ) |
| parser.add_argument( |
| "--avbtool", help="path to avbtool provided by Android", required=True |
| ) |
| parser.add_argument( |
| "--image", help="path to test image to create", required=True |
| ) |
| parser.add_argument( |
| "--salt", help="salt to use when adding hash footer", required=True |
| ) |
| parser.add_argument( |
| "--output_vbmeta_image", |
| help="path to test vbmeta image to output to", |
| required=True, |
| ) |
| args = parser.parse_args() |
| |
| with open(args.image, "w") as f: |
| f.write("0123456789ABCDEF0123456789ABCDEF") |
| |
| process = subprocess.run( |
| [ |
| args.python_path, |
| args.avbtool, |
| "add_hash_footer", |
| "--image", |
| args.image, |
| "--salt", |
| args.salt, |
| "--partition_name", |
| "zircon", |
| "--do_not_append_vbmeta_image", |
| "--output_vbmeta_image", |
| args.output_vbmeta_image, |
| "--partition_size", |
| # we are not going to add footer into image, |
| # so, we do not care about a partition size checking. |
| # `partition_size' is a mandatory option, thus let |
| # use obviously big number for the partition size to pass |
| # verification. 200M should be good enough. |
| # TODO(dmitryya@) fix avbtool to do not check partition |
| # size if --do_not_append_vbmeta_image is specified. |
| "209715200", |
| ] |
| ) |
| return process.returncode |
| |
| |
| if __name__ == "__main__": |
| sys.exit(main()) |