honda: enable the Bosch-A radar on every Bosch-A platform

Instead of the verified-subset allowlist (Civic Bosch / CR-V 5G only), clear
radarUnavailable for the whole HONDA_BOSCH_A hardware family so the decoder can
be tried on other Bosch-A cars. The sentinel-file kill switch still turns it
off, and HONDA_BOSCH_A_RADAR_VERIFIED is kept for reference.
This commit is contained in:
Comma Device
2026-09-16 19:15:20 +08:00
parent 8b1868bd52
commit a4eb1ef4e9
2 changed files with 7 additions and 7 deletions
+3 -5
View File
@@ -49,14 +49,12 @@ class CarInterface(CarInterfaceBase):
cfgs.insert(0, get_safety_config(structs.CarParams.SafetyModel.noOutput))
ret.safetyConfigs = cfgs
# Honda Bosch-A radar (RX-only 16-slot object bank, see radar_interface.py). The
# verified platforms get it by default; a sentinel file acts as a kill switch so no
# Honda Bosch-A radar (RX-only 16-slot object bank, see radar_interface.py). Enabled by
# default for every Bosch-A platform; a sentinel file acts as a kill switch so no
# params_keys.h rebuild is needed. Reading radar never takes CAN authority, so the
# factory AEB/CMBS/FCW stay live while stock longitudinal is in control.
bosch_a_radar_enabled = not docs and not os.path.exists("/data/params/d/HondaBoschARadarOff")
ret.radarUnavailable = not (candidate in HONDA_BOSCH_A and
candidate in HONDA_BOSCH_A_RADAR_VERIFIED and
bosch_a_radar_enabled)
ret.radarUnavailable = not (candidate in HONDA_BOSCH_A and bosch_a_radar_enabled)
# Disable the radar and let openpilot control longitudinal
# WARNING: THIS DISABLES AEB!
# If Bosch radarless, this blocks ACC messages from the camera
@@ -1155,9 +1155,11 @@ def test_bosch_a_hardware_allowlist_is_exact_and_verified_set_is_explicit():
@pytest.mark.parametrize("car", sorted(_EXPECTED_BOSCH_A_CARS - _VERIFIED_BOSCH_A_CARS, key=lambda candidate: candidate.name))
def test_bosch_a_radar_stays_closed_until_platform_is_verified(car):
def test_bosch_a_radar_is_enabled_for_every_bosch_a_platform(car):
# This fork enables the Bosch-A decoder on the whole hardware family rather than a
# verified-subset allowlist, so users can try it on other Bosch-A cars.
cp = CarInterface.get_non_essential_params(car)
assert cp.radarUnavailable is True
assert cp.radarUnavailable is False
@pytest.mark.parametrize("car", _EXCLUDED_BOSCH_CARS)