diff --git a/ArtinchipImage.bt b/ArtinchipImage.bt index 296dcf4c72246569e38d3de6361db1274ea890b9..344b34b7c8bdf4e33dc480fa467bdfd41fea7c66 100644 --- a/ArtinchipImage.bt +++ b/ArtinchipImage.bt @@ -28,8 +28,31 @@ typedef struct { uint32 file_size ; } artinchip_fw_hdr; +typedef struct { + uint8 magic ; + // uint32 achip ; + // char magic[8]; + char name[64] ; + char partition[64] ; + uint32 offset ; + uint32 size ; + uint32 crc32 ; + uint32 ram ; + char attr[64] ; + uint8 padding[296] ; +} artinchip_fwc_meta; + +/**** PARSING CODE ****/ LittleEndian(); artinchip_fw_hdr header ; -// TODO +if (header.magic != "AIC.FW") { + Warning("Invalid Magic!"); +} + +FSeek(header.meta_offset); +local int i; +for(i = 0; i < header.meta_size; i += 512) { + artinchip_fwc_meta meta; +}