コード例 #1
0
                elif msg.which() == "carParams":
                    bts = msg.carParams.as_builder().to_bytes()

                    car_fw = msg.carParams.carFw
                    if len(car_fw) == 0:
                        break

                    dongles.append(dongle_id)
                    live_fingerprint = msg.carParams.carFingerprint

                    if args.car is not None:
                        live_fingerprint = args.car

                    if live_fingerprint not in list(
                            TOYOTA_FINGERPRINTS.keys()) + list(
                                HONDA_FINGERPRINTS.keys()) + list(
                                    HYUNDAI_FINGERPRINTS.keys()):
                        break

                    candidates = match_fw_to_car(car_fw)
                    if (len(candidates) == 1) and (list(candidates)[0]
                                                   == live_fingerprint):
                        good += 1
                        print("Correct", live_fingerprint, dongle_id)
                        break

                    print(f"{dongle_id}|{time}")
                    print("Old style:", live_fingerprint, "Vin",
                          msg.carParams.carVin)
                    print("New style:", candidates)
コード例 #2
0
      for msg in lr:
        if msg.which() == "health":
          if msg.health.hwType not in ['uno', 'blackPanda']:
            dongles.append(dongle_id)
            break

        elif msg.which() == "carParams":
          car_fw = msg.carParams.carFw
          if len(car_fw) == 0:
            break

          dongles.append(dongle_id)
          live_fingerprint = msg.carParams.carFingerprint

          if live_fingerprint not in list(TOYOTA_FINGERPRINTS.keys()) + list(HONDA_FINGERPRINTS.keys()):
            continue

          candidates = match_fw_to_car(car_fw)
          if (len(candidates) == 1) and (list(candidates)[0] == live_fingerprint):
            good += 1
            print("Correct", live_fingerprint, dongle_id)
            break

          print(f"{dongle_id}|{time}")
          print("Old style:", live_fingerprint, "Vin", msg.carParams.carVin)
          print("New style:", candidates)

          for version in car_fw:
            subaddr = None if version.subAddress == 0 else hex(version.subAddress)
            print(f"  (Ecu.{version.ecu}, {hex(version.address)}, {subaddr}): [{version.fwVersion}],")
コード例 #3
0
                if msg.which() == "health":
                    if msg.health.hwType not in ['uno', 'blackPanda']:
                        dongles.append(dongle_id)
                        break

                elif msg.which() == "carParams":
                    car_fw = msg.carParams.carFw
                    if len(car_fw) == 0:
                        break

                    dongles.append(dongle_id)
                    live_fingerprint = msg.carParams.carFingerprint

                    if live_fingerprint not in list(
                            TOYOTA_FINGERPRINTS.keys()) + list(
                                HONDA_FINGERPRINTS.keys()):
                        continue

                    candidates = match_fw_to_car(car_fw)
                    if (len(candidates) == 1) and (list(candidates)[0]
                                                   == live_fingerprint):
                        good += 1
                        print("Correct", live_fingerprint, dongle_id)
                        break

                    print(f"{dongle_id}|{time}")
                    print("Old style:", live_fingerprint, "Vin",
                          msg.carParams.carVin)
                    print("New style:", candidates)

                    for version in car_fw:
コード例 #4
0
from tools.lib.logreader import LogReader
from tools.lib.route import Route
from selfdrive.car.fw_versions import match_fw_to_car_exact, match_fw_to_car_fuzzy, build_fw_dict
from selfdrive.car.toyota.values import FW_VERSIONS as TOYOTA_FW_VERSIONS
from selfdrive.car.honda.values import FW_VERSIONS as HONDA_FW_VERSIONS
from selfdrive.car.hyundai.values import FW_VERSIONS as HYUNDAI_FW_VERSIONS
from selfdrive.car.volkswagen.values import FW_VERSIONS as VW_FW_VERSIONS

from selfdrive.car.toyota.values import FINGERPRINTS as TOYOTA_FINGERPRINTS
from selfdrive.car.honda.values import FINGERPRINTS as HONDA_FINGERPRINTS
from selfdrive.car.hyundai.values import FINGERPRINTS as HYUNDAI_FINGERPRINTS
from selfdrive.car.volkswagen.values import FINGERPRINTS as VW_FINGERPRINTS

NO_API = "NO_API" in os.environ
SUPPORTED_CARS = list(TOYOTA_FINGERPRINTS.keys()) + list(
    HONDA_FINGERPRINTS.keys()) + list(HYUNDAI_FINGERPRINTS.keys()) + list(
        VW_FINGERPRINTS.keys())

try:
    from xx.pipeline.c.CarState import migration
except ImportError:
    migration = {}

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description='Run FW fingerprint on Qlog of route or list of routes')
    parser.add_argument('route', help='Route or file with list of routes')
    parser.add_argument('--car',
                        help='Force comparison fingerprint to known car')
    args = parser.parse_args()
コード例 #5
0
from tqdm import tqdm
from tools.lib.logreader import LogReader
from tools.lib.route import Route
from selfdrive.car.fw_versions import match_fw_to_car_exact, match_fw_to_car_fuzzy, build_fw_dict
from selfdrive.car.toyota.values import FW_VERSIONS as TOYOTA_FW_VERSIONS
from selfdrive.car.honda.values import FW_VERSIONS as HONDA_FW_VERSIONS
from selfdrive.car.hyundai.values import FW_VERSIONS as HYUNDAI_FW_VERSIONS
from selfdrive.car.volkswagen.values import FW_VERSIONS as VW_FW_VERSIONS

from selfdrive.car.toyota.values import FINGERPRINTS as TOYOTA_FINGERPRINTS
from selfdrive.car.honda.values import FINGERPRINTS as HONDA_FINGERPRINTS
from selfdrive.car.hyundai.values import FINGERPRINTS as HYUNDAI_FINGERPRINTS
from selfdrive.car.volkswagen.values import FINGERPRINTS as VW_FINGERPRINTS

NO_API = "NO_API" in os.environ
SUPPORTED_CARS = list(TOYOTA_FINGERPRINTS.keys()) + list(HONDA_FINGERPRINTS.keys()) + list(HYUNDAI_FINGERPRINTS.keys())+ list(VW_FINGERPRINTS.keys())

if __name__ == "__main__":
  parser = argparse.ArgumentParser(description='Run FW fingerprint on Qlog of route or list of routes')
  parser.add_argument('route', help='Route or file with list of routes')
  parser.add_argument('--car', help='Force comparison fingerprint to known car')
  args = parser.parse_args()

  if os.path.exists(args.route):
    routes = list(open(args.route))
  else:
    routes = [args.route]

  mismatches = defaultdict(list)

  not_fingerprinted = 0