diff --git a/opendbc_repo/opendbc/car/car_helpers.py b/opendbc_repo/opendbc/car/car_helpers.py index 69929f43..79b41fd9 100644 --- a/opendbc_repo/opendbc/car/car_helpers.py +++ b/opendbc_repo/opendbc/car/car_helpers.py @@ -127,6 +127,12 @@ def _get_gm_stored_candidate_fallback(fingerprints: dict[int, dict], stored_cand return None +def _apply_starpilot_access_policy(candidate: str, starpilot_toggles: SimpleNamespace | None) -> str: + # Branch-based dashcam gating was removed. Keep the resolved candidate even if + # an older serialized toggle payload still contains block_user=True. + return candidate + + def can_fingerprint(can_recv: CanRecvCallable) -> tuple[str | None, dict[int, dict]]: finger = gen_empty_fingerprint() candidate_cars = {i: all_legacy_fingerprint_cars() for i in [0, 1]} # attempt fingerprint on both bus 0 and 1 @@ -274,8 +280,7 @@ def get_car(can_recv: CanRecvCallable, can_send: CanSendCallable, set_obd_multip params.put_nonblocking("CarMake", candidate.split('_')[0].title()) params.put_nonblocking("CarModel", str(candidate)) - if starpilot_toggles.block_user: - candidate = "MOCK" + candidate = _apply_starpilot_access_policy(candidate, starpilot_toggles) # Legacy branch migration guard: normalize stale platform names from any source # (forced params, cached CarParams, fixed fingerprint env) before interface lookup. diff --git a/opendbc_repo/opendbc/car/tests/test_can_fingerprint.py b/opendbc_repo/opendbc/car/tests/test_can_fingerprint.py index 1a129443..f6b767b6 100644 --- a/opendbc_repo/opendbc/car/tests/test_can_fingerprint.py +++ b/opendbc_repo/opendbc/car/tests/test_can_fingerprint.py @@ -1,6 +1,8 @@ +from types import SimpleNamespace + import pytest from opendbc.car.can_definitions import CanData -from opendbc.car.car_helpers import FRAME_FINGERPRINT, _get_gm_stored_candidate_fallback, can_fingerprint +from opendbc.car.car_helpers import FRAME_FINGERPRINT, _apply_starpilot_access_policy, _get_gm_stored_candidate_fallback, can_fingerprint from opendbc.car.fingerprints import _FINGERPRINTS as FINGERPRINTS @@ -74,3 +76,8 @@ class TestCanFingerprint: candidate = _get_gm_stored_candidate_fallback(fingerprints, "CHEVROLET_VOLT_CC", "CHEVROLET_VOLT_CC") assert candidate is None + + def test_starpilot_access_policy_ignores_stale_block_user_toggle(self): + candidate = _apply_starpilot_access_policy("CHEVROLET_VOLT_CC", SimpleNamespace(block_user=True)) + + assert candidate == "CHEVROLET_VOLT_CC" diff --git a/panda/board/obj/body_h7.bin.signed b/panda/board/obj/body_h7.bin.signed index 10582dce..5955f71a 100644 Binary files a/panda/board/obj/body_h7.bin.signed and b/panda/board/obj/body_h7.bin.signed differ diff --git a/panda/board/obj/body_h7/bootstub.elf b/panda/board/obj/body_h7/bootstub.elf index 2b1a10e0..230b44ee 100755 Binary files a/panda/board/obj/body_h7/bootstub.elf and b/panda/board/obj/body_h7/bootstub.elf differ diff --git a/panda/board/obj/body_h7/main.bin b/panda/board/obj/body_h7/main.bin index 8ef1b2ba..3f31650f 100755 Binary files a/panda/board/obj/body_h7/main.bin and b/panda/board/obj/body_h7/main.bin differ diff --git a/panda/board/obj/body_h7/main.elf b/panda/board/obj/body_h7/main.elf index 4e170ba4..e33877e1 100755 Binary files a/panda/board/obj/body_h7/main.elf and b/panda/board/obj/body_h7/main.elf differ diff --git a/panda/board/obj/bootstub.body_h7.bin b/panda/board/obj/bootstub.body_h7.bin index 07c1b483..4ad66e97 100755 Binary files a/panda/board/obj/bootstub.body_h7.bin and b/panda/board/obj/bootstub.body_h7.bin differ diff --git a/panda/board/obj/bootstub.panda.bin b/panda/board/obj/bootstub.panda.bin index b3d0fa52..f49b8f61 100755 Binary files a/panda/board/obj/bootstub.panda.bin and b/panda/board/obj/bootstub.panda.bin differ diff --git a/panda/board/obj/bootstub.panda_h7.bin b/panda/board/obj/bootstub.panda_h7.bin index 6156569c..b81ba748 100755 Binary files a/panda/board/obj/bootstub.panda_h7.bin and b/panda/board/obj/bootstub.panda_h7.bin differ diff --git a/panda/board/obj/bootstub.panda_h7_remote.bin b/panda/board/obj/bootstub.panda_h7_remote.bin index 6156569c..b81ba748 100755 Binary files a/panda/board/obj/bootstub.panda_h7_remote.bin and b/panda/board/obj/bootstub.panda_h7_remote.bin differ diff --git a/panda/board/obj/bootstub.panda_jungle_h7.bin b/panda/board/obj/bootstub.panda_jungle_h7.bin index 1bc24366..e29d8d89 100755 Binary files a/panda/board/obj/bootstub.panda_jungle_h7.bin and b/panda/board/obj/bootstub.panda_jungle_h7.bin differ diff --git a/panda/board/obj/bootstub.panda_remote.bin b/panda/board/obj/bootstub.panda_remote.bin index b3d0fa52..f49b8f61 100755 Binary files a/panda/board/obj/bootstub.panda_remote.bin and b/panda/board/obj/bootstub.panda_remote.bin differ diff --git a/panda/board/obj/gitversion.h b/panda/board/obj/gitversion.h index e0f294fd..fe7f806d 100644 --- a/panda/board/obj/gitversion.h +++ b/panda/board/obj/gitversion.h @@ -1,2 +1,2 @@ extern const uint8_t gitversion[19]; -const uint8_t gitversion[19] = "DEV-74113197-DEBUG"; +const uint8_t gitversion[19] = "DEV-a97a59be-DEBUG"; diff --git a/panda/board/obj/panda.bin.signed b/panda/board/obj/panda.bin.signed index 8ebb1746..c3889104 100644 Binary files a/panda/board/obj/panda.bin.signed and b/panda/board/obj/panda.bin.signed differ diff --git a/panda/board/obj/panda/bootstub.elf b/panda/board/obj/panda/bootstub.elf index 5681ed04..2c1dc2b3 100755 Binary files a/panda/board/obj/panda/bootstub.elf and b/panda/board/obj/panda/bootstub.elf differ diff --git a/panda/board/obj/panda/main.bin b/panda/board/obj/panda/main.bin index 48f824db..4900c928 100755 Binary files a/panda/board/obj/panda/main.bin and b/panda/board/obj/panda/main.bin differ diff --git a/panda/board/obj/panda/main.elf b/panda/board/obj/panda/main.elf index 823ce9c0..09bf2c9c 100755 Binary files a/panda/board/obj/panda/main.elf and b/panda/board/obj/panda/main.elf differ diff --git a/panda/board/obj/panda_h7.bin.signed b/panda/board/obj/panda_h7.bin.signed index 02706bf4..06342dcd 100644 Binary files a/panda/board/obj/panda_h7.bin.signed and b/panda/board/obj/panda_h7.bin.signed differ diff --git a/panda/board/obj/panda_h7/bootstub.elf b/panda/board/obj/panda_h7/bootstub.elf index 17080177..167e26ad 100755 Binary files a/panda/board/obj/panda_h7/bootstub.elf and b/panda/board/obj/panda_h7/bootstub.elf differ diff --git a/panda/board/obj/panda_h7/main.bin b/panda/board/obj/panda_h7/main.bin index b6187e7e..8013608a 100755 Binary files a/panda/board/obj/panda_h7/main.bin and b/panda/board/obj/panda_h7/main.bin differ diff --git a/panda/board/obj/panda_h7/main.elf b/panda/board/obj/panda_h7/main.elf index d47ef1c6..5bc1cb66 100755 Binary files a/panda/board/obj/panda_h7/main.elf and b/panda/board/obj/panda_h7/main.elf differ diff --git a/panda/board/obj/panda_h7_remote.bin.signed b/panda/board/obj/panda_h7_remote.bin.signed index 16e014e7..93f3f2fc 100644 Binary files a/panda/board/obj/panda_h7_remote.bin.signed and b/panda/board/obj/panda_h7_remote.bin.signed differ diff --git a/panda/board/obj/panda_h7_remote/bootstub.elf b/panda/board/obj/panda_h7_remote/bootstub.elf index c9405942..9a1c245d 100755 Binary files a/panda/board/obj/panda_h7_remote/bootstub.elf and b/panda/board/obj/panda_h7_remote/bootstub.elf differ diff --git a/panda/board/obj/panda_h7_remote/main.bin b/panda/board/obj/panda_h7_remote/main.bin index 97f3b2f2..5744c84e 100755 Binary files a/panda/board/obj/panda_h7_remote/main.bin and b/panda/board/obj/panda_h7_remote/main.bin differ diff --git a/panda/board/obj/panda_h7_remote/main.elf b/panda/board/obj/panda_h7_remote/main.elf index 332d91b9..487b1fc1 100755 Binary files a/panda/board/obj/panda_h7_remote/main.elf and b/panda/board/obj/panda_h7_remote/main.elf differ diff --git a/panda/board/obj/panda_jungle_h7.bin.signed b/panda/board/obj/panda_jungle_h7.bin.signed index bce3a46f..fb0767bd 100644 Binary files a/panda/board/obj/panda_jungle_h7.bin.signed and b/panda/board/obj/panda_jungle_h7.bin.signed differ diff --git a/panda/board/obj/panda_jungle_h7/bootstub.elf b/panda/board/obj/panda_jungle_h7/bootstub.elf index 3277884a..4d694a1b 100755 Binary files a/panda/board/obj/panda_jungle_h7/bootstub.elf and b/panda/board/obj/panda_jungle_h7/bootstub.elf differ diff --git a/panda/board/obj/panda_jungle_h7/main.bin b/panda/board/obj/panda_jungle_h7/main.bin index 01c12b85..d92f2b6d 100755 Binary files a/panda/board/obj/panda_jungle_h7/main.bin and b/panda/board/obj/panda_jungle_h7/main.bin differ diff --git a/panda/board/obj/panda_jungle_h7/main.elf b/panda/board/obj/panda_jungle_h7/main.elf index 77185b38..bf53fb75 100755 Binary files a/panda/board/obj/panda_jungle_h7/main.elf and b/panda/board/obj/panda_jungle_h7/main.elf differ diff --git a/panda/board/obj/panda_remote.bin.signed b/panda/board/obj/panda_remote.bin.signed index ddfd2094..6396dc8c 100644 Binary files a/panda/board/obj/panda_remote.bin.signed and b/panda/board/obj/panda_remote.bin.signed differ diff --git a/panda/board/obj/panda_remote/bootstub.elf b/panda/board/obj/panda_remote/bootstub.elf index 31b86413..d30defb2 100755 Binary files a/panda/board/obj/panda_remote/bootstub.elf and b/panda/board/obj/panda_remote/bootstub.elf differ diff --git a/panda/board/obj/panda_remote/main.bin b/panda/board/obj/panda_remote/main.bin index 7b8458e2..38a7eeeb 100755 Binary files a/panda/board/obj/panda_remote/main.bin and b/panda/board/obj/panda_remote/main.bin differ diff --git a/panda/board/obj/panda_remote/main.elf b/panda/board/obj/panda_remote/main.elf index 8d7f3af7..6265b7e6 100755 Binary files a/panda/board/obj/panda_remote/main.elf and b/panda/board/obj/panda_remote/main.elf differ diff --git a/panda/board/obj/version b/panda/board/obj/version index 274fb8a0..c2ce2ec1 100644 --- a/panda/board/obj/version +++ b/panda/board/obj/version @@ -1 +1 @@ -DEV-74113197-DEBUG \ No newline at end of file +DEV-a97a59be-DEBUG \ No newline at end of file diff --git a/selfdrive/selfdrived/selfdrived.py b/selfdrive/selfdrived/selfdrived.py index 0c818bf0..af5c88bc 100644 --- a/selfdrive/selfdrived/selfdrived.py +++ b/selfdrive/selfdrived/selfdrived.py @@ -4,7 +4,6 @@ import time import threading import cereal.messaging as messaging -import openpilot.system.sentry as sentry from cereal import car, custom, log from msgq.visionipc import VisionIpcClient, VisionStreamType @@ -167,10 +166,6 @@ class SelfdriveD: self.FPCP = messaging.log_from_bytes(self.params.get("StarPilotCarParams", block=True), custom.StarPilotCarParams) - if self.starpilot_toggles.block_user: - self.startup_event = StarPilotEventName.blockUser - sentry.capture_block() - def update_events(self, CS): """Compute onroadEvents from carState""" diff --git a/selfdrive/ui/qt/offroad/software_settings.cc b/selfdrive/ui/qt/offroad/software_settings.cc index d3188c17..8c20b83e 100644 --- a/selfdrive/ui/qt/offroad/software_settings.cc +++ b/selfdrive/ui/qt/offroad/software_settings.cc @@ -62,11 +62,6 @@ SoftwarePanel::SoftwarePanel(QWidget* parent) : ListWidget(parent) { auto current = params.get("GitBranch"); QStringList branches = QString::fromStdString(params.get("UpdaterAvailableBranches")).split(","); if (!isFrogsGoMoo()) { - for (int i = branches.size() - 1; i >= 0; --i) { - if (branches[i].startsWith("StarPilot-Development", Qt::CaseInsensitive)) { - branches.removeAt(i); - } - } branches.removeAll("StarPilot-Vetting"); branches.removeAll("MAKE-PRS-HERE"); } diff --git a/selfdrive/ui/ui b/selfdrive/ui/ui index da4f7e9e..e8e6cc37 100755 Binary files a/selfdrive/ui/ui and b/selfdrive/ui/ui differ diff --git a/starpilot/common/starpilot_functions.py b/starpilot/common/starpilot_functions.py index 56457da3..10676e42 100644 --- a/starpilot/common/starpilot_functions.py +++ b/starpilot/common/starpilot_functions.py @@ -80,7 +80,7 @@ def install_starpilot(build_metadata, params): update_boot_logo(starpilot=True, selected_logo=params.get("BootLogo")) - if build_metadata.channel == "StarPilot-Development" and is_FrogsGoMoo(): + if is_FrogsGoMoo(): mount_options = run_cmd(["findmnt", "-n", "-o", "OPTIONS", "/persist"], "Successfully retrieved mount options", "Failed to retrieve mount options") run_cmd(["sudo", "mount", "-o", "remount,rw", "/persist"], "Successfully remounted /persist as read-write", "Failed to remount /persist") run_cmd(["sudo", "python3", FROGS_GO_MOO_PATH], "Successfully ran frogsgomoo.py", "Failed to run frogsgomoo.py") diff --git a/starpilot/common/starpilot_variables.py b/starpilot/common/starpilot_variables.py index 9724e1fb..1bbc89d8 100644 --- a/starpilot/common/starpilot_variables.py +++ b/starpilot/common/starpilot_variables.py @@ -288,14 +288,14 @@ class StarPilotVariables: self.tuning_levels = {key.decode(): self.params.get_tuning_level(key) for key in self.params.all_keys()} branch = get_build_metadata().channel - self.development_branch = branch == "StarPilot-Development" self.release_branch = branch == "StarPilot" self.staging_branch = branch == "StarPilot-Staging" self.testing_branch = branch == "StarPilot-Testing" self.vetting_branch = branch == "StarPilot-Vetting" self.frogs_go_moo = FROGS_GO_MOO_PATH.is_file() - toggle.block_user = (self.development_branch or branch == "MAKE-PRS-HERE" or self.vetting_branch) and not self.frogs_go_moo + # Development/vetting branches are no longer gated into dashcam mode. + toggle.block_user = False toggle.tuning_level = self.params.get("TuningLevel") if self.params.get_bool("TuningLevelConfirmed") else TUNING_LEVELS["ADVANCED"] @@ -306,7 +306,6 @@ class StarPilotVariables: toggle.use_higher_bitrate &= self.get_value("NoUploads") toggle.use_higher_bitrate &= not self.get_value("DisableOnroadUploads") toggle.use_higher_bitrate &= not self.vetting_branch - toggle.use_higher_bitrate |= self.development_branch HD_PATH.parent.mkdir(parents=True, exist_ok=True) if not HD_PATH.is_file() and toggle.use_higher_bitrate: diff --git a/starpilot/system/starpilot_stats.py b/starpilot/system/starpilot_stats.py index 35df7b62..41e378d1 100644 --- a/starpilot/system/starpilot_stats.py +++ b/starpilot/system/starpilot_stats.py @@ -224,7 +224,7 @@ def send_stats(): .tag("branch", build_metadata.channel) .tag("dongle_id", stats_dongle_id) - .field("blocked_user", starpilot_toggles.block_user) + .field("blocked_user", False) .field("current_months_kilometers", int(starpilot_stats.get("CurrentMonthsKilometers", 0))) .field("event", 1) .field("starpilot_drives", int(starpilot_stats.get("StarPilotDrives", 0))) diff --git a/starpilot/system/the_pond/the_pond.py b/starpilot/system/the_pond/the_pond.py index 5107c16b..77d9d981 100644 --- a/starpilot/system/the_pond/the_pond.py +++ b/starpilot/system/the_pond/the_pond.py @@ -3541,11 +3541,9 @@ def setup(app): build_metadata = get_build_metadata() short_branch = build_metadata.channel - if short_branch == "StarPilot-Development": - env = "Development" - elif build_metadata.release_channel: + if build_metadata.release_channel: env = "Release" - elif short_branch == "StarPilot-Testing": + elif short_branch in ("StarPilot-Development", "StarPilot-Testing"): env = "Testing" elif build_metadata.tested_channel: env = "Staging"