zenfone6: gpt-utils: Replace libsparse.so with libz.so
This commit replaces sparse_crc32() with crc32() from libz.so because
libsparse.so won't be vendor available.
Bug: 38303202
Test: android builds
Change-Id: Ib318da74b5d55f729cbd40d9a62da53e6316fe7b
diff --git a/gpt-utils/gpt-utils.cpp b/gpt-utils/gpt-utils.cpp
index b820bbc..89aa55f 100644
--- a/gpt-utils/gpt-utils.cpp
+++ b/gpt-utils/gpt-utils.cpp
@@ -54,8 +54,8 @@
#include <log/log.h>
#include <cutils/properties.h>
#include "gpt-utils.h"
-#include "sparse_crc32.h"
#include <endian.h>
+#include <zlib.h>
/******************************************************************************
@@ -338,7 +338,7 @@
if (r)
goto EXIT;
- crc = sparse_crc32(0, pentries, pentries_array_size);
+ crc = crc32(0, pentries, pentries_array_size);
if (GET_4_BYTES(gpt_header + PARTITION_CRC_OFFSET) != crc) {
fprintf(stderr, "Primary GPT partition entries array CRC invalid\n");
r = -1;
@@ -361,12 +361,12 @@
goto EXIT;
}
- crc = sparse_crc32(0, pentries, pentries_array_size);
+ crc = crc32(0, pentries, pentries_array_size);
PUT_4_BYTES(gpt_header + PARTITION_CRC_OFFSET, crc);
/* header CRC is calculated with this field cleared */
PUT_4_BYTES(gpt_header + HEADER_CRC_OFFSET, 0);
- crc = sparse_crc32(0, gpt_header, gpt_header_size);
+ crc = crc32(0, gpt_header, gpt_header_size);
PUT_4_BYTES(gpt_header + HEADER_CRC_OFFSET, crc);
/* Write the modified GPT header back to block dev */
@@ -438,7 +438,7 @@
crc = GET_4_BYTES(gpt_header + HEADER_CRC_OFFSET);
/* header CRC is calculated with this field cleared */
PUT_4_BYTES(gpt_header + HEADER_CRC_OFFSET, 0);
- if (sparse_crc32(0, gpt_header, gpt_header_size) != crc)
+ if (crc32(0, gpt_header, gpt_header_size) != crc)
*state = GPT_BAD_CRC;
free(gpt_header);
return 0;
@@ -507,7 +507,7 @@
/* header CRC is calculated with this field cleared */
PUT_4_BYTES(gpt_header + HEADER_CRC_OFFSET, 0);
- crc = sparse_crc32(0, gpt_header, gpt_header_size);
+ crc = crc32(0, gpt_header, gpt_header_size);
PUT_4_BYTES(gpt_header + HEADER_CRC_OFFSET, crc);
if (blk_rw(fd, 1, gpt_header_offset, gpt_header, blk_size)) {
@@ -1383,13 +1383,13 @@
goto error;
}
gpt_header_size = GET_4_BYTES(disk->hdr + HEADER_SIZE_OFFSET);
- disk->hdr_crc = sparse_crc32(0, disk->hdr, gpt_header_size);
+ disk->hdr_crc = crc32(0, disk->hdr, gpt_header_size);
disk->hdr_bak = gpt_get_header(dev, SECONDARY_GPT);
if (!disk->hdr_bak) {
ALOGE("%s: Failed to get backup header", __func__);
goto error;
}
- disk->hdr_bak_crc = sparse_crc32(0, disk->hdr_bak, gpt_header_size);
+ disk->hdr_bak_crc = crc32(0, disk->hdr_bak, gpt_header_size);
//Descriptor for the block device. We will use this for further
//modifications to the partition table
@@ -1469,11 +1469,11 @@
goto error;
}
//Recalculate the CRC of the primary partiton array
- disk->pentry_arr_crc = sparse_crc32(0,
+ disk->pentry_arr_crc = crc32(0,
disk->pentry_arr,
disk->pentry_arr_size);
//Recalculate the CRC of the backup partition array
- disk->pentry_arr_bak_crc = sparse_crc32(0,
+ disk->pentry_arr_bak_crc = crc32(0,
disk->pentry_arr_bak,
disk->pentry_arr_size);
//Update the partition CRC value in the primary GPT header
@@ -1486,8 +1486,8 @@
//Header CRC is calculated with its own CRC field set to 0
PUT_4_BYTES(disk->hdr + HEADER_CRC_OFFSET, 0);
PUT_4_BYTES(disk->hdr_bak + HEADER_CRC_OFFSET, 0);
- disk->hdr_crc = sparse_crc32(0, disk->hdr, gpt_header_size);
- disk->hdr_bak_crc = sparse_crc32(0, disk->hdr_bak, gpt_header_size);
+ disk->hdr_crc = crc32(0, disk->hdr, gpt_header_size);
+ disk->hdr_bak_crc = crc32(0, disk->hdr_bak, gpt_header_size);
PUT_4_BYTES(disk->hdr + HEADER_CRC_OFFSET, disk->hdr_crc);
PUT_4_BYTES(disk->hdr_bak + HEADER_CRC_OFFSET, disk->hdr_bak_crc);
return 0;