diff options
author | Barry Wardell <rockbox@barrywardell.net> | 2007-08-02 11:39:43 +0000 |
---|---|---|
committer | Barry Wardell <rockbox@barrywardell.net> | 2007-08-02 11:39:43 +0000 |
commit | 6a0ec8bfa86e7fcf02a9179dc8adbf2f0e25e6e7 (patch) | |
tree | 6a166b874002517a623556b5fc396ac6cb967a44 /rbutil/sansapatcher/main.c | |
parent | 744f07f55439bc4b5d99d4fe0082ab640aad476c (diff) | |
download | rockbox-6a0ec8bfa86e7fcf02a9179dc8adbf2f0e25e6e7.tar.gz rockbox-6a0ec8bfa86e7fcf02a9179dc8adbf2f0e25e6e7.zip |
Add --update-original-firmware (or -of) option to sansapatcher. This allows for changing the original firmware version when the rockbox bootloader is also present.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14138 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/sansapatcher/main.c')
-rw-r--r-- | rbutil/sansapatcher/main.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/rbutil/sansapatcher/main.c b/rbutil/sansapatcher/main.c index 4f2a5fe226..a675cd80b6 100644 --- a/rbutil/sansapatcher/main.c +++ b/rbutil/sansapatcher/main.c | |||
@@ -47,7 +47,8 @@ enum { | |||
47 | READ_FIRMWARE, | 47 | READ_FIRMWARE, |
48 | WRITE_FIRMWARE, | 48 | WRITE_FIRMWARE, |
49 | READ_PARTITION, | 49 | READ_PARTITION, |
50 | WRITE_PARTITION | 50 | WRITE_PARTITION, |
51 | UPDATE_OF | ||
51 | }; | 52 | }; |
52 | 53 | ||
53 | void print_usage(void) | 54 | void print_usage(void) |
@@ -62,9 +63,10 @@ void print_usage(void) | |||
62 | fprintf(stderr,"Where [action] is one of the following options:\n"); | 63 | fprintf(stderr,"Where [action] is one of the following options:\n"); |
63 | fprintf(stderr," --install\n"); | 64 | fprintf(stderr," --install\n"); |
64 | fprintf(stderr," -l, --list\n"); | 65 | fprintf(stderr," -l, --list\n"); |
65 | fprintf(stderr," -rf, --read-firmware filename.mi4\n"); | 66 | fprintf(stderr," -rf, --read-firmware filename.mi4\n"); |
66 | fprintf(stderr," -a, --add-bootloader filename.mi4\n"); | 67 | fprintf(stderr," -a, --add-bootloader filename.mi4\n"); |
67 | fprintf(stderr," -d, --delete-bootloader\n"); | 68 | fprintf(stderr," -d, --delete-bootloader\n"); |
69 | fprintf(stderr," -of --update-original-firmware filename.mi4\n"); | ||
68 | fprintf(stderr,"\n"); | 70 | fprintf(stderr,"\n"); |
69 | 71 | ||
70 | #ifdef __WIN32__ | 72 | #ifdef __WIN32__ |
@@ -216,6 +218,13 @@ int main(int argc, char* argv[]) | |||
216 | if (i == argc) { print_usage(); return 1; } | 218 | if (i == argc) { print_usage(); return 1; } |
217 | filename=argv[i]; | 219 | filename=argv[i]; |
218 | i++; | 220 | i++; |
221 | } else if ((strcmp(argv[i],"-of")==0) || | ||
222 | (strcmp(argv[i],"--update-original-firmware")==0)) { | ||
223 | action = UPDATE_OF; | ||
224 | i++; | ||
225 | if (i == argc) { print_usage(); return 1; } | ||
226 | filename=argv[i]; | ||
227 | i++; | ||
219 | } else if ((strcmp(argv[i],"-rf")==0) || | 228 | } else if ((strcmp(argv[i],"-rf")==0) || |
220 | (strcmp(argv[i],"--read-firmware")==0)) { | 229 | (strcmp(argv[i],"--read-firmware")==0)) { |
221 | action = READ_FIRMWARE; | 230 | action = READ_FIRMWARE; |
@@ -326,6 +335,16 @@ int main(int argc, char* argv[]) | |||
326 | } else { | 335 | } else { |
327 | fprintf(stderr,"[ERR] --delete-bootloader failed.\n"); | 336 | fprintf(stderr,"[ERR] --delete-bootloader failed.\n"); |
328 | } | 337 | } |
338 | } else if (action==UPDATE_OF) { | ||
339 | if (sansa_reopen_rw(&sansa) < 0) { | ||
340 | return 5; | ||
341 | } | ||
342 | |||
343 | if (sansa_update_of(&sansa, filename)==0) { | ||
344 | fprintf(stderr,"[INFO] OF updated successfully.\n"); | ||
345 | } else { | ||
346 | fprintf(stderr,"[ERR] --update-original-firmware failed.\n"); | ||
347 | } | ||
329 | } | 348 | } |
330 | } | 349 | } |
331 | 350 | ||