diff --git a/selfdrive/frogpilot/controls/lib/frogpilot_functions.py b/selfdrive/frogpilot/controls/lib/frogpilot_functions.py index ff7230463..b6b39153e 100644 --- a/selfdrive/frogpilot/controls/lib/frogpilot_functions.py +++ b/selfdrive/frogpilot/controls/lib/frogpilot_functions.py @@ -139,6 +139,11 @@ def frogpilot_boot_functions(build_metadata, params, params_storage): print(f"Backup failed: {e}") def setup_frogpilot(build_metadata): + remount_persist = ['sudo', 'mount', '-o', 'remount,rw', '/persist'] + run_cmd(remount_persist, "Successfully remounted /persist as read-write.", "Failed to remount /persist.") + + os.makedirs("/persist/params", exist_ok=True) + remount_root = ['sudo', 'mount', '-o', 'remount,rw', '/'] run_cmd(remount_root, "File system remounted as read-write.", "Failed to remount file system.") diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index 23a800709..da03fcc14 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -511,6 +511,7 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) { resetTogglesBtn->setEnabled(false); resetTogglesBtn->setValue(tr("Resetting toggles...")); + std::system("rm -rf /persist/params"); params.putBool("DoToggleReset", true); resetTogglesBtn->setValue(tr("Reset!")); diff --git a/system/manager/manager.py b/system/manager/manager.py index 8877f25cb..f4f75226d 100644 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -357,7 +357,12 @@ def manager_init() -> None: # set unset params for k, v in default_params: if params.get(k) is None or params.get_bool("DoToggleReset"): - params.put(k, v) + if params_storage.get(k) is None: + params.put(k, v) + else: + params.put(k, params_storage.get(k)) + else: + params_storage.put(k, params.get(k)) params.put_bool_nonblocking("DoToggleReset", False)