struct file_entry* get_next_file(unsigned char *fw, int len);
void extract_files(unsigned char *fw, int len);
+void replace_add_file(unsigned char *fw, int len, char *fwname, char *lname);
void write_file(char *fname, unsigned char *buf, int len);
{
fprintf(stderr,"Syntax: %s parameters firmware.bin\n", name);
fprintf(stderr,"parameters as follows:\n");
- fprintf(stderr,"\t-d\t\tdisplay all properties of the image\n");
- fprintf(stderr,"\t-u\t\tupdate checksum of the image\n");
- fprintf(stderr,"\t-b\t\tmodify BOARD_DESCRIPTION for more power-switch options\n");
- fprintf(stderr,"\t-e\t\textract files in firmware\n");
- fprintf(stderr,"\t-t property\tset 'property' to true\n");
- fprintf(stderr,"\t-f property\tset 'property' to false\n");
- fprintf(stderr,"\t-w property\tallow read-write access to 'property'\n");
- fprintf(stderr,"\t-r property\tallow read-only access to 'property'\n");
+ fprintf(stderr,"\t-d\t\t\tdisplay all properties of the image\n");
+ fprintf(stderr,"\t-u\t\t\tupdate checksum of the image\n");
+ fprintf(stderr,"\t-b\t\t\tmodify BOARD_DESCRIPTION for more power-switch options\n");
+ fprintf(stderr,"\t-e\t\t\textract files in firmware\n");
+ fprintf(stderr,"\t-t property\t\tset 'property' to true\n");
+ fprintf(stderr,"\t-f property\t\tset 'property' to false\n");
+ fprintf(stderr,"\t-w property\t\tallow read-write access to 'property'\n");
+ fprintf(stderr,"\t-r property\t\tallow read-only access to 'property'\n");
+ fprintf(stderr,"\t-x fw_file=local_file\treplace or add fw_file with content of local_file\n");
exit(1);
}
if (argc < 2)
syntax(argv[0]);
- while ((opt = getopt(argc, argv, "dubet:f:w:r:")) != -1) {
+ while ((opt = getopt(argc, argv, "dubet:f:w:r:x:")) != -1) {
switch(opt) {
case 'd':
showall = 1;
patch_fw = 1;
add_action(opt, optarg, &paction);
break;
+ case 'x':
+ replace_add_file(NULL, 0, NULL, NULL);
+ break;
default:
syntax(argv[0]);
}