diff --git a/selfdrive/manager/manager.py b/selfdrive/manager/manager.py index accc1a5fb3..9e04913d2a 100755 --- a/selfdrive/manager/manager.py +++ b/selfdrive/manager/manager.py @@ -74,9 +74,13 @@ def manager_init(): params.put("GitRemote", get_git_remote(default="")) # set dongle id - dongle_id = register(show_spinner=True) - if dongle_id is not None: - os.environ['DONGLE_ID'] = dongle_id # Needed for swaglog + reg_res = register(show_spinner=True) + if reg_res: + dongle_id = reg_res + else: + serial = params.get("HardwareSerial") + raise Exception(f"Registration failed for device {serial}") + os.environ['DONGLE_ID'] = dongle_id # Needed for swaglog if not dirty: os.environ['CLEAN'] = '1' @@ -84,7 +88,7 @@ def manager_init(): cloudlog.bind_global(dongle_id=dongle_id, version=version, dirty=dirty, device=HARDWARE.get_device_type()) - if not (dongle_id is None or os.getenv("NOLOG") or os.getenv("NOCRASH") or PC): + if not (os.getenv("NOLOG") or os.getenv("NOCRASH") or PC): crash.init() crash.bind_user(id=dongle_id) crash.bind_extra(dirty=dirty, origin=origin, branch=branch, commit=commit, @@ -113,8 +117,6 @@ def manager_thread(): params = Params() ignore = [] - if params.get("DongleId") is None: - ignore += ["uploader", "manage_athenad"] if os.getenv("NOBOARD") is not None: ignore.append("pandad") if os.getenv("BLOCK") is not None: diff --git a/selfdrive/registration.py b/selfdrive/registration.py index 1bff6ef007..ad4db74f1a 100644 --- a/selfdrive/registration.py +++ b/selfdrive/registration.py @@ -10,7 +10,7 @@ from common.params import Params from common.spinner import Spinner from common.file_helpers import mkdirs_exists_ok from common.basedir import PERSIST -from selfdrive.hardware import HARDWARE +from selfdrive.hardware import HARDWARE, PC from selfdrive.swaglog import cloudlog @@ -65,13 +65,14 @@ def register(show_spinner=False): resp = api_get("v2/pilotauth/", method='POST', timeout=15, imei=imei1, imei2=imei2, serial=serial, public_key=public_key, register_token=register_token) - if resp.status_code == 402: - cloudlog.info("Uknown serial number while trying to register device") + if resp.status_code in (402, 403): + cloudlog.info(f"Unable to register device, got {resp.status_code}") dongle_id = None + if PC: + dongle_id = "UnofficialDevice" else: dongleauth = json.loads(resp.text) dongle_id = dongleauth["dongle_id"] - params.put("DongleId", dongle_id) break except Exception: cloudlog.exception("failed to authenticate") @@ -81,6 +82,8 @@ def register(show_spinner=False): if show_spinner: spinner.close() + if dongle_id: + params.put("DongleId", dongle_id) return dongle_id