Mark 24Q4 as merged in aosp-main-future

Bug: 373937381
Merged-In: I25176c03a4a10ebf981d4bc8993a8ba261b236ac
Change-Id: I6f3508a3e4013daba8ea676f66e8a26f0d6d5ab6
diff --git a/Android.bp b/Android.bp
index 0cbf286..89dea90 100644
--- a/Android.bp
+++ b/Android.bp
@@ -503,6 +503,29 @@
     ],
 }
 
+aidl_interface {
+    name: "libupdate_engine_aidl_interface",
+    srcs: [
+        ":libupdate_engine_aidl",
+    ],
+    backend: {
+        cpp: {
+            enabled: false,
+        },
+        java: {
+            enabled: false,
+        },
+        ndk: {
+            enabled: false,
+        },
+        rust: {
+            enabled: true,
+        },
+    },
+    frozen: false,
+    unstable: true,
+}
+
 cc_defaults {
     name: "libupdate_engine_android_defaults",
     defaults: [
diff --git a/OWNERS b/OWNERS
index 58ecfe1..1900cf4 100644
--- a/OWNERS
+++ b/OWNERS
@@ -2,9 +2,7 @@
 
 # Android et. al. maintainers:
 deymo@google.com
-elsk@google.com
 senj@google.com
-xunchang@google.com
 zhangkelvin@google.com
 
 # Chromium OS maintainers:
diff --git a/aosp/hardware_android.h b/aosp/hardware_android.h
index d20e8df..cb655c9 100644
--- a/aosp/hardware_android.h
+++ b/aosp/hardware_android.h
@@ -20,7 +20,7 @@
 #include <string>
 #include <string_view>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <base/time/time.h>
 
 #include "update_engine/common/error_code.h"
diff --git a/aosp/network_selector_android.h b/aosp/network_selector_android.h
index b79d1b3..2a3cb2e 100644
--- a/aosp/network_selector_android.h
+++ b/aosp/network_selector_android.h
@@ -17,7 +17,7 @@
 #ifndef UPDATE_ENGINE_AOSP_NETWORK_SELECTOR_ANDROID_H_
 #define UPDATE_ENGINE_AOSP_NETWORK_SELECTOR_ANDROID_H_
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "update_engine/common/network_selector_interface.h"
 
diff --git a/aosp/ota_extractor.cc b/aosp/ota_extractor.cc
index 42270f4..29ba44c 100644
--- a/aosp/ota_extractor.cc
+++ b/aosp/ota_extractor.cc
@@ -206,6 +206,10 @@
 
   if (FLAGS_single_thread) {
     for (const auto& partition : manifest.partitions()) {
+      if (!partitions.empty() &&
+          partitions.count(partition.partition_name()) == 0) {
+        continue;
+      }
       if (!ExtractImageFromPartition(manifest,
                                      partition,
                                      data_begin,
@@ -221,6 +225,10 @@
   } else {
     std::vector<std::pair<std::future<bool>, std::string>> futures;
     for (const auto& partition : manifest.partitions()) {
+      if (!partitions.empty() &&
+          partitions.count(partition.partition_name()) == 0) {
+        continue;
+      }
       futures.push_back(std::make_pair(std::async(std::launch::async,
                                                   ExtractImageFromPartition,
                                                   manifest,
diff --git a/certificate_checker.h b/certificate_checker.h
index 5d0b5ba..0dc61b2 100644
--- a/certificate_checker.h
+++ b/certificate_checker.h
@@ -22,7 +22,7 @@
 
 #include <string>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <gtest/gtest_prod.h>  // for FRIEND_TEST
 
 namespace chromeos_update_engine {
diff --git a/common/action.h b/common/action.h
index d32322c..e9b5bd4 100644
--- a/common/action.h
+++ b/common/action.h
@@ -23,7 +23,7 @@
 #include <string>
 
 #include <base/logging.h>
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "update_engine/common/action_pipe.h"
 #include "update_engine/common/action_processor.h"
diff --git a/common/action_pipe.h b/common/action_pipe.h
index 4c56812..f1498b1 100644
--- a/common/action_pipe.h
+++ b/common/action_pipe.h
@@ -24,7 +24,7 @@
 #include <string>
 
 #include <base/logging.h>
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 // The structure of these classes (Action, ActionPipe, ActionProcessor, etc.)
 // is based on the KSAction* classes from the Google Update Engine code at
diff --git a/common/action_processor.h b/common/action_processor.h
index 5a4286f..ee7e51c 100644
--- a/common/action_processor.h
+++ b/common/action_processor.h
@@ -21,7 +21,7 @@
 #include <memory>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "update_engine/common/error_code.h"
 
diff --git a/common/boot_control_interface.h b/common/boot_control_interface.h
index 2de21a1..045236a 100644
--- a/common/boot_control_interface.h
+++ b/common/boot_control_interface.h
@@ -23,7 +23,7 @@
 #include <vector>
 
 #include <base/callback.h>
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "update_engine/common/dynamic_partition_control_interface.h"
 #include "update_engine/update_metadata.pb.h"
diff --git a/common/dlcservice_interface.h b/common/dlcservice_interface.h
index 7b57710..a075092 100644
--- a/common/dlcservice_interface.h
+++ b/common/dlcservice_interface.h
@@ -21,7 +21,7 @@
 #include <string>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 namespace chromeos_update_engine {
 
diff --git a/common/excluder_interface.h b/common/excluder_interface.h
index 1dfd227..81a0c37 100644
--- a/common/excluder_interface.h
+++ b/common/excluder_interface.h
@@ -20,7 +20,7 @@
 #include <memory>
 #include <string>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 namespace chromeos_update_engine {
 
diff --git a/common/fake_prefs.h b/common/fake_prefs.h
index 721cf24..c87c57c 100644
--- a/common/fake_prefs.h
+++ b/common/fake_prefs.h
@@ -23,7 +23,7 @@
 #include <string_view>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "update_engine/common/prefs_interface.h"
 
diff --git a/common/file_fetcher.h b/common/file_fetcher.h
index cc0e880..997d487 100644
--- a/common/file_fetcher.h
+++ b/common/file_fetcher.h
@@ -22,7 +22,7 @@
 #include <utility>
 
 #include <base/logging.h>
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <brillo/streams/stream.h>
 
 #include "update_engine/common/http_fetcher.h"
diff --git a/common/hash_calculator.h b/common/hash_calculator.h
index 36bfcc8..e0a08e3 100644
--- a/common/hash_calculator.h
+++ b/common/hash_calculator.h
@@ -24,7 +24,7 @@
 #include <vector>
 
 #include <base/logging.h>
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <brillo/secure_blob.h>
 
 // This class provides a simple wrapper around OpenSSL providing a hash of data
diff --git a/common/http_common.cc b/common/http_common.cc
index c8bac47..f05c594 100644
--- a/common/http_common.cc
+++ b/common/http_common.cc
@@ -20,7 +20,7 @@
 
 #include <cstdlib>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <base/stl_util.h>
 
 namespace chromeos_update_engine {
diff --git a/common/http_fetcher.h b/common/http_fetcher.h
index f32c01d..58ee99e 100644
--- a/common/http_fetcher.h
+++ b/common/http_fetcher.h
@@ -24,7 +24,7 @@
 
 #include <base/callback.h>
 #include <base/logging.h>
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <brillo/message_loops/message_loop.h>
 #include <brillo/secure_blob.h>
 
@@ -47,7 +47,7 @@
   // |proxy_resolver| is the resolver that will be consulted for proxy
   // settings. It may be null, in which case direct connections will
   // be used. Does not take ownership of the resolver.
-  explicit HttpFetcher()
+  HttpFetcher()
       : post_data_set_(false),
         http_response_code_(0),
         delegate_(nullptr),
diff --git a/common/hwid_override.h b/common/hwid_override.h
index d39b572..438993a 100644
--- a/common/hwid_override.h
+++ b/common/hwid_override.h
@@ -21,7 +21,7 @@
 #include <string>
 
 #include <base/files/file_path.h>
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 namespace chromeos_update_engine {
 
diff --git a/common/network_selector_stub.h b/common/network_selector_stub.h
index b32df91..668a66c 100644
--- a/common/network_selector_stub.h
+++ b/common/network_selector_stub.h
@@ -17,7 +17,7 @@
 #ifndef UPDATE_ENGINE_COMMON_NETWORK_SELECTOR_STUB_H_
 #define UPDATE_ENGINE_COMMON_NETWORK_SELECTOR_STUB_H_
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "update_engine/common/network_selector_interface.h"
 
diff --git a/common/prefs_unittest.cc b/common/prefs_unittest.cc
index cef6d44..77c746d 100644
--- a/common/prefs_unittest.cc
+++ b/common/prefs_unittest.cc
@@ -24,7 +24,7 @@
 
 #include <base/files/file_util.h>
 #include <base/files/scoped_temp_dir.h>
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <base/strings/string_util.h>
 #include <base/strings/stringprintf.h>
 #include <gmock/gmock.h>
diff --git a/common/subprocess.h b/common/subprocess.h
index e59776a..d4edcc9 100644
--- a/common/subprocess.h
+++ b/common/subprocess.h
@@ -27,7 +27,7 @@
 #include <base/callback.h>
 #include <base/files/file_descriptor_watcher_posix.h>
 #include <base/logging.h>
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <brillo/asynchronous_signal_handler_interface.h>
 #include <brillo/message_loops/message_loop.h>
 #ifdef __CHROMEOS__
diff --git a/fake_file_writer.h b/fake_file_writer.h
index 75507ea..68765d8 100644
--- a/fake_file_writer.h
+++ b/fake_file_writer.h
@@ -19,7 +19,7 @@
 
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <brillo/secure_blob.h>
 
 #include "update_engine/payload_consumer/file_writer.h"
diff --git a/libcurl_http_fetcher.h b/libcurl_http_fetcher.h
index 0e34f9d..b21cdca 100644
--- a/libcurl_http_fetcher.h
+++ b/libcurl_http_fetcher.h
@@ -26,7 +26,7 @@
 
 #include <base/files/file_descriptor_watcher_posix.h>
 #include <base/logging.h>
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <brillo/message_loops/message_loop.h>
 
 #include "update_engine/certificate_checker.h"
diff --git a/payload_consumer/certificate_parser_android.h b/payload_consumer/certificate_parser_android.h
index ccb9293..e2a3921 100644
--- a/payload_consumer/certificate_parser_android.h
+++ b/payload_consumer/certificate_parser_android.h
@@ -21,7 +21,7 @@
 #include <string>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "payload_consumer/certificate_parser_interface.h"
 
diff --git a/payload_consumer/certificate_parser_stub.h b/payload_consumer/certificate_parser_stub.h
index a51c2c6..4f78efe 100644
--- a/payload_consumer/certificate_parser_stub.h
+++ b/payload_consumer/certificate_parser_stub.h
@@ -21,7 +21,7 @@
 #include <string>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "update_engine/payload_consumer/certificate_parser_interface.h"
 
diff --git a/payload_consumer/filesystem_verifier_action.cc b/payload_consumer/filesystem_verifier_action.cc
index 2e2f6b9..4990358 100644
--- a/payload_consumer/filesystem_verifier_action.cc
+++ b/payload_consumer/filesystem_verifier_action.cc
@@ -112,7 +112,7 @@
   std::partial_sum(partition_weight_.begin(),
                    partition_weight_.end(),
                    partition_weight_.begin(),
-                   std::plus<size_t>());
+                   std::plus<uint64_t>());
 
   install_plan_.Dump();
   // If we are not writing verity, just map all partitions once at the
diff --git a/payload_consumer/filesystem_verifier_action.h b/payload_consumer/filesystem_verifier_action.h
index d8cb902..2adf62e 100644
--- a/payload_consumer/filesystem_verifier_action.h
+++ b/payload_consumer/filesystem_verifier_action.h
@@ -176,7 +176,7 @@
   // Cumulative sum of partition sizes. Used for progress report.
   // This vector will always start with 0, and end with total size of all
   // partitions.
-  std::vector<size_t> partition_weight_;
+  std::vector<uint64_t> partition_weight_;
 
   DISALLOW_COPY_AND_ASSIGN(FilesystemVerifierAction);
 };
diff --git a/payload_consumer/install_plan.h b/payload_consumer/install_plan.h
index 097c6ce..04f6667 100644
--- a/payload_consumer/install_plan.h
+++ b/payload_consumer/install_plan.h
@@ -20,7 +20,7 @@
 #include <string>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <brillo/secure_blob.h>
 
 #include "update_engine/common/action.h"
diff --git a/payload_consumer/payload_metadata.h b/payload_consumer/payload_metadata.h
index a38405d..4d2d5b0 100644
--- a/payload_consumer/payload_metadata.h
+++ b/payload_consumer/payload_metadata.h
@@ -22,7 +22,7 @@
 #include <string>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <brillo/secure_blob.h>
 
 #include "update_engine/common/error_code.h"
diff --git a/payload_consumer/verity_writer_interface.h b/payload_consumer/verity_writer_interface.h
index 3ebe768..fee31ee 100644
--- a/payload_consumer/verity_writer_interface.h
+++ b/payload_consumer/verity_writer_interface.h
@@ -20,7 +20,7 @@
 #include <cstdint>
 #include <memory>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "common/utils.h"
 #include "payload_consumer/file_descriptor.h"
diff --git a/payload_generator/ab_generator.cc b/payload_generator/ab_generator.cc
index 570ce45..c5cd6f3 100644
--- a/payload_generator/ab_generator.cc
+++ b/payload_generator/ab_generator.cc
@@ -19,7 +19,7 @@
 #include <algorithm>
 #include <utility>
 
-#include <base/strings/stringprintf.h>
+#include <android-base/stringprintf.h>
 
 #include "update_engine/common/hash_calculator.h"
 #include "update_engine/common/utils.h"
@@ -147,7 +147,7 @@
 
     AnnotatedOperation new_aop;
     new_aop.op = new_op;
-    new_aop.name = base::StringPrintf("%s:%d", original_aop.name.c_str(), i);
+    new_aop.name = android::base::StringPrintf("%s:%d", original_aop.name.c_str(), i);
     result_aops->push_back(new_aop);
   }
   if (curr_src_ext_index != original_op.src_extents().size() - 1) {
@@ -183,7 +183,7 @@
 
     AnnotatedOperation new_aop;
     new_aop.op = new_op;
-    new_aop.name = base::StringPrintf("%s:%d", original_aop.name.c_str(), i);
+    new_aop.name = android::base::StringPrintf("%s:%d", original_aop.name.c_str(), i);
     TEST_AND_RETURN_FALSE(
         AddDataAndSetType(&new_aop, version, target_part_path, blob_file));
 
@@ -230,7 +230,7 @@
       // merge), are contiguous, are fragmented to have one destination extent,
       // and their combined block count would be less than chunk size, merge
       // them.
-      last_aop.name = base::StringPrintf(
+      last_aop.name = android::base::StringPrintf(
           "%s,%s", last_aop.name.c_str(), curr_aop.name.c_str());
 
       if (is_delta_op) {
diff --git a/payload_generator/ab_generator.h b/payload_generator/ab_generator.h
index 2accf1e..63a40e9 100644
--- a/payload_generator/ab_generator.h
+++ b/payload_generator/ab_generator.h
@@ -20,7 +20,7 @@
 #include <string>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <brillo/secure_blob.h>
 
 #include "update_engine/payload_consumer/payload_constants.h"
diff --git a/payload_generator/blob_file_writer.h b/payload_generator/blob_file_writer.h
index bdd4c08..cd33df6 100644
--- a/payload_generator/blob_file_writer.h
+++ b/payload_generator/blob_file_writer.h
@@ -17,7 +17,7 @@
 #ifndef UPDATE_ENGINE_PAYLOAD_GENERATOR_BLOB_FILE_WRITER_H_
 #define UPDATE_ENGINE_PAYLOAD_GENERATOR_BLOB_FILE_WRITER_H_
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include <base/synchronization/lock.h>
 #include <brillo/secure_blob.h>
diff --git a/payload_generator/extent_ranges.h b/payload_generator/extent_ranges.h
index bd468a1..61a4167 100644
--- a/payload_generator/extent_ranges.h
+++ b/payload_generator/extent_ranges.h
@@ -20,7 +20,7 @@
 #include <set>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/extent_utils.h"
diff --git a/payload_generator/extent_utils.cc b/payload_generator/extent_utils.cc
index 851db8a..d318fd2 100644
--- a/payload_generator/extent_utils.cc
+++ b/payload_generator/extent_utils.cc
@@ -18,11 +18,12 @@
 
 #include <inttypes.h>
 
+#include <set>
 #include <string>
 #include <vector>
 
 #include <base/logging.h>
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <base/strings/stringprintf.h>
 
 #include "update_engine/payload_consumer/payload_constants.h"
diff --git a/payload_generator/full_update_generator.h b/payload_generator/full_update_generator.h
index e17dd37..b6d2c96 100644
--- a/payload_generator/full_update_generator.h
+++ b/payload_generator/full_update_generator.h
@@ -20,7 +20,7 @@
 #include <string>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "update_engine/payload_generator/blob_file_writer.h"
 #include "update_engine/payload_generator/operations_generator.h"
diff --git a/payload_generator/operations_generator.h b/payload_generator/operations_generator.h
index 4d7322b..c25173f 100644
--- a/payload_generator/operations_generator.h
+++ b/payload_generator/operations_generator.h
@@ -19,7 +19,7 @@
 
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "update_engine/payload_generator/annotated_operation.h"
 #include "update_engine/payload_generator/blob_file_writer.h"
diff --git a/payload_generator/payload_file.cc b/payload_generator/payload_file.cc
index 8f5b826..a1734c7 100644
--- a/payload_generator/payload_file.cc
+++ b/payload_generator/payload_file.cc
@@ -22,8 +22,6 @@
 #include <map>
 #include <utility>
 
-#include <base/strings/stringprintf.h>
-
 #include "update_engine/common/hash_calculator.h"
 #include "update_engine/common/utils.h"
 #include "update_engine/payload_consumer/file_writer.h"
diff --git a/payload_generator/payload_generation_config.cc b/payload_generator/payload_generation_config.cc
index 839960e..20c5e04 100644
--- a/payload_generator/payload_generation_config.cc
+++ b/payload_generator/payload_generation_config.cc
@@ -22,7 +22,6 @@
 
 #include <android-base/parseint.h>
 #include <base/logging.h>
-#include <base/strings/string_number_conversions.h>
 #include <brillo/strings/string_utils.h>
 #include <libsnapshot/cow_format.h>
 
@@ -176,7 +175,7 @@
     }
 
     uint64_t max_size{};
-    if (!base::StringToUint64(buf, &max_size)) {
+    if (!android::base::ParseUint<uint64_t>(buf, &max_size)) {
       LOG(ERROR) << "Group size for " << group_name << " = " << buf
                  << " is not an integer.";
       return false;
diff --git a/payload_generator/payload_signer.cc b/payload_generator/payload_signer.cc
index 11e136f..b661a92 100644
--- a/payload_generator/payload_signer.cc
+++ b/payload_generator/payload_signer.cc
@@ -23,8 +23,6 @@
 
 #include <base/logging.h>
 #include <base/strings/string_number_conversions.h>
-#include <base/strings/string_split.h>
-#include <base/strings/string_util.h>
 #include <brillo/data_encoding.h>
 #include <openssl/err.h>
 #include <openssl/pem.h>
diff --git a/payload_generator/payload_signer.h b/payload_generator/payload_signer.h
index 9676b71..297a54e 100644
--- a/payload_generator/payload_signer.h
+++ b/payload_generator/payload_signer.h
@@ -20,7 +20,7 @@
 #include <string>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 #include <brillo/key_value_store.h>
 #include <brillo/secure_blob.h>
 
diff --git a/payload_generator/xz_android.cc b/payload_generator/xz_android.cc
index 97e2c32..1c93a6b 100644
--- a/payload_generator/xz_android.cc
+++ b/payload_generator/xz_android.cc
@@ -18,10 +18,10 @@
 
 #include <algorithm>
 
+#include <android-base/logging.h>
 #include <7zCrc.h>
 #include <Xz.h>
 #include <XzEnc.h>
-#include <base/logging.h>
 
 namespace {
 
diff --git a/payload_generator/xz_chromeos.cc b/payload_generator/xz_chromeos.cc
deleted file mode 100644
index 2ff9458..0000000
--- a/payload_generator/xz_chromeos.cc
+++ /dev/null
@@ -1,54 +0,0 @@
-//
-// Copyright (C) 2016 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-#include "update_engine/payload_generator/xz.h"
-
-#include <base/logging.h>
-#include <lzma.h>
-
-namespace chromeos_update_engine {
-
-void XzCompressInit() {}
-
-bool XzCompress(const brillo::Blob& in, brillo::Blob* out) {
-  out->clear();
-  if (in.empty())
-    return true;
-
-  // Resize the output buffer to get enough memory for writing the compressed
-  // data.
-  out->resize(lzma_stream_buffer_bound(in.size()));
-
-  const uint32_t kLzmaPreset = 6;
-  size_t out_pos = 0;
-  int rc = lzma_easy_buffer_encode(kLzmaPreset,
-                                   LZMA_CHECK_NONE,  // We do not need CRC.
-                                   nullptr,
-                                   in.data(),
-                                   in.size(),
-                                   out->data(),
-                                   &out_pos,
-                                   out->size());
-  if (rc != LZMA_OK) {
-    LOG(ERROR) << "Failed to compress data to LZMA stream with return code: "
-               << rc;
-    return false;
-  }
-  out->resize(out_pos);
-  return true;
-}
-
-}  // namespace chromeos_update_engine