2 * gcc img2data.c -o img2data
3 * make_ext4fs -s -l 5M -a productinfo /home/apuser/productinfo.img
4 * ./img2data /home/apuser/productinfo.img ../inc/phasecheck.h
15 #include <sys/ioctl.h>
17 #include <mtd/mtd-user.h>
19 #define BUFFER_LEN (512)
20 char gbuffer[BUFFER_LEN];
22 int main(int argc, char **argv)
24 const char *filename, *outname;
28 int total, ii, recv, valdata;
32 printf("example : ./img2data /home/apuser/productinfo.img ../inc/myphasecheck.h\n");
38 memset(&stat_buf, 0, sizeof(struct stat));
39 if (access(filename, 0) == 0)
40 stat(filename, &stat_buf);
46 fd = open(filename, O_RDWR);
48 printf("open input file : %s error\n", filename);
49 fp = fopen(outname, "w");
52 printf("open output file : %s error\n", filename);
57 fprintf(fp, "\nstruct ext4_off_data {\n");
58 fprintf(fp, " unsigned long off;\n");
59 fprintf(fp, " unsigned char data;\n");
60 fprintf(fp, "};\n\n");
61 fprintf(fp, "struct ext4_off_data ext4_pattern[] = {\n");
63 total = stat_buf.st_size;
67 memset(gbuffer, 0, BUFFER_LEN);
68 read(fd, gbuffer, BUFFER_LEN);
69 for (ii = 0; ii < BUFFER_LEN; ii ++) {
70 if (gbuffer[ii] != 0) {
71 //printf("{0x%08x, 0x%02x},", (recv + ii), (gbuffer[ii] & 0xff));
72 fprintf(fp, "{0x%08x, 0x%02x},", (recv + ii), (gbuffer[ii] & 0xff));
81 //printf("\nvaldata = %d offset = %ld\n", valdata, offset);
82 fseek(fp, offset - 1,SEEK_SET);
83 fprintf(fp, "\n};\n\n");