diff --git a/libweave/include/weave/device.h b/libweave/include/weave/device.h
index 5802db8..585adba 100644
--- a/libweave/include/weave/device.h
+++ b/libweave/include/weave/device.h
@@ -27,6 +27,7 @@
 class Device {
  public:
   struct Options {
+    std::string firmware_version;  // TODO: Move into weave::Settings
     base::FilePath config_path;
     base::FilePath state_path;
     base::FilePath definitions_path;
diff --git a/libweave/src/base_api_handler.cc b/libweave/src/base_api_handler.cc
index ed85d39..d09e512 100644
--- a/libweave/src/base_api_handler.cc
+++ b/libweave/src/base_api_handler.cc
@@ -20,27 +20,17 @@
 
 BaseApiHandler::BaseApiHandler(
     DeviceRegistrationInfo* device_info,
+    const std::string& firmware_version,
     const std::shared_ptr<StateManager>& state_manager,
     const std::shared_ptr<CommandManager>& command_manager)
     : device_info_{device_info}, state_manager_{state_manager} {
   device_info_->AddOnConfigChangedCallback(base::Bind(
       &BaseApiHandler::OnConfigChanged, weak_ptr_factory_.GetWeakPtr()));
 
-  // Populate state fields that belong to the system.
-  base::FilePath lsb_release_path("/etc/lsb-release");
-  chromeos::KeyValueStore lsb_release_store;
-  std::string firmware_version;
-  if (lsb_release_store.Load(lsb_release_path) &&
-      lsb_release_store.GetString("CHROMEOS_RELEASE_VERSION",
-                                  &firmware_version)) {
-    base::DictionaryValue state;
-    state.SetStringWithoutPathExpansion(kBaseStateFirmwareVersion,
-                                        firmware_version);
-    CHECK(state_manager_->SetProperties(state, nullptr));
-  } else {
-    LOG(ERROR) << "Failed to get CHROMEOS_RELEASE_VERSION from "
-               << lsb_release_path.value();
-  }
+  base::DictionaryValue state;
+  state.SetStringWithoutPathExpansion(kBaseStateFirmwareVersion,
+                                      firmware_version);
+  CHECK(state_manager_->SetProperties(state, nullptr));
 
   command_manager->AddOnCommandAddedCallback(base::Bind(
       &BaseApiHandler::OnCommandAdded, weak_ptr_factory_.GetWeakPtr()));
diff --git a/libweave/src/base_api_handler.h b/libweave/src/base_api_handler.h
index c1a5f2e..abb60b1 100644
--- a/libweave/src/base_api_handler.h
+++ b/libweave/src/base_api_handler.h
@@ -27,6 +27,7 @@
 class BaseApiHandler final {
  public:
   BaseApiHandler(DeviceRegistrationInfo* device_info,
+                 const std::string& firmware_version,
                  const std::shared_ptr<StateManager>& state_manager,
                  const std::shared_ptr<CommandManager>& command_manager);
 
diff --git a/libweave/src/base_api_handler_unittest.cc b/libweave/src/base_api_handler_unittest.cc
index 8a1b881..735ddd9 100644
--- a/libweave/src/base_api_handler_unittest.cc
+++ b/libweave/src/base_api_handler_unittest.cc
@@ -60,8 +60,8 @@
         std::unique_ptr<BuffetConfig>{new BuffetConfig{
             std::unique_ptr<StorageInterface>{new MemStorage}}},
         nullptr, &http_client_, true, nullptr));
-    handler_.reset(
-        new BaseApiHandler{dev_reg_.get(), state_manager_, command_manager_});
+    handler_.reset(new BaseApiHandler{dev_reg_.get(), "123123", state_manager_,
+                                      command_manager_});
   }
 
   void LoadCommands(const std::string& command_definitions) {
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc
index efbac77..4d3c251 100644
--- a/libweave/src/device_manager.cc
+++ b/libweave/src/device_manager.cc
@@ -48,8 +48,9 @@
   device_info_.reset(new DeviceRegistrationInfo(
       command_manager_, state_manager_, std::move(config), task_runner,
       http_client, options.xmpp_enabled, network));
-  base_api_handler_.reset(
-      new BaseApiHandler{device_info_.get(), state_manager_, command_manager_});
+  base_api_handler_.reset(new BaseApiHandler{device_info_.get(),
+                                             options.firmware_version,
+                                             state_manager_, command_manager_});
 
   device_info_->Start();
 
