diff --git a/Android.bp b/Android.bp
index a1bc6b0..f95f207 100644
--- a/Android.bp
+++ b/Android.bp
@@ -59,6 +59,7 @@
         "-ffunction-sections",
         "-fstack-protector-strong",
         "-fvisibility=hidden",
+        "-g3",
     ],
     cppflags: [
         "-Wnon-virtual-dtor",
@@ -251,6 +252,7 @@
         "payload_consumer/xz_extent_writer.cc",
         "payload_consumer/fec_file_descriptor.cc",
         "payload_consumer/partition_update_generator_android.cc",
+        "update_status_utils.cc",
     ],
 }
 
@@ -392,7 +394,6 @@
         "libcurl_http_fetcher.cc",
         "metrics_utils.cc",
         "update_boot_flags_action.cc",
-        "update_status_utils.cc",
     ],
 }
 
@@ -647,6 +648,7 @@
 }
 
 cc_test {
+    host_supported: true,
     name: "ue_unittest_delta_generator",
     defaults: [
         "ue_defaults",
@@ -728,6 +730,78 @@
     ],
 }
 
+filegroup {
+    name: "update_engine_host_unittest_srcs",
+    srcs: [
+        "common/action_pipe_unittest.cc",
+        "common/action_processor_unittest.cc",
+        "common/action_unittest.cc",
+        "common/cow_operation_convert_unittest.cc",
+        "common/cpu_limiter_unittest.cc",
+        "common/fake_prefs.cc",
+        "common/file_fetcher_unittest.cc",
+        "common/hash_calculator_unittest.cc",
+        "common/hwid_override_unittest.cc",
+        "common/metrics_reporter_stub.cc",
+        "common/mock_http_fetcher.cc",
+        "common/prefs_unittest.cc",
+        "common/terminator_unittest.cc",
+        "common/test_utils.cc",
+        "payload_generator/ab_generator_unittest.cc",
+        "payload_generator/blob_file_writer_unittest.cc",
+        "payload_generator/block_mapping_unittest.cc",
+        "payload_generator/boot_img_filesystem_unittest.cc",
+        "payload_generator/deflate_utils_unittest.cc",
+        "payload_generator/delta_diff_utils_unittest.cc",
+        "payload_generator/ext2_filesystem_unittest.cc",
+        "payload_generator/extent_ranges_unittest.cc",
+        "payload_generator/extent_utils_unittest.cc",
+        "payload_generator/fake_filesystem.cc",
+        "payload_generator/full_update_generator_unittest.cc",
+        "payload_generator/mapfile_filesystem_unittest.cc",
+        "payload_generator/merge_sequence_generator_unittest.cc",
+        "payload_generator/payload_file_unittest.cc",
+        "payload_generator/payload_generation_config_android_unittest.cc",
+        "payload_generator/payload_generation_config_unittest.cc",
+        "payload_generator/payload_properties_unittest.cc",
+        "payload_generator/payload_signer_unittest.cc",
+        "payload_generator/squashfs_filesystem_unittest.cc",
+        "payload_generator/zip_unittest.cc",
+        "testrunner.cc",
+    ],
+}
+
+cc_test_host {
+    name: "update_engine_host_unittests",
+    defaults: [
+        "ue_defaults",
+        "libpayload_generator_exports",
+    ],
+    strip: {
+        none: true,
+    },
+    cflags: [
+        "-g3",
+    ],
+    srcs: [":update_engine_host_unittest_srcs"],
+    data: [
+        ":ue_unittest_delta_generator",
+        ":ue_unittest_disk_imgs",
+        ":ue_unittest_keys",
+        "otacerts.zip",
+        "unittest_key.pem",
+        "unittest_key2.pem",
+        "unittest_key_RSA4096.pem",
+        "unittest_key_EC.pem",
+        "update_engine.conf",
+    ],
+    static_libs: [
+        "libcurl",
+        "libgmock",
+        "libpayload_generator",
+    ],
+}
+
 // update_engine_unittests (type: executable)
 // ========================================================
 // Main unittest file.
