Merge "Convert fastboot/libsnapshot to new BootControl client"
This commit is contained in:
commit
c29f0745d5
15 changed files with 74 additions and 78 deletions
|
@ -164,6 +164,8 @@ cc_binary {
|
|||
shared_libs: [
|
||||
"android.hardware.boot@1.0",
|
||||
"android.hardware.boot@1.1",
|
||||
"android.hardware.boot-V1-ndk",
|
||||
"libboot_control_client",
|
||||
"android.hardware.fastboot@1.1",
|
||||
"android.hardware.health@2.0",
|
||||
"android.hardware.health-V1-ndk",
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include <storage_literals/storage_literals.h>
|
||||
#include <uuid/uuid.h>
|
||||
|
||||
#include "BootControlClient.h"
|
||||
#include "constants.h"
|
||||
#include "fastboot_device.h"
|
||||
#include "flashing.h"
|
||||
|
@ -52,15 +53,12 @@ static constexpr bool kEnableFetch = false;
|
|||
#endif
|
||||
|
||||
using android::fs_mgr::MetadataBuilder;
|
||||
using android::hal::CommandResult;
|
||||
using ::android::hardware::hidl_string;
|
||||
using ::android::hardware::boot::V1_0::BoolResult;
|
||||
using ::android::hardware::boot::V1_0::CommandResult;
|
||||
using ::android::hardware::boot::V1_0::Slot;
|
||||
using ::android::hardware::boot::V1_1::MergeStatus;
|
||||
using ::android::hardware::fastboot::V1_0::Result;
|
||||
using ::android::hardware::fastboot::V1_0::Status;
|
||||
using android::snapshot::SnapshotManager;
|
||||
using IBootControl1_1 = ::android::hardware::boot::V1_1::IBootControl;
|
||||
using MergeStatus = android::hal::BootControlClient::MergeStatus;
|
||||
|
||||
using namespace android::storage_literals;
|
||||
|
||||
|
@ -317,7 +315,7 @@ bool SetActiveHandler(FastbootDevice* device, const std::vector<std::string>& ar
|
|||
"set_active command is not allowed on locked devices");
|
||||
}
|
||||
|
||||
Slot slot;
|
||||
int32_t slot = 0;
|
||||
if (!GetSlotNumber(args[1], &slot)) {
|
||||
// Slot suffix needs to be between 'a' and 'z'.
|
||||
return device->WriteStatus(FastbootResult::FAIL, "Bad slot suffix");
|
||||
|
@ -329,7 +327,7 @@ bool SetActiveHandler(FastbootDevice* device, const std::vector<std::string>& ar
|
|||
return device->WriteStatus(FastbootResult::FAIL,
|
||||
"Cannot set slot: boot control HAL absent");
|
||||
}
|
||||
if (slot >= boot_control_hal->getNumberSlots()) {
|
||||
if (slot >= boot_control_hal->GetNumSlots()) {
|
||||
return device->WriteStatus(FastbootResult::FAIL, "Slot out of range");
|
||||
}
|
||||
|
||||
|
@ -358,10 +356,8 @@ bool SetActiveHandler(FastbootDevice* device, const std::vector<std::string>& ar
|
|||
}
|
||||
}
|
||||
|
||||
CommandResult ret;
|
||||
auto cb = [&ret](CommandResult result) { ret = result; };
|
||||
auto result = boot_control_hal->setActiveBootSlot(slot, cb);
|
||||
if (result.isOk() && ret.success) {
|
||||
CommandResult ret = boot_control_hal->SetActiveBootSlot(slot);
|
||||
if (ret.success) {
|
||||
// Save as slot suffix to match the suffix format as returned from
|
||||
// the boot control HAL.
|
||||
auto current_slot = "_" + args[1];
|
||||
|
@ -682,9 +678,14 @@ bool SnapshotUpdateHandler(FastbootDevice* device, const std::vector<std::string
|
|||
if (args[1] == "cancel") {
|
||||
switch (status) {
|
||||
case MergeStatus::SNAPSHOTTED:
|
||||
case MergeStatus::MERGING:
|
||||
hal->setSnapshotMergeStatus(MergeStatus::CANCELLED);
|
||||
case MergeStatus::MERGING: {
|
||||
const auto ret = hal->SetSnapshotMergeStatus(MergeStatus::CANCELLED);
|
||||
if (!ret.success) {
|
||||
device->WriteFail("Failed to SetSnapshotMergeStatus(MergeStatus::CANCELLED) " +
|
||||
ret.errMsg);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
#include <algorithm>
|
||||
|
||||
#include <BootControlClient.h>
|
||||
#include <android-base/logging.h>
|
||||
#include <android-base/properties.h>
|
||||
#include <android-base/strings.h>
|
||||
|
@ -38,9 +39,8 @@ using std::string_literals::operator""s;
|
|||
using android::fs_mgr::EnsurePathUnmounted;
|
||||
using android::fs_mgr::Fstab;
|
||||
using ::android::hardware::hidl_string;
|
||||
using ::android::hardware::boot::V1_0::IBootControl;
|
||||
using ::android::hardware::boot::V1_0::Slot;
|
||||
using ::android::hardware::fastboot::V1_1::IFastboot;
|
||||
using BootControlClient = FastbootDevice::BootControlClient;
|
||||
|
||||
namespace sph = std::placeholders;
|
||||
|
||||
|
@ -85,7 +85,7 @@ FastbootDevice::FastbootDevice()
|
|||
{FB_CMD_SNAPSHOT_UPDATE, SnapshotUpdateHandler},
|
||||
{FB_CMD_FETCH, FetchHandler},
|
||||
}),
|
||||
boot_control_hal_(IBootControl::getService()),
|
||||
boot_control_hal_(BootControlClient::WaitForService()),
|
||||
health_hal_(get_health_service()),
|
||||
fastboot_hal_(IFastboot::getService()),
|
||||
active_slot_("") {
|
||||
|
@ -95,10 +95,6 @@ FastbootDevice::FastbootDevice()
|
|||
transport_ = std::make_unique<ClientUsbTransport>();
|
||||
}
|
||||
|
||||
if (boot_control_hal_) {
|
||||
boot1_1_ = android::hardware::boot::V1_1::IBootControl::castFrom(boot_control_hal_);
|
||||
}
|
||||
|
||||
// Make sure cache is unmounted, since recovery will have mounted it for
|
||||
// logging.
|
||||
Fstab fstab;
|
||||
|
@ -125,12 +121,17 @@ std::string FastbootDevice::GetCurrentSlot() {
|
|||
if (!boot_control_hal_) {
|
||||
return "";
|
||||
}
|
||||
std::string suffix;
|
||||
auto cb = [&suffix](hidl_string s) { suffix = s; };
|
||||
boot_control_hal_->getSuffix(boot_control_hal_->getCurrentSlot(), cb);
|
||||
std::string suffix = boot_control_hal_->GetSuffix(boot_control_hal_->GetCurrentSlot());
|
||||
return suffix;
|
||||
}
|
||||
|
||||
BootControlClient* FastbootDevice::boot1_1() const {
|
||||
if (boot_control_hal_->GetVersion() >= android::hal::BootControlVersion::BOOTCTL_V1_1) {
|
||||
return boot_control_hal_.get();
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool FastbootDevice::WriteStatus(FastbootResult result, const std::string& message) {
|
||||
constexpr size_t kResponseReasonSize = 4;
|
||||
constexpr size_t kNumResponseTypes = 4; // "FAIL", "OKAY", "INFO", "DATA"
|
||||
|
|
|
@ -22,9 +22,8 @@
|
|||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include <BootControlClient.h>
|
||||
#include <aidl/android/hardware/health/IHealth.h>
|
||||
#include <android/hardware/boot/1.0/IBootControl.h>
|
||||
#include <android/hardware/boot/1.1/IBootControl.h>
|
||||
#include <android/hardware/fastboot/1.1/IFastboot.h>
|
||||
|
||||
#include "commands.h"
|
||||
|
@ -33,6 +32,7 @@
|
|||
|
||||
class FastbootDevice {
|
||||
public:
|
||||
using BootControlClient = android::hal::BootControlClient;
|
||||
FastbootDevice();
|
||||
~FastbootDevice();
|
||||
|
||||
|
@ -50,10 +50,8 @@ class FastbootDevice {
|
|||
|
||||
std::vector<char>& download_data() { return download_data_; }
|
||||
Transport* get_transport() { return transport_.get(); }
|
||||
android::sp<android::hardware::boot::V1_0::IBootControl> boot_control_hal() {
|
||||
return boot_control_hal_;
|
||||
}
|
||||
android::sp<android::hardware::boot::V1_1::IBootControl> boot1_1() { return boot1_1_; }
|
||||
BootControlClient* boot_control_hal() const { return boot_control_hal_.get(); }
|
||||
BootControlClient* boot1_1() const;
|
||||
android::sp<android::hardware::fastboot::V1_1::IFastboot> fastboot_hal() {
|
||||
return fastboot_hal_;
|
||||
}
|
||||
|
@ -65,8 +63,7 @@ class FastbootDevice {
|
|||
const std::unordered_map<std::string, CommandHandler> kCommandMap;
|
||||
|
||||
std::unique_ptr<Transport> transport_;
|
||||
android::sp<android::hardware::boot::V1_0::IBootControl> boot_control_hal_;
|
||||
android::sp<android::hardware::boot::V1_1::IBootControl> boot1_1_;
|
||||
std::unique_ptr<BootControlClient> boot_control_hal_;
|
||||
std::shared_ptr<aidl::android::hardware::health::IHealth> health_hal_;
|
||||
android::sp<android::hardware::fastboot::V1_1::IFastboot> fastboot_hal_;
|
||||
std::vector<char> download_data_;
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
using namespace android::fs_mgr;
|
||||
using namespace std::chrono_literals;
|
||||
using android::base::unique_fd;
|
||||
using android::hardware::boot::V1_0::Slot;
|
||||
|
||||
namespace {
|
||||
|
||||
|
@ -137,7 +136,7 @@ bool LogicalPartitionExists(FastbootDevice* device, const std::string& name, boo
|
|||
return true;
|
||||
}
|
||||
|
||||
bool GetSlotNumber(const std::string& slot, Slot* number) {
|
||||
bool GetSlotNumber(const std::string& slot, int32_t* number) {
|
||||
if (slot.size() != 1) {
|
||||
return false;
|
||||
}
|
||||
|
@ -204,7 +203,7 @@ bool UpdateAllPartitionMetadata(FastbootDevice* device, const std::string& super
|
|||
size_t num_slots = 1;
|
||||
auto boot_control_hal = device->boot_control_hal();
|
||||
if (boot_control_hal) {
|
||||
num_slots = boot_control_hal->getNumberSlots();
|
||||
num_slots = boot_control_hal->GetNumSlots();
|
||||
}
|
||||
|
||||
bool ok = true;
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include <android-base/file.h>
|
||||
#include <android-base/logging.h>
|
||||
#include <android-base/unique_fd.h>
|
||||
#include <android/hardware/boot/1.0/IBootControl.h>
|
||||
#include <fstab/fstab.h>
|
||||
#include <liblp/liblp.h>
|
||||
|
||||
|
@ -124,7 +123,7 @@ bool LogicalPartitionExists(FastbootDevice* device, const std::string& name,
|
|||
bool OpenPartition(FastbootDevice* device, const std::string& name, PartitionHandle* handle,
|
||||
int flags = O_WRONLY);
|
||||
|
||||
bool GetSlotNumber(const std::string& slot, android::hardware::boot::V1_0::Slot* number);
|
||||
bool GetSlotNumber(const std::string& slot, int32_t* number);
|
||||
std::vector<std::string> ListPartitions(FastbootDevice* device);
|
||||
bool GetDeviceLockStatus();
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include <fs_mgr.h>
|
||||
#include <liblp/liblp.h>
|
||||
|
||||
#include "constants.h"
|
||||
#include "BootControlClient.h"
|
||||
#include "fastboot_device.h"
|
||||
#include "flashing.h"
|
||||
#include "utility.h"
|
||||
|
@ -40,13 +40,10 @@ static constexpr bool kEnableFetch = true;
|
|||
static constexpr bool kEnableFetch = false;
|
||||
#endif
|
||||
|
||||
using ::android::hardware::boot::V1_0::BoolResult;
|
||||
using ::android::hardware::boot::V1_0::Slot;
|
||||
using ::android::hardware::boot::V1_1::MergeStatus;
|
||||
using MergeStatus = android::hal::BootControlClient::MergeStatus;
|
||||
using ::android::hardware::fastboot::V1_0::FileSystemType;
|
||||
using ::android::hardware::fastboot::V1_0::Result;
|
||||
using ::android::hardware::fastboot::V1_0::Status;
|
||||
using IBootControl1_1 = ::android::hardware::boot::V1_1::IBootControl;
|
||||
using namespace android::fs_mgr;
|
||||
using namespace std::string_literals;
|
||||
|
||||
|
@ -211,7 +208,7 @@ bool GetSlotCount(FastbootDevice* device, const std::vector<std::string>& /* arg
|
|||
if (!boot_control_hal) {
|
||||
*message = "0";
|
||||
} else {
|
||||
*message = std::to_string(boot_control_hal->getNumberSlots());
|
||||
*message = std::to_string(boot_control_hal->GetNumSlots());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -222,7 +219,7 @@ bool GetSlotSuccessful(FastbootDevice* device, const std::vector<std::string>& a
|
|||
*message = "Missing argument";
|
||||
return false;
|
||||
}
|
||||
Slot slot;
|
||||
int32_t slot = -1;
|
||||
if (!GetSlotNumber(args[0], &slot)) {
|
||||
*message = "Invalid slot";
|
||||
return false;
|
||||
|
@ -232,7 +229,7 @@ bool GetSlotSuccessful(FastbootDevice* device, const std::vector<std::string>& a
|
|||
*message = "Device has no slots";
|
||||
return false;
|
||||
}
|
||||
if (boot_control_hal->isSlotMarkedSuccessful(slot) != BoolResult::TRUE) {
|
||||
if (boot_control_hal->IsSlotMarkedSuccessful(slot).value_or(false)) {
|
||||
*message = "no";
|
||||
} else {
|
||||
*message = "yes";
|
||||
|
@ -246,7 +243,7 @@ bool GetSlotUnbootable(FastbootDevice* device, const std::vector<std::string>& a
|
|||
*message = "Missing argument";
|
||||
return false;
|
||||
}
|
||||
Slot slot;
|
||||
int32_t slot = -1;
|
||||
if (!GetSlotNumber(args[0], &slot)) {
|
||||
*message = "Invalid slot";
|
||||
return false;
|
||||
|
@ -256,7 +253,7 @@ bool GetSlotUnbootable(FastbootDevice* device, const std::vector<std::string>& a
|
|||
*message = "Device has no slots";
|
||||
return false;
|
||||
}
|
||||
if (boot_control_hal->isSlotBootable(slot) != BoolResult::TRUE) {
|
||||
if (!boot_control_hal->IsSlotBootable(slot).value_or(false)) {
|
||||
*message = "yes";
|
||||
} else {
|
||||
*message = "no";
|
||||
|
|
|
@ -74,6 +74,8 @@ cc_defaults {
|
|||
shared_libs: [
|
||||
"android.hardware.boot@1.0",
|
||||
"android.hardware.boot@1.1",
|
||||
"android.hardware.boot-V1-ndk",
|
||||
"libboot_control_client",
|
||||
],
|
||||
}
|
||||
|
||||
|
@ -233,6 +235,7 @@ cc_defaults {
|
|||
static_libs: [
|
||||
"android.hardware.boot@1.0",
|
||||
"android.hardware.boot@1.1",
|
||||
"android.hardware.boot-V1-ndk",
|
||||
"libbrotli",
|
||||
"libc++fs",
|
||||
"libfs_mgr_binder",
|
||||
|
@ -261,7 +264,7 @@ cc_defaults {
|
|||
|
||||
cc_test {
|
||||
name: "vts_libsnapshot_test",
|
||||
defaults: ["libsnapshot_test_defaults"],
|
||||
defaults: ["libsnapshot_test_defaults", "libsnapshot_hal_deps"],
|
||||
}
|
||||
|
||||
sh_test {
|
||||
|
@ -309,8 +312,6 @@ cc_binary {
|
|||
"update_metadata-protos",
|
||||
],
|
||||
shared_libs: [
|
||||
"android.hardware.boot@1.0",
|
||||
"android.hardware.boot@1.1",
|
||||
"libbase",
|
||||
"libext2_uuid",
|
||||
"libext4_utils",
|
||||
|
|
|
@ -23,8 +23,9 @@ namespace android {
|
|||
namespace snapshot {
|
||||
|
||||
#ifdef LIBSNAPSHOT_USE_HAL
|
||||
using android::hardware::boot::V1_0::BoolResult;
|
||||
using android::hardware::boot::V1_0::CommandResult;
|
||||
using android::hal::BootControlClient;
|
||||
using android::hal::BootControlVersion;
|
||||
using android::hal::CommandResult;
|
||||
#endif
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
@ -63,16 +64,16 @@ bool DeviceInfo::IsOverlayfsSetup() const {
|
|||
#ifdef LIBSNAPSHOT_USE_HAL
|
||||
bool DeviceInfo::EnsureBootHal() {
|
||||
if (!boot_control_) {
|
||||
auto hal = android::hardware::boot::V1_0::IBootControl::getService();
|
||||
auto hal = BootControlClient::WaitForService();
|
||||
if (!hal) {
|
||||
LOG(ERROR) << "Could not find IBootControl HAL";
|
||||
return false;
|
||||
}
|
||||
boot_control_ = android::hardware::boot::V1_1::IBootControl::castFrom(hal);
|
||||
if (!boot_control_) {
|
||||
if (hal->GetVersion() < BootControlVersion::BOOTCTL_V1_1) {
|
||||
LOG(ERROR) << "Could not find IBootControl 1.1 HAL";
|
||||
return false;
|
||||
}
|
||||
boot_control_ = std::move(hal);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -83,8 +84,9 @@ bool DeviceInfo::SetBootControlMergeStatus([[maybe_unused]] MergeStatus status)
|
|||
if (!EnsureBootHal()) {
|
||||
return false;
|
||||
}
|
||||
if (!boot_control_->setSnapshotMergeStatus(status)) {
|
||||
LOG(ERROR) << "Unable to set the snapshot merge status";
|
||||
const auto ret = boot_control_->SetSnapshotMergeStatus(status);
|
||||
if (!ret.IsOk()) {
|
||||
LOG(ERROR) << "Unable to set the snapshot merge status " << ret.errMsg;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -108,9 +110,7 @@ bool DeviceInfo::SetSlotAsUnbootable([[maybe_unused]] unsigned int slot) {
|
|||
return false;
|
||||
}
|
||||
|
||||
CommandResult result = {};
|
||||
auto cb = [&](CommandResult r) -> void { result = r; };
|
||||
boot_control_->setSlotAsUnbootable(slot, cb);
|
||||
CommandResult result = boot_control_->MarkSlotUnbootable(slot);
|
||||
if (!result.success) {
|
||||
LOG(ERROR) << "Error setting slot " << slot << " unbootable: " << result.errMsg;
|
||||
return false;
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include <string>
|
||||
|
||||
#ifdef LIBSNAPSHOT_USE_HAL
|
||||
#include <android/hardware/boot/1.1/IBootControl.h>
|
||||
#include <BootControlClient.h>
|
||||
#endif
|
||||
#include <liblp/partition_opener.h>
|
||||
#include <libsnapshot/snapshot.h>
|
||||
|
@ -26,7 +26,7 @@ namespace android {
|
|||
namespace snapshot {
|
||||
|
||||
class DeviceInfo final : public SnapshotManager::IDeviceInfo {
|
||||
using MergeStatus = android::hardware::boot::V1_1::MergeStatus;
|
||||
using MergeStatus = ::aidl::android::hardware::boot::MergeStatus;
|
||||
|
||||
public:
|
||||
std::string GetMetadataDir() const override;
|
||||
|
@ -50,7 +50,7 @@ class DeviceInfo final : public SnapshotManager::IDeviceInfo {
|
|||
android::fs_mgr::PartitionOpener opener_;
|
||||
bool first_stage_init_ = false;
|
||||
#ifdef LIBSNAPSHOT_USE_HAL
|
||||
android::sp<android::hardware::boot::V1_1::IBootControl> boot_control_;
|
||||
std::unique_ptr<::android::hal::BootControlClient> boot_control_;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -46,6 +46,10 @@
|
|||
#define DEFINED_FRIEND_TEST
|
||||
#endif
|
||||
|
||||
namespace aidl::android::hardware::boot {
|
||||
enum class MergeStatus;
|
||||
}
|
||||
|
||||
namespace android {
|
||||
|
||||
namespace fiemap {
|
||||
|
@ -59,13 +63,6 @@ class IPartitionOpener;
|
|||
|
||||
// Forward declare IBootControl types since we cannot include only the headers
|
||||
// with Soong. Note: keep the enum width in sync.
|
||||
namespace hardware {
|
||||
namespace boot {
|
||||
namespace V1_1 {
|
||||
enum class MergeStatus : int32_t;
|
||||
} // namespace V1_1
|
||||
} // namespace boot
|
||||
} // namespace hardware
|
||||
|
||||
namespace snapshot {
|
||||
|
||||
|
@ -95,6 +92,7 @@ class ISnapshotManager {
|
|||
class IDeviceInfo {
|
||||
public:
|
||||
using IImageManager = android::fiemap::IImageManager;
|
||||
using MergeStatus = aidl::android::hardware::boot::MergeStatus;
|
||||
|
||||
virtual ~IDeviceInfo() {}
|
||||
virtual std::string GetMetadataDir() const = 0;
|
||||
|
@ -103,8 +101,7 @@ class ISnapshotManager {
|
|||
virtual std::string GetSuperDevice(uint32_t slot) const = 0;
|
||||
virtual const android::fs_mgr::IPartitionOpener& GetPartitionOpener() const = 0;
|
||||
virtual bool IsOverlayfsSetup() const = 0;
|
||||
virtual bool SetBootControlMergeStatus(
|
||||
android::hardware::boot::V1_1::MergeStatus status) = 0;
|
||||
virtual bool SetBootControlMergeStatus(MergeStatus status) = 0;
|
||||
virtual bool SetSlotAsUnbootable(unsigned int slot) = 0;
|
||||
virtual bool IsRecovery() const = 0;
|
||||
virtual bool IsTestDevice() const { return false; }
|
||||
|
@ -311,7 +308,7 @@ class SnapshotManager final : public ISnapshotManager {
|
|||
using LpMetadata = android::fs_mgr::LpMetadata;
|
||||
using MetadataBuilder = android::fs_mgr::MetadataBuilder;
|
||||
using DeltaArchiveManifest = chromeos_update_engine::DeltaArchiveManifest;
|
||||
using MergeStatus = android::hardware::boot::V1_1::MergeStatus;
|
||||
using MergeStatus = aidl::android::hardware::boot::MergeStatus;
|
||||
using FiemapStatus = android::fiemap::FiemapStatus;
|
||||
|
||||
friend class SnapshotMergeStats;
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include <unordered_set>
|
||||
|
||||
#include <android-base/file.h>
|
||||
#include <android/hardware/boot/1.1/IBootControl.h>
|
||||
#include <gmock/gmock.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <libfiemap/image_manager.h>
|
||||
|
@ -33,10 +32,10 @@
|
|||
namespace android {
|
||||
namespace snapshot {
|
||||
|
||||
using aidl::android::hardware::boot::MergeStatus;
|
||||
using android::fs_mgr::IPropertyFetcher;
|
||||
using android::fs_mgr::MetadataBuilder;
|
||||
using android::fs_mgr::testing::MockPropertyFetcher;
|
||||
using android::hardware::boot::V1_1::MergeStatus;
|
||||
using chromeos_update_engine::DeltaArchiveManifest;
|
||||
using chromeos_update_engine::PartitionUpdate;
|
||||
using testing::_;
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
namespace android {
|
||||
namespace snapshot {
|
||||
|
||||
using aidl::android::hardware::boot::MergeStatus;
|
||||
using android::base::unique_fd;
|
||||
using android::dm::DeviceMapper;
|
||||
using android::dm::DmDeviceState;
|
||||
|
@ -72,7 +73,6 @@ using android::fs_mgr::GetPartitionName;
|
|||
using android::fs_mgr::LpMetadata;
|
||||
using android::fs_mgr::MetadataBuilder;
|
||||
using android::fs_mgr::SlotNumberForSlotSuffix;
|
||||
using android::hardware::boot::V1_1::MergeStatus;
|
||||
using chromeos_update_engine::DeltaArchiveManifest;
|
||||
using chromeos_update_engine::Extent;
|
||||
using chromeos_update_engine::FileDescriptor;
|
||||
|
@ -2274,8 +2274,8 @@ bool SnapshotManager::MapAllPartitions(LockedFile* lock, const std::string& supe
|
|||
.block_device = super_device,
|
||||
.metadata = metadata.get(),
|
||||
.partition = &partition,
|
||||
.partition_opener = &opener,
|
||||
.timeout_ms = timeout_ms,
|
||||
.partition_opener = &opener,
|
||||
};
|
||||
if (!MapPartitionWithSnapshot(lock, std::move(params), SnapshotContext::Mount, nullptr)) {
|
||||
return false;
|
||||
|
@ -2752,8 +2752,8 @@ bool SnapshotManager::MapAllSnapshots(const std::chrono::milliseconds& timeout_m
|
|||
.block_device = super_device,
|
||||
.metadata = metadata.get(),
|
||||
.partition_name = snapshot,
|
||||
.partition_opener = &opener,
|
||||
.timeout_ms = timeout_ms,
|
||||
.partition_opener = &opener,
|
||||
};
|
||||
if (!MapPartitionWithSnapshot(lock.get(), std::move(params), SnapshotContext::Mount,
|
||||
nullptr)) {
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
// by SnapshotManager.
|
||||
|
||||
#include "android/snapshot/snapshot_fuzz.pb.h"
|
||||
#include "libsnapshot/snapshot.h"
|
||||
|
||||
namespace android::snapshot {
|
||||
|
||||
|
@ -94,6 +95,7 @@ class SnapshotFuzzEnv {
|
|||
|
||||
class SnapshotFuzzDeviceInfo : public ISnapshotManager::IDeviceInfo {
|
||||
public:
|
||||
using MergeStatus = ISnapshotManager::IDeviceInfo::MergeStatus;
|
||||
// Client is responsible for maintaining the lifetime of |data|.
|
||||
SnapshotFuzzDeviceInfo(SnapshotFuzzEnv* env, const FuzzDeviceInfoData& data,
|
||||
std::unique_ptr<TestPartitionOpener>&& partition_opener,
|
||||
|
@ -118,7 +120,7 @@ class SnapshotFuzzDeviceInfo : public ISnapshotManager::IDeviceInfo {
|
|||
std::string GetSlotSuffix() const override { return CurrentSlotIsA() ? "_a" : "_b"; }
|
||||
std::string GetOtherSlotSuffix() const override { return CurrentSlotIsA() ? "_b" : "_a"; }
|
||||
bool IsOverlayfsSetup() const override { return data_->is_overlayfs_setup(); }
|
||||
bool SetBootControlMergeStatus(android::hardware::boot::V1_1::MergeStatus) override {
|
||||
bool SetBootControlMergeStatus(MergeStatus) override {
|
||||
return data_->allow_set_boot_control_merge_status();
|
||||
}
|
||||
bool SetSlotAsUnbootable(unsigned int) override {
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <future>
|
||||
#include <iostream>
|
||||
|
||||
#include <aidl/android/hardware/boot/MergeStatus.h>
|
||||
#include <android-base/file.h>
|
||||
#include <android-base/logging.h>
|
||||
#include <android-base/properties.h>
|
||||
|
|
Loading…
Reference in a new issue