Merge changes I9ad08b0d,I7fb1ef4f,I5b24b9d9
* changes:
liblp: Add ReadImageFromBlob.
liblp: Refactor ParseMetadata to read from non-descriptors.
liblp: Always copy geometry to LpMetadata.
diff --git a/fastboot/fastboot_driver.cpp b/fastboot/fastboot_driver.cpp
index 55ca65d..c508abe 100644
--- a/fastboot/fastboot_driver.cpp
+++ b/fastboot/fastboot_driver.cpp
@@ -220,10 +220,10 @@
return HandleResponse(response, info);
}
-RetCode FastBootDriver::Download(sparse_file* s, std::string* response,
+RetCode FastBootDriver::Download(sparse_file* s, bool use_crc, std::string* response,
std::vector<std::string>* info) {
error_ = "";
- int64_t size = sparse_file_len(s, true, false);
+ int64_t size = sparse_file_len(s, true, use_crc);
if (size <= 0 || size > MAX_DOWNLOAD_SIZE) {
error_ = "Sparse file is too large or invalid";
return BAD_ARG;
@@ -247,7 +247,7 @@
return data->self->SparseWriteCallback(data->tpbuf, cbuf, len);
};
- if (sparse_file_callback(s, true, false, cb, &cb_priv) < 0) {
+ if (sparse_file_callback(s, true, use_crc, cb, &cb_priv) < 0) {
error_ = "Error reading sparse file";
return IO_ERROR;
}
diff --git a/fastboot/fastboot_driver.h b/fastboot/fastboot_driver.h
index dd199c0..fae9dc4 100644
--- a/fastboot/fastboot_driver.h
+++ b/fastboot/fastboot_driver.h
@@ -74,7 +74,7 @@
// This will be removed after fastboot is modified to use a vector
RetCode Download(const char* buf, uint32_t size, std::string* response = nullptr,
std::vector<std::string>* info = nullptr);
- RetCode Download(sparse_file* s, std::string* response = nullptr,
+ RetCode Download(sparse_file* s, bool use_crc = false, std::string* response = nullptr,
std::vector<std::string>* info = nullptr);
RetCode Erase(const std::string& part, std::string* response = nullptr,
std::vector<std::string>* info = nullptr);