From 9812b58fc4c422f9b62df5f8fe304dbc9551d3ef Mon Sep 17 00:00:00 2001 From: Aaron Wisner Date: Wed, 22 Aug 2018 11:01:04 -0500 Subject: [PATCH] Add support to fastboot_driver for sending sparse images with CRC check The default argument will prevent anything from breaking Test: Build on glinux Change-Id: Ib427ab210476db1ec1c69c0a3238d0653e98b79a --- fastboot/fastboot_driver.cpp | 6 +++--- fastboot/fastboot_driver.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fastboot/fastboot_driver.cpp b/fastboot/fastboot_driver.cpp index 55ca65d3f..c508abe98 100644 --- a/fastboot/fastboot_driver.cpp +++ b/fastboot/fastboot_driver.cpp @@ -220,10 +220,10 @@ RetCode FastBootDriver::Download(const char* buf, uint32_t size, std::string* re 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* 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 @@ RetCode FastBootDriver::Download(sparse_file* s, std::string* response, 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 dd199c080..fae9dc48c 100644 --- a/fastboot/fastboot_driver.h +++ b/fastboot/fastboot_driver.h @@ -74,7 +74,7 @@ class FastBootDriver { // 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* 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* info = nullptr); RetCode Erase(const std::string& part, std::string* response = nullptr, std::vector* info = nullptr);