diff options
author | David Anderson <dvander@google.com> | 2018-11-09 01:26:17 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-11-09 01:26:17 +0000 |
commit | 14a93639fd124abc8c100fb6f6c7a017236b05b1 (patch) | |
tree | fd50dd8ba8db16c7246f5174fb6b7ea9b24a0c8b | |
parent | ef055adc781de9839ea57752887bb0916d1e6deb (diff) | |
parent | 47058fb731167a8c5aaf983df82675ace2b3482c (diff) | |
download | extras-14a93639fd124abc8c100fb6f6c7a017236b05b1.tar.gz |
Merge "lpmake: Allow writing split super images."
-rw-r--r-- | partition_tools/lpdump.cc | 6 | ||||
-rw-r--r-- | partition_tools/lpmake.cc | 10 |
2 files changed, 10 insertions, 6 deletions
diff --git a/partition_tools/lpdump.cc b/partition_tools/lpdump.cc index 689ffb13..e3689d23 100644 --- a/partition_tools/lpdump.cc +++ b/partition_tools/lpdump.cc @@ -84,10 +84,8 @@ int main(int argc, char* argv[]) { } const char* file = argv[optind++]; - std::unique_ptr<LpMetadata> pt; - if (IsBlockDevice(file)) { - pt = ReadMetadata(file, slot); - } else { + auto pt = ReadMetadata(file, slot); + if (!pt && !IsBlockDevice(file)) { pt = ReadFromImageFile(file); } if (!pt) { diff --git a/partition_tools/lpmake.cc b/partition_tools/lpmake.cc index 7a2ba518..1c11c4d2 100644 --- a/partition_tools/lpmake.cc +++ b/partition_tools/lpmake.cc @@ -352,8 +352,14 @@ int main(int argc, char* argv[]) { std::unique_ptr<LpMetadata> metadata = builder->Export(); if (output_sparse) { - if (!WriteToSparseFile(output_path.c_str(), *metadata.get(), block_size, images)) { - return EX_CANTCREAT; + if (block_devices.size() == 1) { + if (!WriteToSparseFile(output_path.c_str(), *metadata.get(), block_size, images)) { + return EX_CANTCREAT; + } + } else { + if (!WriteSplitSparseFiles(output_path, *metadata.get(), block_size, images)) { + return EX_CANTCREAT; + } } } else if (!WriteToImageFile(output_path.c_str(), *metadata.get())) { return EX_CANTCREAT; |