diff options
author | 2010-05-23 03:53:02 -0400 | |
---|---|---|
committer | 2010-05-23 03:53:02 -0400 | |
commit | ab1f7cb3c283b468235562b0b85db498b0a93766 (patch) | |
tree | 8a75406d3433afaa80eb3a037bc6b218f7137def /src/img3.h | |
parent | ead23ad2b1bcfff151fd7f476fa32f949d509c6a (diff) | |
download | idevicerestore-ab1f7cb3c283b468235562b0b85db498b0a93766.tar.gz idevicerestore-ab1f7cb3c283b468235562b0b85db498b0a93766.tar.bz2 |
More work on img3.c/h done, implemented basic img3 file parsing and img3 element parsing
Diffstat (limited to 'src/img3.h')
-rw-r--r-- | src/img3.h | 37 |
1 files changed, 29 insertions, 8 deletions
@@ -38,6 +38,7 @@ typedef enum { kChipElement = 0x43484950, // CHIP kProdElement = 0x50524F44, // PROD kSdomElement = 0x53444F4D, // SDOM + kVersElement = 0x56455253, // VERS kBordElement = 0x424F5244, // BORD kSepoElement = 0x5345504F, // SEPO kEcidElement = 0x45434944 // ECID @@ -45,23 +46,43 @@ typedef enum { typedef struct { unsigned int signature; - unsigned int fullSize; - unsigned int dataSize; - unsigned int shshOffset; - unsigned int imageType; + unsigned int full_size; + unsigned int data_size; + unsigned int shsh_offset; + unsigned int image_type; } img3_header; typedef struct { unsigned int signature; - unsigned int fullSize; - unsigned int dataSize; + unsigned int full_size; + unsigned int data_size; } img3_element_header; typedef struct { + img3_element_header* header; + img3_element_type type; unsigned char* data; +} img3_element; + +typedef struct { + char* data; + img3_header* header; + img3_element* type_element; + img3_element* data_element; + img3_element* vers_element; + img3_element* sepo_element; + img3_element* bord_element; + img3_element* kbag1_element; + img3_element* kbag2_element; + img3_element* ecid_element; + img3_element* shsh_element; + img3_element* cert_element; } img3_file; -img3_file* img3_parse_file(unsigned char* data, unsigned int size); -void img3_free(img3_file* file); +img3_file* img3_parse_file(unsigned char* data, int size); +img3_element* img3_parse_element(char* data); +void img3_replace_signature(img3_file* image, char* signature); +void img3_free(img3_file* image); +char* img3_get_data(img3_file* image); #endif |