summaryrefslogtreecommitdiff
path: root/rbutil/sansapatcher/sansapatcher.c
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/sansapatcher/sansapatcher.c')
-rw-r--r--rbutil/sansapatcher/sansapatcher.c35
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) {
542printf("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 */