diff options
Diffstat (limited to 'rbutil/sansapatcher/sansapatcher.c')
-rw-r--r-- | rbutil/sansapatcher/sansapatcher.c | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/rbutil/sansapatcher/sansapatcher.c b/rbutil/sansapatcher/sansapatcher.c index a19c60eaa0..3c6848e6d4 100644 --- a/rbutil/sansapatcher/sansapatcher.c +++ b/rbutil/sansapatcher/sansapatcher.c | |||
@@ -539,7 +539,6 @@ int load_original_firmware(struct sansa_t* sansa, unsigned char* buf, struct mi4 | |||
539 | } | 539 | } |
540 | 540 | ||
541 | if (key_found) { | 541 | if (key_found) { |
542 | printf("Key found - %d\n",i); | ||
543 | memcpy(buf+(mi4header->plaintext+0x200),tmpbuf,mi4header->mi4size-(mi4header->plaintext+0x200)); | 542 | memcpy(buf+(mi4header->plaintext+0x200),tmpbuf,mi4header->mi4size-(mi4header->plaintext+0x200)); |
544 | free(tmpbuf); | 543 | free(tmpbuf); |
545 | } else { | 544 | } else { |
@@ -593,14 +592,18 @@ int add_bootloader(struct sansa_t* sansa, char* filename, int type) | |||
593 | int n; | 592 | int n; |
594 | int length; | 593 | int length; |
595 | 594 | ||
596 | /* Step 1 - read bootloader into RAM. */ | 595 | if (type==FILETYPE_MI4) { |
597 | infile=open(filename,O_RDONLY|O_BINARY); | 596 | /* Step 1 - read bootloader into RAM. */ |
598 | if (infile < 0) { | 597 | infile=open(filename,O_RDONLY|O_BINARY); |
599 | fprintf(stderr,"[ERR] Couldn't open input file %s\n",filename); | 598 | if (infile < 0) { |
600 | return -1; | 599 | fprintf(stderr,"[ERR] Couldn't open input file %s\n",filename); |
601 | } | 600 | return -1; |
601 | } | ||
602 | 602 | ||
603 | bl_length = filesize(infile); | 603 | bl_length = filesize(infile); |
604 | } else { | ||
605 | bl_length = LEN_bootimg; | ||
606 | } | ||
604 | 607 | ||
605 | /* Create PPMI header */ | 608 | /* Create PPMI header */ |
606 | memset(sectorbuf,0,0x200); | 609 | memset(sectorbuf,0,0x200); |
@@ -608,12 +611,16 @@ int add_bootloader(struct sansa_t* sansa, char* filename, int type) | |||
608 | int2le(bl_length, sectorbuf+4); | 611 | int2le(bl_length, sectorbuf+4); |
609 | int2le(0x00020000, sectorbuf+8); | 612 | int2le(0x00020000, sectorbuf+8); |
610 | 613 | ||
611 | /* Read bootloader into sectorbuf+0x200 */ | 614 | if (type==FILETYPE_MI4) { |
612 | n = read(infile,sectorbuf+0x200,bl_length); | 615 | /* Read bootloader into sectorbuf+0x200 */ |
613 | if (n < bl_length) { | 616 | n = read(infile,sectorbuf+0x200,bl_length); |
614 | fprintf(stderr,"[ERR] Short read - requested %d bytes, received %d\n" | 617 | if (n < bl_length) { |
615 | ,bl_length,n); | 618 | fprintf(stderr,"[ERR] Short read - requested %d bytes, received %d\n" |
616 | return -1; | 619 | ,bl_length,n); |
620 | return -1; | ||
621 | } | ||
622 | } else { | ||
623 | memcpy(sectorbuf+0x200,bootimg,LEN_bootimg); | ||
617 | } | 624 | } |
618 | 625 | ||
619 | /* Load original firmware from Sansa to the space after the bootloader */ | 626 | /* Load original firmware from Sansa to the space after the bootloader */ |