summaryrefslogtreecommitdiff
path: root/rbutil/mkamsboot/mkamsboot.c
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2009-05-25 10:35:15 +0000
committerRafaël Carré <rafael.carre@gmail.com>2009-05-25 10:35:15 +0000
commitb0e0ec832b3a940a59e23bbe52dee8f22bb7f813 (patch)
tree587572781c1a454cc667a8b73545a1a38301f263 /rbutil/mkamsboot/mkamsboot.c
parent14cd7d71a3e745f0b9aef6b9a521ffba11c47599 (diff)
downloadrockbox-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/mkamsboot.c')
-rw-r--r--rbutil/mkamsboot/mkamsboot.c12
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