  #pragma once
  
  #include "selfdrive/hardware/base.h"
  
  #ifdef QCOM
  #include "selfdrive/hardware/eon/hardware.h"
  #define Hardware HardwareEon
 
</s> remove const int ROAD_CAMERA_ID = getenv("ROADCAM_ID") ? atoi(getenv("ROADCAM_ID")) : 1;
const int DRIVER_CAMERA_ID = getenv("DRIVERCAM_ID") ? atoi(getenv("DRIVERCAM_ID")) : 2;
 </s> add const int ROAD_CAMERA_ID = util::getenv("ROADCAM_ID", 1);
const int DRIVER_CAMERA_ID = util::getenv("DRIVERCAM_ID", 2); </s> remove const std::string DEFAULT_LOG_ROOT =
    Hardware::PC() ? util::getenv_default("HOME", "/.comma/media/0/realdata", "/data/media/0/realdata")
                   : "/data/media/0/realdata";

const std::string LOG_ROOT = util::getenv_default("LOG_ROOT", "", DEFAULT_LOG_ROOT.c_str());
 </s> add const std::string LOG_ROOT = Path::log_root(); </s> remove const std::string private_key_path =
    Hardware::PC() ? util::getenv_default("HOME", "/.comma/persist/comma/id_rsa", "/persist/comma/id_rsa")
                   : "/persist/comma/id_rsa";

 </s> add  </s> remove   auto file = QFile(private_key_path.c_str());
 </s> add   auto file = QFile(Path::rsa_file().c_str()); </s> remove std::string getenv_default(const char* env_var, const char* suffix, const char* default_val);
 </s> add std::string getenv(const char* key, const char* default_val = "");
int getenv(const char* key, int default_val);
float getenv(const char* key, float default_val);

#include "selfdrive/common/util.h"
  #pragma once
  
  #include "selfdrive/hardware/base.h"
#include "selfdrive/common/util.h"
  
  #ifdef QCOM
  #include "selfdrive/hardware/eon/hardware.h"
  #define Hardware HardwareEon
keep keep add keep keep keep keep
 hw.h: move Hardware-related paths to namespace Path (#21826)

* refactor getenv and path

* apply review 
selfdrive/hardware/hw.h