blob: ba140c5331ae33f875286b140a26f502caca758a [file] [log] [blame] [edit]
#!/usr/bin/env python3
# Copyright 2020 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""This is a mock ectool command for fingerprint testing."""
from __future__ import print_function
import argparse
import sys
MOCK_VERSION_STR = """\
RO version: bloonchipper_v2.0.5938-197506c1
RW version: bloonchipper_v2.0.23521-642195b
RW cros fwid: bloonchipper_15749.0.0
Firmware copy: RW
Build info: bloonchipper_v2.0.23521-642195b boringssl:v0.0.7276-e0d601a57\
cryptoc:v1.9308_26_0.14-0dd6790 private:v2.1.9999-642195ba\
fpc:v2.1.9999-642195ba bloonchipper_15749.0.0 2024-01-12 17:15:27\
@chromeos-release-builder-us-central1-a-x32-30-5d0f
Tool version: v2.0.24267-7420a2d0ef 2024-03-15 23:46:59\
@chromeos-release-builder-us-central1-b-x32-19-j5aj\
"""
def cmd_fpframe():
"""Provides the last fingerprint capture frame to stdout."""
print("Act like I am a raw fingerprint image file.")
sys.exit(0)
def cmd_fpmode():
"""Shows the current fingerprint subsystem's state/mode."""
print("FP mode: (0x0)")
sys.exit(0)
def cmd_version():
"""Shows the current fingerprint subsystem's version information."""
print(MOCK_VERSION_STR)
sys.exit(0)
def get_parser() -> argparse.ArgumentParser:
"""Return the complete argument parser for ectool."""
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--name")
parser_subparsers = parser.add_subparsers(dest="action")
# fpmode
parser_fpmode = parser_subparsers.add_parser("fpmode")
parser_fpmode.description = cmd_fpmode.__doc__
parser_fpmode.set_defaults(func=cmd_fpmode)
# fpmode capture vendor
parser_fpmode_subparsers = parser_fpmode.add_subparsers(dest="fpmode")
parser_fpmode_subparsers.add_parser("capture").add_argument(
"capture_type",
choices=["vendor", "pattern0", "pattern1"],
)
# fpmode fingerup
parser_fpmode_subparsers.add_parser("fingerup")
# fpframe raw
parser_fpframe = parser_subparsers.add_parser("fpframe")
parser_fpframe.description = cmd_fpframe.__doc__
parser_fpframe.set_defaults(func=cmd_fpframe)
parser_fpframe.add_argument("option", choices=["raw"])
# version
parser_version = parser_subparsers.add_parser("version")
parser_version.description = cmd_version.__doc__
parser_version.set_defaults(func=cmd_version)
return parser
def main(argv: list):
"""Run argument parser and launch subcommand."""
parser = get_parser()
opts = parser.parse_args(argv)
if opts.name != "cros_fp":
parser.error("--name=cros_fp must be specified")
opts.func()
if __name__ == "__main__":
sys.exit(main(sys.argv[1:]))