From 4300572de3f3e44505fb0dd9c770eccca04ddddd Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 19 Nov 2019 17:30:27 -0800 Subject: [PATCH] liblp: Export WriteToImageFile given a file descriptor. This exports an internal variant of WriteToImageFile, since lpadd needs to call it on an open descriptor. While we're here, switch "int" to "borrowed_fd". Bug: 144468779 Test: m lpadd Change-Id: I2dd35b8a872f8a72a704230d0382398b8982cb0b --- fs_mgr/liblp/images.cpp | 2 +- fs_mgr/liblp/images.h | 2 -- fs_mgr/liblp/include/liblp/liblp.h | 9 ++++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/fs_mgr/liblp/images.cpp b/fs_mgr/liblp/images.cpp index 6b842b3cb..e4d92ca90 100644 --- a/fs_mgr/liblp/images.cpp +++ b/fs_mgr/liblp/images.cpp @@ -110,7 +110,7 @@ std::unique_ptr ReadFromImageFile(const std::string& image_file) { return ReadFromImageFile(fd); } -bool WriteToImageFile(int fd, const LpMetadata& input) { +bool WriteToImageFile(borrowed_fd fd, const LpMetadata& input) { std::string geometry = SerializeGeometry(input.geometry); std::string metadata = SerializeMetadata(input); diff --git a/fs_mgr/liblp/images.h b/fs_mgr/liblp/images.h index a284d2ef6..88e5882a0 100644 --- a/fs_mgr/liblp/images.h +++ b/fs_mgr/liblp/images.h @@ -29,8 +29,6 @@ namespace fs_mgr { // Helper function to serialize geometry and metadata to a normal file, for // flashing or debugging. std::unique_ptr ReadFromImageFile(int fd); -bool WriteToImageFile(const char* file, const LpMetadata& metadata); -bool WriteToImageFile(int fd, const LpMetadata& metadata); // We use an object to build the image file since it requires that data // pointers be held alive until the sparse file is destroyed. It's easier diff --git a/fs_mgr/liblp/include/liblp/liblp.h b/fs_mgr/liblp/include/liblp/liblp.h index cd860cd1f..04f8987fd 100644 --- a/fs_mgr/liblp/include/liblp/liblp.h +++ b/fs_mgr/liblp/include/liblp/liblp.h @@ -76,12 +76,15 @@ std::unique_ptr ReadMetadata(const std::string& super_partition, uin // supported). It is a format specifically for storing only metadata. bool IsEmptySuperImage(const std::string& file); -// Read/Write logical partition metadata to an image file, for diagnostics or -// flashing. If no partition images are specified, the file will be in the -// empty format. +// Read/Write logical partition metadata and contents to an image file, for +// flashing. bool WriteToImageFile(const std::string& file, const LpMetadata& metadata, uint32_t block_size, const std::map& images, bool sparsify); + +// Read/Write logical partition metadata to an image file, for producing a +// super_empty.img (for fastboot wipe-super/update-super) or for diagnostics. bool WriteToImageFile(const std::string& file, const LpMetadata& metadata); +bool WriteToImageFile(android::base::borrowed_fd fd, const LpMetadata& metadata); std::unique_ptr ReadFromImageFile(const std::string& image_file); std::unique_ptr ReadFromImageBlob(const void* data, size_t bytes);