@@ -772,31 +846,18 @@
     test_suites: ["device-tests"],
 
     srcs: [
+        ":update_engine_host_unittest_srcs",
         "aosp/apex_handler_android_unittest.cc",
         "aosp/cleanup_previous_update_action_unittest.cc",
         "aosp/dynamic_partition_control_android_unittest.cc",
         "aosp/update_attempter_android_unittest.cc",
+        "download_action_android_unittest.cc",
         "certificate_checker_unittest.cc",
-        "common/action_pipe_unittest.cc",
-        "common/action_processor_unittest.cc",
-        "common/action_unittest.cc",
-        "common/cow_operation_convert_unittest.cc",
-        "common/cpu_limiter_unittest.cc",
-        "common/fake_prefs.cc",
-        "common/file_fetcher_unittest.cc",
-        "common/hash_calculator_unittest.cc",
+        "libcurl_http_fetcher_unittest.cc",
         "common/http_fetcher_unittest.cc",
-        "common/hwid_override_unittest.cc",
-        "common/metrics_reporter_stub.cc",
-        "common/mock_http_fetcher.cc",
-        "common/prefs_unittest.cc",
         "common/proxy_resolver_unittest.cc",
         "common/subprocess_unittest.cc",
-        "common/terminator_unittest.cc",
-        "common/test_utils.cc",
         "common/utils_unittest.cc",
-        "download_action_android_unittest.cc",
-        "libcurl_http_fetcher_unittest.cc",
         "payload_consumer/bzip_extent_writer_unittest.cc",
         "payload_consumer/cached_file_descriptor_unittest.cc",
         "payload_consumer/cow_writer_file_descriptor_unittest.cc",
@@ -806,10 +867,10 @@
         "payload_consumer/partition_writer_unittest.cc",
         "payload_consumer/extent_reader_unittest.cc",
         "payload_consumer/extent_writer_unittest.cc",
-        "payload_consumer/extent_map_unittest.cc",
         "payload_consumer/snapshot_extent_writer_unittest.cc",
         "payload_consumer/xor_extent_writer_unittest.cc",
         "payload_consumer/vabc_partition_writer_unittest.cc",
+        "payload_consumer/extent_map_unittest.cc",
         "payload_consumer/fake_file_descriptor.cc",
         "payload_consumer/file_descriptor_utils_unittest.cc",
         "payload_consumer/file_writer_unittest.cc",
@@ -820,27 +881,6 @@
         "payload_consumer/postinstall_runner_action_unittest.cc",
         "payload_consumer/verity_writer_android_unittest.cc",
         "payload_consumer/xz_extent_writer_unittest.cc",
-        "payload_generator/ab_generator_unittest.cc",
-        "payload_generator/blob_file_writer_unittest.cc",
-        "payload_generator/block_mapping_unittest.cc",
-        "payload_generator/boot_img_filesystem_unittest.cc",
-        "payload_generator/deflate_utils_unittest.cc",
-        "payload_generator/delta_diff_utils_unittest.cc",
-        "payload_generator/ext2_filesystem_unittest.cc",
-        "payload_generator/extent_ranges_unittest.cc",
-        "payload_generator/extent_utils_unittest.cc",
-        "payload_generator/fake_filesystem.cc",
-        "payload_generator/full_update_generator_unittest.cc",
-        "payload_generator/mapfile_filesystem_unittest.cc",
-        "payload_generator/merge_sequence_generator_unittest.cc",
-        "payload_generator/payload_file_unittest.cc",
-        "payload_generator/payload_generation_config_android_unittest.cc",
-        "payload_generator/payload_generation_config_unittest.cc",
-        "payload_generator/payload_properties_unittest.cc",
-        "payload_generator/payload_signer_unittest.cc",
-        "payload_generator/squashfs_filesystem_unittest.cc",
-        "payload_generator/zip_unittest.cc",
-        "testrunner.cc",
         "update_status_utils_unittest.cc",
     ],
 }
diff --git a/common/file_fetcher.h b/common/file_fetcher.h
index bd39007..0f034e3 100644
--- a/common/file_fetcher.h
+++ b/common/file_fetcher.h
@@ -23,7 +23,6 @@
 
 #include <base/logging.h>
 #include <base/macros.h>
-#include <brillo/message_loops/message_loop.h>
 #include <brillo/streams/stream.h>
 
 #include "update_engine/common/http_fetcher.h"
diff --git a/common/http_fetcher.h b/common/http_fetcher.h
index 7fa5f09..80985af 100644
--- a/common/http_fetcher.h
+++ b/common/http_fetcher.h
@@ -170,7 +170,7 @@
   ErrorCode auxiliary_error_code_{ErrorCode::kSuccess};
 
   // The delegate; may be null.
-  HttpFetcherDelegate* delegate_;
+  HttpFetcherDelegate* delegate_ = nullptr;
 
   // Proxy servers
   std::deque<std::string> proxies_;
diff --git a/payload_consumer/bzip_extent_writer.cc b/payload_consumer/bzip_extent_writer.cc
index 26fdc5f..9491964 100644
--- a/payload_consumer/bzip_extent_writer.cc
+++ b/payload_consumer/bzip_extent_writer.cc
@@ -78,8 +78,7 @@
 
   // Store unconsumed data (if any) in |input_buffer_|.
   if (stream_.avail_in || !input_buffer_.empty()) {
-    brillo::Blob new_input_buffer(input_end - stream_.avail_in, input_end);
-    new_input_buffer.swap(input_buffer_);
+    input_buffer_.assign(input_end - stream_.avail_in, input_end);
   }
 
   return true;
