diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2008-04-02 21:17:35 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2008-04-02 21:17:35 +0000 |
commit | 3bb88b6190493a23c83b5daa2fe9a5cdf5f747fa (patch) | |
tree | 8ea7db34ceb33120e2d31c0dc70d70bd226bd539 /rbutil | |
parent | eb015961e0f9ba906083e967ffaddbe2b7c49c75 (diff) | |
download | rockbox-3bb88b6190493a23c83b5daa2fe9a5cdf5f747fa.tar.gz rockbox-3bb88b6190493a23c83b5daa2fe9a5cdf5f747fa.zip |
Fix issues with file-based bootloader installation:
- resolve the path with real case. Fixes errors on case-sensitive OS.
- unset internal error after the (silent) creation of a backup copy. The error isn't checked and if one occured the file renaming afterwards would fail.
- make some wiki links nicer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16934 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil')
-rw-r--r-- | rbutil/rbutilqt/installbootloader.cpp | 81 |
1 files changed, 46 insertions, 35 deletions
diff --git a/rbutil/rbutilqt/installbootloader.cpp b/rbutil/rbutilqt/installbootloader.cpp index 05b7be4e49..3f28323c8c 100644 --- a/rbutil/rbutilqt/installbootloader.cpp +++ b/rbutil/rbutilqt/installbootloader.cpp | |||
@@ -19,6 +19,7 @@ | |||
19 | 19 | ||
20 | #include "installbootloader.h" | 20 | #include "installbootloader.h" |
21 | #include "irivertools/checksums.h" | 21 | #include "irivertools/checksums.h" |
22 | #include "utils.h" | ||
22 | 23 | ||
23 | BootloaderInstaller::BootloaderInstaller(QObject* parent): QObject(parent) | 24 | BootloaderInstaller::BootloaderInstaller(QObject* parent): QObject(parent) |
24 | { | 25 | { |
@@ -329,8 +330,9 @@ void BootloaderInstaller::gigabeatPrepare() | |||
329 | } | 330 | } |
330 | else //UnInstallation | 331 | else //UnInstallation |
331 | { | 332 | { |
332 | QString firmware = m_mountpoint + "/GBSYSTEM/FWIMG/FWIMG01.DAT"; | 333 | QString firmware; |
333 | QString firmwareOrig = firmware.append(".ORIG"); | 334 | firmware = resolvePathCase(m_mountpoint + "/GBSYSTEM/FWIMG/FWIMG01.DAT"); |
335 | QString firmwareOrig = resolvePathCase(firmware.append(".ORIG")); | ||
334 | 336 | ||
335 | QFileInfo firmwareOrigFI(firmwareOrig); | 337 | QFileInfo firmwareOrigFI(firmwareOrig); |
336 | 338 | ||
@@ -355,8 +357,8 @@ void BootloaderInstaller::gigabeatPrepare() | |||
355 | return; | 357 | return; |
356 | } | 358 | } |
357 | 359 | ||
358 | //copy original firmware | 360 | // rename original firmware back |
359 | if(!firmwareOrigFile.copy(firmware)) | 361 | if(!firmwareOrigFile.rename(firmware)) |
360 | { | 362 | { |
361 | m_dp->addItem(tr("Could not copy the Firmware from: %1 to %2") | 363 | m_dp->addItem(tr("Could not copy the Firmware from: %1 to %2") |
362 | .arg(firmwareOrig,firmware),LOGERROR); | 364 | .arg(firmwareOrig,firmware),LOGERROR); |
@@ -377,7 +379,8 @@ void BootloaderInstaller::gigabeatFinish() | |||
377 | 379 | ||
378 | m_dp->addItem(tr("Finishing bootloader install"),LOGINFO); | 380 | m_dp->addItem(tr("Finishing bootloader install"),LOGINFO); |
379 | 381 | ||
380 | QString firmware = m_mountpoint + "/GBSYSTEM/FWIMG/" + m_bootloadername; | 382 | QString firmware; |
383 | firmware = resolvePathCase(m_mountpoint + "/GBSYSTEM/FWIMG/" + m_bootloadername); | ||
381 | 384 | ||
382 | QFileInfo firmwareFI(firmware); | 385 | QFileInfo firmwareFI(firmware); |
383 | 386 | ||
@@ -401,7 +404,7 @@ void BootloaderInstaller::gigabeatFinish() | |||
401 | //backup | 404 | //backup |
402 | QDir::home().mkdir("Gigabeat Original Firmware Backup"); | 405 | QDir::home().mkdir("Gigabeat Original Firmware Backup"); |
403 | firmwareFile.copy(QDir::toNativeSeparators(QDir::homePath()) + QDir::toNativeSeparators("/Gigabeat Original Firmware Backup/") + m_bootloadername); | 406 | firmwareFile.copy(QDir::toNativeSeparators(QDir::homePath()) + QDir::toNativeSeparators("/Gigabeat Original Firmware Backup/") + m_bootloadername); |
404 | 407 | firmwareFile.unsetError(); | |
405 | //rename | 408 | //rename |
406 | if(!firmwareFile.rename(firmwareOrig)) | 409 | if(!firmwareFile.rename(firmwareOrig)) |
407 | { | 410 | { |
@@ -472,7 +475,8 @@ void BootloaderInstaller::iaudioPrepare() | |||
472 | 475 | ||
473 | void BootloaderInstaller::iaudioFinish() | 476 | void BootloaderInstaller::iaudioFinish() |
474 | { | 477 | { |
475 | QString firmware = m_mountpoint + "/FIRMWARE/" + m_bootloadername; | 478 | QString firmware; |
479 | firmware = resolvePathCase(m_mountpoint + "/FIRMWARE/") + "/" + m_bootloadername; | ||
476 | 480 | ||
477 | //copy the firmware | 481 | //copy the firmware |
478 | if(!downloadFile.copy(firmware)) | 482 | if(!downloadFile.copy(firmware)) |
@@ -531,13 +535,15 @@ void BootloaderInstaller::h10Prepare() | |||
531 | 535 | ||
532 | QString firmwarename = m_bootloadername.section('/', -1); | 536 | QString firmwarename = m_bootloadername.section('/', -1); |
533 | 537 | ||
534 | QString firmware = m_mountpoint + "/SYSTEM/" + firmwarename; | 538 | QString firmware; |
535 | QString firmwareOrig = m_mountpoint + "/SYSTEM/OF.mi4"; | 539 | firmware = resolvePathCase(m_mountpoint + "/SYSTEM/" + firmwarename); |
540 | QString firmwareOrig = resolvePathCase(m_mountpoint + "/SYSTEM/OF.mi4"); | ||
536 | 541 | ||
537 | QFileInfo firmwareFI(firmware); | 542 | QFileInfo firmwareFI(firmware); |
538 | if(!firmwareFI.exists()) //Firmware dosent exists on player | 543 | if(!firmwareFI.exists()) //Firmware dosent exists on player |
539 | { | 544 | { |
540 | firmware = m_mountpoint + "/SYSTEM/H10EMP.mi4"; //attempt other firmwarename | 545 | firmware = resolvePathCase(m_mountpoint + "/SYSTEM/H10EMP.mi4"); |
546 | //attempt other firmwarename | ||
541 | firmwareFI.setFile(firmware); | 547 | firmwareFI.setFile(firmware); |
542 | if(!firmwareFI.exists()) //Firmware dosent exists on player | 548 | if(!firmwareFI.exists()) //Firmware dosent exists on player |
543 | { | 549 | { |
@@ -569,8 +575,8 @@ void BootloaderInstaller::h10Prepare() | |||
569 | return; | 575 | return; |
570 | } | 576 | } |
571 | 577 | ||
572 | //copy original firmware | 578 | // rename original firmware back |
573 | if(!firmwareOrigFile.copy(firmware)) | 579 | if(!firmwareOrigFile.rename(firmware)) |
574 | { | 580 | { |
575 | m_dp->addItem(tr("Could not copy the Firmware from: %1 to %2") | 581 | m_dp->addItem(tr("Could not copy the Firmware from: %1 to %2") |
576 | .arg(firmwareOrig,firmware),LOGERROR); | 582 | .arg(firmwareOrig,firmware),LOGERROR); |
@@ -589,14 +595,16 @@ void BootloaderInstaller::h10Finish() | |||
589 | { | 595 | { |
590 | QString firmwarename = m_bootloadername.section('/', -1); | 596 | QString firmwarename = m_bootloadername.section('/', -1); |
591 | 597 | ||
592 | QString firmware = m_mountpoint + "/SYSTEM/" + firmwarename; | 598 | QString firmware; |
593 | QString firmwareOrig = m_mountpoint + "/SYSTEM/OF.mi4"; | 599 | firmware = resolvePathCase(m_mountpoint + "/SYSTEM/" + firmwarename); |
600 | QString firmwareOrig = resolvePathCase(m_mountpoint + "/SYSTEM") + "/OF.mi4"; | ||
594 | 601 | ||
595 | QFileInfo firmwareFI(firmware); | 602 | QFileInfo firmwareFI(firmware); |
596 | 603 | ||
597 | if(!firmwareFI.exists()) //Firmware dosent exists on player | 604 | if(!firmwareFI.exists()) //Firmware dosent exists on player |
598 | { | 605 | { |
599 | firmware = m_mountpoint + "/SYSTEM/H10EMP.mi4"; //attempt other firmwarename | 606 | firmware = resolvePathCase(m_mountpoint + "/SYSTEM") +"/H10EMP.mi4"; |
607 | //attempt other firmwarename | ||
600 | firmwareFI.setFile(firmware); | 608 | firmwareFI.setFile(firmware); |
601 | if(!firmwareFI.exists()) //Firmware dosent exists on player | 609 | if(!firmwareFI.exists()) //Firmware dosent exists on player |
602 | { | 610 | { |
@@ -616,6 +624,7 @@ void BootloaderInstaller::h10Finish() | |||
616 | //backup | 624 | //backup |
617 | QDir::home().mkdir("Iriver H10 Original Firmware Backup"); | 625 | QDir::home().mkdir("Iriver H10 Original Firmware Backup"); |
618 | firmwareFile.copy(QDir::toNativeSeparators(QDir::homePath()) + QDir::toNativeSeparators("/Iriver H10 Original Firmware Backup/") + m_bootloadername); | 626 | firmwareFile.copy(QDir::toNativeSeparators(QDir::homePath()) + QDir::toNativeSeparators("/Iriver H10 Original Firmware Backup/") + m_bootloadername); |
627 | firmwareFile.unsetError(); | ||
619 | 628 | ||
620 | //rename | 629 | //rename |
621 | if(!firmwareFile.rename(firmwareOrig)) //rename Firmware to Original | 630 | if(!firmwareFile.rename(firmwareOrig)) //rename Firmware to Original |
@@ -685,8 +694,9 @@ void BootloaderInstaller::mrobe100Prepare() | |||
685 | 694 | ||
686 | QString firmwarename = m_bootloadername; | 695 | QString firmwarename = m_bootloadername; |
687 | 696 | ||
688 | QString firmware = m_mountpoint + "/SYSTEM/" + firmwarename; | 697 | QString firmware; |
689 | QString firmwareOrig = m_mountpoint + "/SYSTEM/OF.mi4"; | 698 | firmware = resolvePathCase(m_mountpoint + "/SYSTEM/" + firmwarename); |
699 | QString firmwareOrig = resolvePathCase(m_mountpoint + "/SYSTEM/OF.mi4"); | ||
690 | 700 | ||
691 | QFileInfo firmwareFI(firmware); | 701 | QFileInfo firmwareFI(firmware); |
692 | if(!firmwareFI.exists()) //Firmware dosent exists on player | 702 | if(!firmwareFI.exists()) //Firmware dosent exists on player |
@@ -718,8 +728,8 @@ void BootloaderInstaller::mrobe100Prepare() | |||
718 | return; | 728 | return; |
719 | } | 729 | } |
720 | 730 | ||
721 | //copy original firmware | 731 | // move original firmware back |
722 | if(!firmwareOrigFile.copy(firmware)) | 732 | if(!firmwareOrigFile.rename(firmware)) |
723 | { | 733 | { |
724 | m_dp->addItem(tr("Could not copy the Firmware from: %1 to %2") | 734 | m_dp->addItem(tr("Could not copy the Firmware from: %1 to %2") |
725 | .arg(firmwareOrig,firmware),LOGERROR); | 735 | .arg(firmwareOrig,firmware),LOGERROR); |
@@ -738,8 +748,10 @@ void BootloaderInstaller::mrobe100Finish() | |||
738 | { | 748 | { |
739 | QString firmwarename = m_bootloadername; | 749 | QString firmwarename = m_bootloadername; |
740 | 750 | ||
741 | QString firmware = m_mountpoint + "/SYSTEM/" + firmwarename; | 751 | QString firmware; |
742 | QString firmwareOrig = m_mountpoint + "/SYSTEM/OF.mi4"; | 752 | firmware = resolvePathCase(m_mountpoint + "/SYSTEM/" + firmwarename); |
753 | // NOTE: the filename for the OF may not exist yet, so resolve path only! | ||
754 | QString firmwareOrig = resolvePathCase(m_mountpoint + "/SYSTEM") + "/OF.mi4"; | ||
743 | 755 | ||
744 | QFileInfo firmwareFI(firmware); | 756 | QFileInfo firmwareFI(firmware); |
745 | 757 | ||
@@ -760,8 +772,8 @@ void BootloaderInstaller::mrobe100Finish() | |||
760 | //backup | 772 | //backup |
761 | QDir::home().mkdir("Olympus mrobe100 Original Firmware Backup"); | 773 | QDir::home().mkdir("Olympus mrobe100 Original Firmware Backup"); |
762 | firmwareFile.copy(QDir::toNativeSeparators(QDir::homePath()) + QDir::toNativeSeparators("/Olympus mrobe100 Original Firmware Backup/") + m_bootloadername); | 774 | firmwareFile.copy(QDir::toNativeSeparators(QDir::homePath()) + QDir::toNativeSeparators("/Olympus mrobe100 Original Firmware Backup/") + m_bootloadername); |
763 | 775 | firmwareFile.unsetError(); | |
764 | //rename | 776 | //rename |
765 | if(!firmwareFile.rename(firmwareOrig)) //rename Firmware to Original | 777 | if(!firmwareFile.rename(firmwareOrig)) //rename Firmware to Original |
766 | { | 778 | { |
767 | m_dp->addItem(tr("Could not rename: %1 to %2") | 779 | m_dp->addItem(tr("Could not rename: %1 to %2") |
@@ -1118,11 +1130,11 @@ void BootloaderInstaller::sansaPrepare() | |||
1118 | if (sansa.hasoldbootloader) | 1130 | if (sansa.hasoldbootloader) |
1119 | { | 1131 | { |
1120 | m_dp->addItem(tr("********************************************\n" | 1132 | m_dp->addItem(tr("********************************************\n" |
1121 | "OLD ROCKBOX INSTALLATION DETECTED, ABORTING.\n" | 1133 | "OLD ROCKBOX INSTALLATION DETECTED, ABORTING.\n" |
1122 | "You must reinstall the original Sansa firmware before running\n" | 1134 | "You must reinstall the original Sansa firmware before running\n" |
1123 | "sansapatcher for the first time.\n" | 1135 | "sansapatcher for the first time.\n" |
1124 | "See http://www.rockbox.org/twiki/bin/view/Main/SansaE200Install\n" | 1136 | "See http://www.rockbox.org/wiki/SansaE200Install\n" |
1125 | "*********************************************\n"),LOGERROR); | 1137 | "*********************************************\n"),LOGERROR); |
1126 | emit done(true); | 1138 | emit done(true); |
1127 | return; | 1139 | return; |
1128 | } | 1140 | } |
@@ -1184,11 +1196,11 @@ void BootloaderInstaller::sansaFinish() | |||
1184 | if (sansa.hasoldbootloader) | 1196 | if (sansa.hasoldbootloader) |
1185 | { | 1197 | { |
1186 | m_dp->addItem(tr("********************************************\n" | 1198 | m_dp->addItem(tr("********************************************\n" |
1187 | "OLD ROCKBOX INSTALLATION DETECTED, ABORTING.\n" | 1199 | "OLD ROCKBOX INSTALLATION DETECTED, ABORTING.\n" |
1188 | "You must reinstall the original Sansa firmware before running\n" | 1200 | "You must reinstall the original Sansa firmware before running\n" |
1189 | "sansapatcher for the first time.\n" | 1201 | "sansapatcher for the first time.\n" |
1190 | "See http://www.rockbox.org/twiki/bin/view/Main/SansaE200Install\n" | 1202 | "See http://www.rockbox.org/wiki/SansaE200Install\n" |
1191 | "*********************************************\n"),LOGERROR); | 1203 | "*********************************************\n"),LOGERROR); |
1192 | emit done(true); | 1204 | emit done(true); |
1193 | return; | 1205 | return; |
1194 | } | 1206 | } |
@@ -1398,6 +1410,5 @@ void BootloaderInstaller::iriverFinish() | |||
1398 | m_dp->abort(); | 1410 | m_dp->abort(); |
1399 | 1411 | ||
1400 | emit done(false); // success | 1412 | emit done(false); // success |
1401 | |||
1402 | |||
1403 | } | 1413 | } |
1414 | |||