summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Anderson <dvander@google.com>2018-11-08 17:43:50 -0800
committerandroid-build-merger <android-build-merger@google.com>2018-11-08 17:43:50 -0800
commit95603826d453b93c2bb4e3e3510e43883a2e3c1a (patch)
treefd50dd8ba8db16c7246f5174fb6b7ea9b24a0c8b
parentddbd38b82584e4023c00e896783e7415bf029e1f (diff)
parent2d629b3c5f7c89ddf81429332b49970e22ca10a8 (diff)
downloadextras-95603826d453b93c2bb4e3e3510e43883a2e3c1a.tar.gz
Merge "lpmake: Allow writing split super images." am: 14a93639fd
am: 2d629b3c5f Change-Id: Icc46451b678c50f67768ecd1619ef69e2ec33f5a
-rw-r--r--partition_tools/lpdump.cc6
-rw-r--r--partition_tools/lpmake.cc10
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;