diff --git a/payload_generator/delta_diff_utils.cc b/payload_generator/delta_diff_utils.cc
index 356d369..1a2b407 100644
--- a/payload_generator/delta_diff_utils.cc
+++ b/payload_generator/delta_diff_utils.cc
@@ -475,7 +475,6 @@
 bool FileDeltaProcessor::MergeOperation(vector<AnnotatedOperation>* aops) {
   if (failed_)
     return false;
-  aops->reserve(aops->size() + file_aops_.size());
   std::move(file_aops_.begin(), file_aops_.end(), std::back_inserter(*aops));
   return true;
 }
diff --git a/payload_generator/xz_android.cc b/payload_generator/xz_android.cc
index 41c55f7..9d157c4 100644
--- a/payload_generator/xz_android.cc
+++ b/payload_generator/xz_android.cc
@@ -61,7 +61,6 @@
                             size_t size) {
     auto* self = static_cast<const BlobWriterStream*>(p);
     const uint8_t* buffer = reinterpret_cast<const uint8_t*>(buf);
-    self->data_->reserve(self->data_->size() + size);
     self->data_->insert(self->data_->end(), buffer, buffer + size);
     return size;
   }
diff --git a/payload_generator/zip_unittest.cc b/payload_generator/zip_unittest.cc
index 10e899b..6e1f5a3 100644
--- a/payload_generator/zip_unittest.cc
+++ b/payload_generator/zip_unittest.cc
@@ -21,6 +21,7 @@
 #include <string>
 #include <vector>
 
+#include <brillo/secure_blob.h>
 #include <gtest/gtest.h>
 
 #include "update_engine/common/test_utils.h"
@@ -54,7 +55,6 @@
     return true;
   }
   bool Write(const void* bytes, size_t count) override {
-    data_->reserve(data_->size() + count);
     data_->insert(data_->end(),
                   static_cast<const uint8_t*>(bytes),
                   static_cast<const uint8_t*>(bytes) + count);
@@ -67,6 +67,7 @@
 
 template <typename W>
 bool DecompressWithWriter(const brillo::Blob& in, brillo::Blob* out) {
+  out->reserve(in.size());
   std::unique_ptr<ExtentWriter> writer(
       new W(std::make_unique<MemoryExtentWriter>(out)));
   // Init() parameters are ignored by the testing MemoryExtentWriter.
@@ -163,7 +164,7 @@
 TYPED_TEST(ZipTest, CompressELFTest) {
   string path = test_utils::GetBuildArtifactsPath("delta_generator");
   brillo::Blob in;
-  utils::ReadFile(path, &in);
+  ASSERT_TRUE(utils::ReadFile(path, &in));
   brillo::Blob out;
   EXPECT_TRUE(this->ZipCompress(in, &out));
   EXPECT_LT(out.size(), in.size());
diff --git a/update_status_utils.cc b/update_status_utils.cc
index a702c61..6b96dda 100644
--- a/update_status_utils.cc
+++ b/update_status_utils.cc
@@ -18,7 +18,6 @@
 #include <base/logging.h>
 #include <base/strings/string_number_conversions.h>
 #include <brillo/key_value_store.h>
-#include <update_engine/dbus-constants.h>
 
 using brillo::KeyValueStore;
 using std::string;
@@ -40,6 +39,27 @@
 const char kProgress[] = "PROGRESS";
 const char kWillPowerwashAfterReboot[] = "WILL_POWERWASH_AFTER_REBOOT";
 
+namespace update_engine {
+const char kUpdateStatusIdle[] = "UPDATE_STATUS_IDLE";
+const char kUpdateStatusCheckingForUpdate[] =
+    "UPDATE_STATUS_CHECKING_FOR_UPDATE";
+const char kUpdateStatusUpdateAvailable[] = "UPDATE_STATUS_UPDATE_AVAILABLE";
+const char kUpdateStatusDownloading[] = "UPDATE_STATUS_DOWNLOADING";
+const char kUpdateStatusVerifying[] = "UPDATE_STATUS_VERIFYING";
+const char kUpdateStatusFinalizing[] = "UPDATE_STATUS_FINALIZING";
+const char kUpdateStatusUpdatedNeedReboot[] =
+    "UPDATE_STATUS_UPDATED_NEED_REBOOT";
+const char kUpdateStatusReportingErrorEvent[] =
+    "UPDATE_STATUS_REPORTING_ERROR_EVENT";
+const char kUpdateStatusAttemptingRollback[] =
+    "UPDATE_STATUS_ATTEMPTING_ROLLBACK";
+const char kUpdateStatusDisabled[] = "UPDATE_STATUS_DISABLED";
+const char kUpdateStatusNeedPermissionToUpdate[] =
+    "UPDATE_STATUS_NEED_PERMISSION_TO_UPDATE";
+const char kUpdateStatusCleanupPreviousUpdate[] =
+    "UPDATE_STATUS_CLEANUP_PREVIOUS_UPDATE";
+}  // namespace update_engine
+
 }  // namespace
 
 const char* UpdateStatusToString(const UpdateStatus& status) {
