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
This commit is contained in:
David Anderson 2019-11-19 17:30:27 -08:00
parent 4023938914
commit 4300572de3
3 changed files with 7 additions and 6 deletions

View File

@ -110,7 +110,7 @@ std::unique_ptr<LpMetadata> 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);

View File

@ -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<LpMetadata> 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

View File

@ -76,12 +76,15 @@ std::unique_ptr<LpMetadata> 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<std::string, std::string>& 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<LpMetadata> ReadFromImageFile(const std::string& image_file);
std::unique_ptr<LpMetadata> ReadFromImageBlob(const void* data, size_t bytes);