bool BootloaderInstallMi4::uninstall(void) { qDebug() << "[BootloaderInstallMi4] Uninstalling bootloader"; // check if it's actually a Rockbox bootloader emit logItem(tr("Checking for Rockbox bootloader"), LOGINFO); if(installed() != BootloaderRockbox) { emit logItem(tr("No Rockbox bootloader found"), LOGERROR); return false; } // check if OF file present emit logItem(tr("Checking for original firmware file"), LOGINFO); QString original = QFileInfo(resolvePathCase(m_blfile)).absolutePath() + "/OF.mi4"; if(resolvePathCase(original).isEmpty()) { emit logItem(tr("Error finding original firmware file"), LOGERROR); return false; } // finally remove RB bootloader QString resolved = resolvePathCase(m_blfile); QFile blfile(resolved); blfile.remove(); QFile oldbl(resolvePathCase(original)); oldbl.rename(m_blfile); emit logItem(tr("Rockbox bootloader successful removed"), LOGINFO); logInstall(LogRemove); emit done(false); return true; }
void BootloaderInstallMi4::installStage2(void) { emit logItem(tr("Installing Rockbox bootloader"), LOGINFO); QCoreApplication::processEvents(); // move old bootloader out of the way QString fwfile(resolvePathCase(m_blfile)); QFile oldbl(fwfile); QString moved = QFileInfo(resolvePathCase(m_blfile)).absolutePath() + "/OF.mi4"; if(!QFileInfo(moved).exists()) { qDebug() << "[BootloaderInstallMi4] renaming" << fwfile << "to" << moved; oldbl.rename(moved); } else { qDebug() << "[BootloaderInstallMi4] OF.mi4 already present, not renaming again."; oldbl.remove(); } // place new bootloader m_tempfile.open(); qDebug() << "[BootloaderInstallMi4] renaming" << m_tempfile.fileName() << "to" << fwfile; m_tempfile.close(); m_tempfile.rename(fwfile); emit logItem(tr("Bootloader successful installed"), LOGOK); logInstall(LogAdd); emit done(false); }
void BootloaderInstallMi4::installStage2(void) { emit logItem(tr("Installing Rockbox bootloader"), LOGINFO); QCoreApplication::processEvents(); // move old bootloader out of the way QString fwfile(Utils::resolvePathCase(m_blfile)); QFile oldbl(fwfile); QString moved = QFileInfo(Utils::resolvePathCase(m_blfile)).absolutePath() + "/OF.mi4"; if(!QFileInfo(moved).exists()) { LOG_INFO() << "renaming" << fwfile << "to" << moved; oldbl.rename(moved); } else { LOG_INFO() << "OF.mi4 already present, not renaming again."; oldbl.remove(); } // place new bootloader m_tempfile.open(); LOG_INFO() << "renaming" << m_tempfile.fileName() << "to" << fwfile; m_tempfile.close(); if(!Utils::resolvePathCase(fwfile).isEmpty()) { emit logItem(tr("A firmware file is already present on player"), LOGERROR); emit done(true); return; } if(m_tempfile.copy(fwfile)) { emit logItem(tr("Bootloader successful installed"), LOGOK); } else { emit logItem(tr("Copying modified firmware file failed"), LOGERROR); emit done(true); return; } emit logItem(tr("Bootloader successful installed"), LOGOK); logInstall(LogAdd); emit done(false); }