diff options
| author | Kelvin Zhang <zhangkelvin@google.com> | 2020-09-16 14:06:12 -0400 |
|---|---|---|
| committer | Kelvin Zhang <zhangkelvin@google.com> | 2020-09-16 14:21:37 -0400 |
| commit | 4f81130039f6a312eba2027b3594a2be282f6b3a (patch) | |
| tree | 8a910b26d07884180bcef5f5f48781ae642cf99e /install | |
| parent | 2172474d50c7ce7cc54cedb8499a0f4d939bd8a2 (diff) | |
Switch to zip64 in recovery
There's already library support for zip64 in libziparchive. We just need
to start using the new APIs.
Bug: 167951876
Test: Sideload a large ota package in recovery
Change-Id: I652741965f28de079d873c6822317ee9fa855201
Diffstat (limited to 'install')
| -rw-r--r-- | install/install.cpp | 8 | ||||
| -rw-r--r-- | install/verifier.cpp | 2 | ||||
| -rw-r--r-- | install/wipe_device.cpp | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/install/install.cpp b/install/install.cpp index 1c711f6b..75337320 100644 --- a/install/install.cpp +++ b/install/install.cpp @@ -77,7 +77,7 @@ bool ReadMetadataFromPackage(ZipArchiveHandle zip, std::map<std::string, std::st CHECK(metadata != nullptr); static constexpr const char* METADATA_PATH = "META-INF/com/android/metadata"; - ZipEntry entry; + ZipEntry64 entry; if (FindEntry(zip, METADATA_PATH, &entry) != 0) { LOG(ERROR) << "Failed to find " << METADATA_PATH; return false; @@ -241,7 +241,7 @@ bool SetUpAbUpdateCommands(const std::string& package, ZipArchiveHandle zip, int // For A/B updates we extract the payload properties to a buffer and obtain the RAW payload offset // in the zip file. static constexpr const char* AB_OTA_PAYLOAD_PROPERTIES = "payload_properties.txt"; - ZipEntry properties_entry; + ZipEntry64 properties_entry; if (FindEntry(zip, AB_OTA_PAYLOAD_PROPERTIES, &properties_entry) != 0) { LOG(ERROR) << "Failed to find " << AB_OTA_PAYLOAD_PROPERTIES; return false; @@ -256,7 +256,7 @@ bool SetUpAbUpdateCommands(const std::string& package, ZipArchiveHandle zip, int } static constexpr const char* AB_OTA_PAYLOAD = "payload.bin"; - ZipEntry payload_entry; + ZipEntry64 payload_entry; if (FindEntry(zip, AB_OTA_PAYLOAD, &payload_entry) != 0) { LOG(ERROR) << "Failed to find " << AB_OTA_PAYLOAD; return false; @@ -278,7 +278,7 @@ bool SetUpNonAbUpdateCommands(const std::string& package, ZipArchiveHandle zip, // In non-A/B updates we extract the update binary from the package. static constexpr const char* UPDATE_BINARY_NAME = "META-INF/com/google/android/update-binary"; - ZipEntry binary_entry; + ZipEntry64 binary_entry; if (FindEntry(zip, UPDATE_BINARY_NAME, &binary_entry) != 0) { LOG(ERROR) << "Failed to find update binary " << UPDATE_BINARY_NAME; return false; diff --git a/install/verifier.cpp b/install/verifier.cpp index ab750442..d8bc53f6 100644 --- a/install/verifier.cpp +++ b/install/verifier.cpp @@ -321,7 +321,7 @@ static std::vector<Certificate> IterateZipEntriesAndSearchForKeys(const ZipArchi std::vector<Certificate> result; std::string_view name; - ZipEntry entry; + ZipEntry64 entry; while ((iter_status = Next(cookie, &entry, &name)) == 0) { std::vector<uint8_t> pem_content(entry.uncompressed_length); if (int32_t extract_status = diff --git a/install/wipe_device.cpp b/install/wipe_device.cpp index 89d5d31a..0f896c43 100644 --- a/install/wipe_device.cpp +++ b/install/wipe_device.cpp @@ -49,7 +49,7 @@ std::vector<std::string> GetWipePartitionList(Package* wipe_package) { constexpr char RECOVERY_WIPE_ENTRY_NAME[] = "recovery.wipe"; std::string partition_list_content; - ZipEntry entry; + ZipEntry64 entry; if (FindEntry(zip, RECOVERY_WIPE_ENTRY_NAME, &entry) == 0) { uint32_t length = entry.uncompressed_length; partition_list_content = std::string(length, '\0'); |
