def main(): parser = argparse.ArgumentParser( usage="%(prog)s [options] update.zip", epilog="Note: update.zip must be a signed FOTA update.zip") parser.add_argument( "-o", "--output", dest="output", metavar="MAR", default=None, help="Output to update MAR. Default: replace '.zip' with '.mar'") update_tools.validate_env(parser) options, args = parser.parse_known_args() if len(args) == 0: parser.print_help() print >> sys.stderr, "Error: update.zip not specified" sys.exit(1) update_zip = args[0] if not os.path.exists(update_zip): print >>sys.stderr, \ "Error: update.zip does not exist: %s" % update_zip sys.exit(1) output_mar = options.output if not output_mar: if ".zip" in update_zip: output_mar = update_zip.replace(".zip", ".mar") else: output_mar = "update.mar" build_fota_mar(update_zip, output_mar)
def main(): parser = argparse.ArgumentParser(usage="%(prog)s [options]", epilog="Note: java is required to be on your PATH to sign the update.zip") system_group = parser.add_argument_group("system options") system_group.add_argument("--system-dir", dest="system_dir", required=True, help="path to system directory. required") system_group.add_argument("--system-fs-type", dest="system_fs_type", default=None, required=True, help="filesystem type for /system. required") system_group.add_argument("--system-location", dest="system_location", default=None, required=True, help="device location for /system. required") data_group = parser.add_argument_group("data options") data_group.add_argument("--data-fs-type", dest="data_fs_type", default=None, required=True, help="filesystem type for /data. required") data_group.add_argument("--data-location", dest="data_location", default=None, required=True, help="device location for /data. required") fota_group = parser.add_argument_group("fota options") fota_group.add_argument("--fota-type", dest="fota_type", required=False, default="full", help="'partial' or 'full' fota. 'partial' requires a file list") fota_group.add_argument("--fota-dirs", dest="fota_dirs", required=False, default="", help="space-separated string containing list of dirs to include, to delete files") fota_group.add_argument("--fota-files", dest="fota_files", required=False, default="", help="file containing list of files in /system to include") fota_checks_group = parser.add_argument_group("fota_checks_group") fota_checks_group.add_argument("--fota-check-device-name", dest="fota_check_device_name", default=None, required=False, help="'add a check to prevent the update from being installed on a device different from TARGET_DEVICE") fota_checks_group.add_argument("--fota-check-gonk-version", dest="fota_check_gonk_version", default=False, required=False, action="store_true", help="add checks to verify that the device's libraries match the ones the update depends on") signing_group = parser.add_argument_group("signing options") signing_group.add_argument("-d", "--dev-key", dest="dev_key", metavar="KEYNAME", default="testkey", help="Use the named dev key pair in build/target/product/security. " + "Possible keys: media, platform, shared, testkey. Default: testkey") signing_group.add_argument("-k", "--private-key", dest="private_key", metavar="PRIVATE_KEY", default=None, help="Private key used for signing the update.zip. Overrides --dev-key.") signing_group.add_argument("-K", "--public-key", dest="public_key", metavar="PUBLIC_KEY", default=None, help="Public key used for signing the update.zip. Overrides --dev-key.") parser.add_argument("-o", "--output", dest="output", metavar="ZIP", help="Output to ZIP. Default: flash.zip", default=None) update_tools.validate_env(parser) try: build_flash_fota(parser.parse_args()) except update_tools.UpdateException, e: print >>sys.stderr, "Error: %s" % e sys.exit(1)
def main(): parser = argparse.ArgumentParser(usage="%(prog)s [options] update.zip", epilog="Note: update.zip must be a signed FOTA update.zip") parser.add_argument("-o", "--output", dest="output", metavar="MAR", default=None, help="Output to update MAR. Default: replace '.zip' with '.mar'") update_tools.validate_env(parser) options, args = parser.parse_known_args() if len(args) == 0: parser.print_help() print >>sys.stderr, "Error: update.zip not specified" sys.exit(1) update_zip = args[0] if not os.path.exists(update_zip): print >>sys.stderr, \ "Error: update.zip does not exist: %s" % update_zip sys.exit(1) output_mar = options.output if not output_mar: if ".zip" in update_zip: output_mar = update_zip.replace(".zip", ".mar") else: output_mar = "update.mar" build_fota_mar(update_zip, output_mar)
def main(): parser = argparse.ArgumentParser(usage="%(prog)s [options] update-dir", epilog="Note: java is required to be on your PATH to sign the update.zip") parser.add_argument("-d", "--dev-key", dest="dev_key", metavar="KEYNAME", default="testkey", help="Use the named dev key pair in build/target/product/security. " + "Possible keys: media, platform, shared, testkey. Default: testkey") parser.add_argument("-k", "--private-key", dest="private_key", metavar="PRIVATE_KEY", default=None, help="Private key used for signing the update.zip. Overrides --dev-key.") parser.add_argument("-K", "--public-key", dest="public_key", metavar="PUBLIC_KEY", default=None, help="Public key used for signing the update.zip. Overrides --dev-key.") parser.add_argument("-u", "--update-bin", dest="update_bin", required=False, default=None, help="Specify update-binary to be used in update.zip.") parser.add_argument("-o", "--output", dest="output", metavar="ZIP", help="Output to ZIP. Default: update-dir.zip", default=None) update_tools.validate_env(parser) options, args = parser.parse_known_args() if len(args) == 0: parser.print_help() print >>sys.stderr, "Error: update-dir not specified" sys.exit(1) update_dir = args[0] if not os.path.isdir(update_dir): print >>sys.stderr, \ "Error: update-dir is not a directory: %s" % update_dir sys.exit(1) security_dir = os.path.join(update_tools.b2g_dir, "build", "target", "product", "security") public_key = options.public_key or os.path.join(security_dir, options.dev_key + ".x509.pem") private_key = options.private_key or os.path.join(security_dir, options.dev_key + ".pk8") update_bin = args.update_bin or os.path.join(update_tools.b2g_dir, "tools", "update-tools", "bin", "gonk", "update-binary") output_zip = options.output or update_dir + ".zip" build_fota_zip(update_dir, public_key, private_key, output_zip, update_bin)
def main(): parser = argparse.ArgumentParser(usage="%(prog)s [options]", epilog="Note: java is required to be on your PATH to sign the update.zip") system_group = parser.add_argument_group("system options") system_group.add_argument("--system-dir", dest="system_dir", required=True, help="path to system directory. required") system_group.add_argument("--system-fs-type", dest="system_fs_type", default=None, required=True, help="filesystem type for /system. required") system_group.add_argument("--system-location", dest="system_location", default=None, required=True, help="device location for /system. required") data_group = parser.add_argument_group("data options") data_group.add_argument("--data-fs-type", dest="data_fs_type", default=None, required=True, help="filesystem type for /data. required") data_group.add_argument("--data-location", dest="data_location", default=None, required=True, help="device location for /data. required") signing_group = parser.add_argument_group("signing options") signing_group.add_argument("-d", "--dev-key", dest="dev_key", metavar="KEYNAME", default="testkey", help="Use the named dev key pair in build/target/product/security. " + "Possible keys: media, platform, shared, testkey. Default: testkey") signing_group.add_argument("-k", "--private-key", dest="private_key", metavar="PRIVATE_KEY", default=None, help="Private key used for signing the update.zip. Overrides --dev-key.") signing_group.add_argument("-K", "--public-key", dest="public_key", metavar="PUBLIC_KEY", default=None, help="Public key used for signing the update.zip. Overrides --dev-key.") parser.add_argument("-o", "--output", dest="output", metavar="ZIP", help="Output to ZIP. Default: flash.zip", default=None) update_tools.validate_env(parser) try: build_flash_fota(parser.parse_args()) except update_tools.UpdateException, e: print >>sys.stderr, "Error: %s" % e sys.exit(1)
def main(): parser = argparse.ArgumentParser( usage="%(prog)s [options] update-dir", epilog= "Note: java is required to be on your PATH to sign the update.zip") parser.add_argument( "-d", "--dev-key", dest="dev_key", metavar="KEYNAME", default="testkey", help="Use the named dev key pair in build/target/product/security. " + "Possible keys: media, platform, shared, testkey. Default: testkey") parser.add_argument( "-k", "--private-key", dest="private_key", metavar="PRIVATE_KEY", default=None, help="Private key used for signing the update.zip. Overrides --dev-key." ) parser.add_argument( "-K", "--public-key", dest="public_key", metavar="PUBLIC_KEY", default=None, help="Public key used for signing the update.zip. Overrides --dev-key." ) parser.add_argument("-u", "--update-bin", dest="update_bin", required=False, default=None, help="Specify update-binary to be used in update.zip.") parser.add_argument("-o", "--output", dest="output", metavar="ZIP", help="Output to ZIP. Default: update-dir.zip", default=None) update_tools.validate_env(parser) options, args = parser.parse_known_args() if len(args) == 0: parser.print_help() print >> sys.stderr, "Error: update-dir not specified" sys.exit(1) update_dir = args[0] if not os.path.isdir(update_dir): print >>sys.stderr, \ "Error: update-dir is not a directory: %s" % update_dir sys.exit(1) security_dir = os.path.join(update_tools.b2g_dir, "build", "target", "product", "security") public_key = options.public_key or os.path.join( security_dir, options.dev_key + ".x509.pem") private_key = options.private_key or os.path.join(security_dir, options.dev_key + ".pk8") update_bin = args.update_bin or os.path.join(update_tools.b2g_dir, "tools", "update-tools", "bin", "gonk", "update-binary") output_zip = options.output or update_dir + ".zip" build_fota_zip(update_dir, public_key, private_key, output_zip, update_bin)