diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2009-05-25 10:35:15 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2009-05-25 10:35:15 +0000 |
commit | b0e0ec832b3a940a59e23bbe52dee8f22bb7f813 (patch) | |
tree | 587572781c1a454cc667a8b73545a1a38301f263 /rbutil/mkamsboot | |
parent | 14cd7d71a3e745f0b9aef6b9a521ffba11c47599 (diff) | |
download | rockbox-b0e0ec832b3a940a59e23bbe52dee8f22bb7f813.tar.gz rockbox-b0e0ec832b3a940a59e23bbe52dee8f22bb7f813.zip |
mkamsboot: really error out if OF model is different from bootloader model
Error out if firmware md5sum isn't known, and leave the current code #if 0'ed for easier testing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21073 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/mkamsboot')
-rw-r--r-- | rbutil/mkamsboot/mkamsboot.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/rbutil/mkamsboot/mkamsboot.c b/rbutil/mkamsboot/mkamsboot.c index 9c7f3ba8e3..65b88af994 100644 --- a/rbutil/mkamsboot/mkamsboot.c +++ b/rbutil/mkamsboot/mkamsboot.c | |||
@@ -376,6 +376,7 @@ static unsigned char* load_rockbox_file(char* filename, int model, off_t* bufsiz | |||
376 | if (memcmp(rb_model_names[model],header + 4,4)!=0) { | 376 | if (memcmp(rb_model_names[model],header + 4,4)!=0) { |
377 | fprintf(stderr,"[ERR] Model name \"%s\" not found in %s\n", | 377 | fprintf(stderr,"[ERR] Model name \"%s\" not found in %s\n", |
378 | rb_model_names[model],filename); | 378 | rb_model_names[model],filename); |
379 | return NULL; | ||
379 | } | 380 | } |
380 | 381 | ||
381 | *bufsize = filesize(fd) - sizeof(header); | 382 | *bufsize = filesize(fd) - sizeof(header); |
@@ -468,8 +469,6 @@ int main(int argc, char* argv[]) | |||
468 | fprintf(stderr,"[INFO] Original firmware MD5 checksum match - %s %s\n", | 469 | fprintf(stderr,"[INFO] Original firmware MD5 checksum match - %s %s\n", |
469 | model_names[model], sansasums[i].version); | 470 | model_names[model], sansasums[i].version); |
470 | } else { | 471 | } else { |
471 | fprintf(stderr,"[WARN] ****** Original firmware unknown ******\n"); | ||
472 | |||
473 | if (get_uint32le(&buf[0x204])==0x0000f000) { | 472 | if (get_uint32le(&buf[0x204])==0x0000f000) { |
474 | fw_version = 2; | 473 | fw_version = 2; |
475 | model_id = buf[0x219]; | 474 | model_id = buf[0x219]; |
@@ -480,12 +479,21 @@ int main(int argc, char* argv[]) | |||
480 | 479 | ||
481 | model = get_model(model_id); | 480 | model = get_model(model_id); |
482 | 481 | ||
482 | #if 0 | ||
483 | /* if you are a tester this info might help */ | ||
484 | fprintf(stderr,"[WARN] ****** Original firmware unknown ******\n"); | ||
483 | if (model == MODEL_UNKNOWN) { | 485 | if (model == MODEL_UNKNOWN) { |
484 | fprintf(stderr,"[ERR] Unknown firmware - model id 0x%02x\n", | 486 | fprintf(stderr,"[ERR] Unknown firmware - model id 0x%02x\n", |
485 | model_id); | 487 | model_id); |
486 | free(buf); | 488 | free(buf); |
487 | return 1; | 489 | return 1; |
488 | } | 490 | } |
491 | #else | ||
492 | /* else you don't want to brick your player */ | ||
493 | fprintf(stderr, "[ERR] Original firmware untested - aborting\n"); | ||
494 | free(buf); | ||
495 | return 1; | ||
496 | #endif | ||
489 | } | 497 | } |
490 | 498 | ||
491 | 499 | ||