From 82582b4562bd2ffa9ebe9d25ecdc6222b053d6ef Mon Sep 17 00:00:00 2001 From: Tianjie Xu Date: Thu, 31 Aug 2017 18:05:19 -0700 Subject: Output split information for imgdiff when handling large apks Add a mandatory option in imgdiff to write the split info (i.e. patch_size, tgt_size, src_ranges) to file when handling large apks. Therefore, the caller of imgdiff can create split transfers based on the info. Bug: 63542719 Test: unit tests pass Change-Id: I853d55d1f999fd576474faa81077f7307f4d856d --- applypatch/include/applypatch/imgdiff_image.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'applypatch/include') diff --git a/applypatch/include/applypatch/imgdiff_image.h b/applypatch/include/applypatch/imgdiff_image.h index 9fb844b24..491043dc1 100644 --- a/applypatch/include/applypatch/imgdiff_image.h +++ b/applypatch/include/applypatch/imgdiff_image.h @@ -132,6 +132,9 @@ class PatchChunk { // Update the source start with the new offset within the source range. void UpdateSourceOffset(const SortedRangeSet& src_range); + // Return the total size (header + data) of the patch. + size_t PatchSize() const; + static bool WritePatchDataToFd(const std::vector& patch_chunks, int patch_fd); private: @@ -241,7 +244,8 @@ class ZipModeImage : public Image { static bool GeneratePatches(const std::vector& split_tgt_images, const std::vector& split_src_images, const std::vector& split_src_ranges, - const std::string& patch_name, const std::string& debug_dir); + const std::string& patch_name, const std::string& split_info_file, + const std::string& debug_dir); // Split the tgt chunks and src chunks based on the size limit. static bool SplitZipModeImageWithLimit(const ZipModeImage& tgt_image, -- cgit v1.2.3