diff --git a/ffsengine.cpp b/ffsengine.cpp
index 675f4ee..529f53e 100644
--- a/ffsengine.cpp
+++ b/ffsengine.cpp
@@ -69,7 +69,7 @@ bool FfsEngine::hasIntersection(const UINT32 begin1, const UINT32 end1, const UI
}
// Firmware image parsing
-UINT8 FfsEngine::parseInputFile(const QByteArray & buffer)
+UINT8 FfsEngine::parseImageFile(const QByteArray & buffer)
{
oldPeiCoreEntryPoint = 0;
newPeiCoreEntryPoint = 0;
@@ -81,7 +81,7 @@ UINT8 FfsEngine::parseInputFile(const QByteArray & buffer)
// Check buffer size to be more then or equal to sizeof(EFI_CAPSULE_HEADER)
if ((UINT32) buffer.size() <= sizeof(EFI_CAPSULE_HEADER))
{
- msg(tr("parseInputFile: Input file is smaller then minimum size of %1 bytes").arg(sizeof(EFI_CAPSULE_HEADER)));
+ msg(tr("parseImageFile: Image file is smaller then minimum size of %1 bytes").arg(sizeof(EFI_CAPSULE_HEADER)));
return ERR_INVALID_PARAMETER;
}
@@ -2501,7 +2501,7 @@ UINT8 FfsEngine::reconstruct(const QModelIndex &index, QByteArray& reconstructed
return result;
}
else {
- //Other images types can be reconstructed like region
+ //Other images types can be reconstructed like regions
result = reconstructRegion(index, reconstructed);
if (result)
return result;
@@ -2591,6 +2591,11 @@ UINT8 FfsEngine::growVolume(QByteArray & header, const UINT32 size, UINT32 & new
return ERR_SUCCESS;
}
+UINT8 FfsEngine::reconstructImageFile(QByteArray & reconstructed)
+{
+ return reconstruct(model->index(0,0), reconstructed);
+}
+
// Search routines
UINT8 FfsEngine::findHexPattern(const QByteArray & pattern, const UINT8 mode)
{
diff --git a/ffsengine.h b/ffsengine.h
index 65923e1..5a8cd14 100644
--- a/ffsengine.h
+++ b/ffsengine.h
@@ -44,19 +44,15 @@ public:
void clearMessages();
// Firmware image parsing
- UINT8 parseInputFile(const QByteArray & buffer);
+ UINT8 parseImageFile(const QByteArray & buffer);
UINT8 parseIntelImage(const QByteArray & intelImage, QModelIndex & index, const QModelIndex & parent = QModelIndex());
UINT8 parseGbeRegion(const QByteArray & gbe, QModelIndex & index, const QModelIndex & parent);
UINT8 parseMeRegion(const QByteArray & me, QModelIndex & index, const QModelIndex & parent);
UINT8 parseBiosRegion(const QByteArray & bios, QModelIndex & index, const QModelIndex & parent);
UINT8 parsePdrRegion(const QByteArray & pdr, QModelIndex & index, const QModelIndex & parent);
UINT8 parseBios(const QByteArray & bios, const QModelIndex & parent = QModelIndex());
- UINT8 findNextVolume(const QByteArray & bios, const UINT32 volumeOffset, UINT32 & nextVolumeOffset);
- UINT8 getVolumeSize(const QByteArray & bios, const UINT32 volumeOffset, UINT32 & volumeSize);
UINT8 parseVolume(const QByteArray & volume, QModelIndex & index, const QModelIndex & parent = QModelIndex(), const UINT8 mode = CREATE_MODE_APPEND);
- UINT8 getFileSize(const QByteArray & volume, const UINT32 fileOffset, UINT32 & fileSize);
UINT8 parseFile(const QByteArray & file, QModelIndex & index, const UINT8 erasePolarity = ERASE_POLARITY_UNKNOWN, const QModelIndex & parent = QModelIndex(), const UINT8 mode = CREATE_MODE_APPEND);
- UINT8 getSectionSize(const QByteArray & file, const UINT32 sectionOffset, UINT32 & sectionSize);
UINT8 parseSections(const QByteArray & body, const QModelIndex & parent = QModelIndex());
UINT8 parseSection(const QByteArray & section, QModelIndex & index, const QModelIndex & parent = QModelIndex(), const UINT8 mode = CREATE_MODE_APPEND);
@@ -65,8 +61,7 @@ public:
UINT8 compress(const QByteArray & data, const UINT8 algorithm, QByteArray & compressedData);
// Construction routines
- UINT8 constructPadFile(const UINT32 size, const UINT8 revision, const UINT8 erasePolarity, QByteArray & pad);
- UINT8 growVolume(QByteArray & header, const UINT32 size, UINT32 & newSize);
+ UINT8 reconstructImageFile(QByteArray &reconstructed);
UINT8 reconstruct(const QModelIndex &index, QByteArray & reconstructed);
UINT8 reconstructIntelImage(const QModelIndex& index, QByteArray & reconstructed);
UINT8 reconstructRegion(const QModelIndex& index, QByteArray & reconstructed);
@@ -77,13 +72,10 @@ public:
// Operations on tree items
UINT8 extract(const QModelIndex & index, QByteArray & extracted, const UINT8 mode);
-
UINT8 create(const QModelIndex & index, const UINT8 type, const QByteArray & header, const QByteArray & body, const UINT8 mode, const UINT8 action, const UINT8 algorithm = COMPRESSION_ALGORITHM_NONE);
UINT8 insert(const QModelIndex & index, const QByteArray & object, const UINT8 mode);
UINT8 replace(const QModelIndex & index, const QByteArray & object, const UINT8 mode);
-
UINT8 remove(const QModelIndex & index);
-
UINT8 rebuild(const QModelIndex & index);
// Search routines
@@ -99,6 +91,16 @@ private:
UINT32 oldPeiCoreEntryPoint;
UINT32 newPeiCoreEntryPoint;
+ // Parsing helpers
+ UINT8 findNextVolume(const QByteArray & bios, const UINT32 volumeOffset, UINT32 & nextVolumeOffset);
+ UINT8 getVolumeSize(const QByteArray & bios, const UINT32 volumeOffset, UINT32 & volumeSize);
+ UINT8 getFileSize(const QByteArray & volume, const UINT32 fileOffset, UINT32 & fileSize);
+ UINT8 getSectionSize(const QByteArray & file, const UINT32 sectionOffset, UINT32 & sectionSize);
+
+ // Reconstruction helpers
+ UINT8 constructPadFile(const UINT32 size, const UINT8 revision, const UINT8 erasePolarity, QByteArray & pad);
+ UINT8 growVolume(QByteArray & header, const UINT32 size, UINT32 & newSize);
+
// Rebase routines
UINT8 getBase(const QByteArray& file, UINT32& base);
UINT8 getEntryPoint(const QByteArray& file, UINT32 &entryPoint);
diff --git a/uefitool.cpp b/uefitool.cpp
index 2f5fe8a..d84c1ee 100644
--- a/uefitool.cpp
+++ b/uefitool.cpp
@@ -417,7 +417,7 @@ void UEFITool::extract(const UINT8 mode)
void UEFITool::about()
{
QMessageBox::about(this, tr("About UEFITool"), tr(
- "Copyright (c) 2013, Nikolaj Schlej aka CodeRush.
"
+ "Copyright (c) 2013-2014, Nikolaj Schlej aka CodeRush.
"
"The program is dedicated to RevoGirl. Rest in peace, young genius.
"
"The program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License.
"
"The full text of the license may be found at OpenSource.org.
"
@@ -448,7 +448,7 @@ void UEFITool::saveImageFile()
}
QByteArray reconstructed;
- UINT8 result = ffsEngine->reconstruct(ffsEngine->treeModel()->index(0,0), reconstructed);
+ UINT8 result = ffsEngine->reconstructImageFile(reconstructed);
showMessages();
if (result) {
ui->statusBar->showMessage(tr("Reconstruction failed (%1)").arg(result));
@@ -487,7 +487,7 @@ void UEFITool::openImageFile(QString path)
inputFile.close();
init();
- UINT8 result = ffsEngine->parseInputFile(buffer);
+ UINT8 result = ffsEngine->parseImageFile(buffer);
showMessages();
if (result)
ui->statusBar->showMessage(tr("Opened file can't be parsed (%1)").arg(result));
diff --git a/uefitool.ui b/uefitool.ui
index 05a1234..ca9dbf6 100644
--- a/uefitool.ui
+++ b/uefitool.ui
@@ -20,7 +20,7 @@
true
- UEFITool 0.16.3
+ UEFITool 0.16.4