Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)