mirror of
https://github.com/LongSoft/UEFITool.git
synced 2025-05-30 06:55:18 -04:00
Version 0.17.10.4
- commited all file of UEFIExtract project
This commit is contained in:
parent
7f81296e48
commit
e1c641ca08
5 changed files with 3474 additions and 0 deletions
53
UEFIExtract/uefiextract.cpp
Normal file
53
UEFIExtract/uefiextract.cpp
Normal file
|
@ -0,0 +1,53 @@
|
|||
/* uefiextract.cpp
|
||||
|
||||
Copyright (c) 2014, Nikolaj Schlej. All rights reserved.
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
*/
|
||||
|
||||
#include "uefiextract.h"
|
||||
|
||||
UEFIExtract::UEFIExtract(QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
ffsEngine = new FfsEngine(this);
|
||||
}
|
||||
|
||||
UEFIExtract::~UEFIExtract()
|
||||
{
|
||||
delete ffsEngine;
|
||||
}
|
||||
|
||||
UINT8 UEFIExtract::extractAll(QString path)
|
||||
{
|
||||
QFileInfo fileInfo = QFileInfo(path);
|
||||
|
||||
if (!fileInfo.exists())
|
||||
return ERR_FILE_OPEN;
|
||||
|
||||
QFile inputFile;
|
||||
inputFile.setFileName(path);
|
||||
|
||||
if (!inputFile.open(QFile::ReadOnly))
|
||||
return ERR_FILE_OPEN;
|
||||
|
||||
QByteArray buffer = inputFile.readAll();
|
||||
inputFile.close();
|
||||
|
||||
UINT8 result = ffsEngine->parseImageFile(buffer);
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
QModelIndex rootIndex = ffsEngine->treeModel()->index(0, 0);
|
||||
result = ffsEngine->dump(rootIndex, fileInfo.fileName().append(".dump"));
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
return ERR_SUCCESS;
|
||||
}
|
40
UEFIExtract/uefiextract.h
Normal file
40
UEFIExtract/uefiextract.h
Normal file
|
@ -0,0 +1,40 @@
|
|||
/* uefiextract.h
|
||||
|
||||
Copyright (c) 2014, Nikolaj Schlej. All rights reserved.
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __UEFIEXTRACT_H__
|
||||
#define __UEFIEXTRACT_H__
|
||||
|
||||
#include <QObject>
|
||||
#include <QByteArray>
|
||||
#include <QString>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
|
||||
#include "../basetypes.h"
|
||||
#include "../ffsengine.h"
|
||||
|
||||
class UEFIExtract : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit UEFIExtract(QObject *parent = 0);
|
||||
~UEFIExtract();
|
||||
|
||||
UINT8 extractAll(QString path);
|
||||
|
||||
private:
|
||||
FfsEngine* ffsEngine;
|
||||
};
|
||||
|
||||
#endif
|
49
UEFIExtract/uefiextract_main.cpp
Normal file
49
UEFIExtract/uefiextract_main.cpp
Normal file
|
@ -0,0 +1,49 @@
|
|||
/* uefiextract_main.cpp
|
||||
|
||||
Copyright (c) 2014, Nikolaj Schlej. All rights reserved.
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
*/
|
||||
#include <QCoreApplication>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <iostream>
|
||||
#include "uefiextract.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QCoreApplication a(argc, argv);
|
||||
a.setOrganizationName("CodeRush");
|
||||
a.setOrganizationDomain("coderush.me");
|
||||
a.setApplicationName("UEFIExtract");
|
||||
|
||||
UEFIExtract w;
|
||||
UINT8 result = ERR_SUCCESS;
|
||||
if (a.arguments().length() > 1) {
|
||||
result = w.extractAll(a.arguments().at(1));
|
||||
switch (result) {
|
||||
case ERR_DIR_ALREADY_EXIST:
|
||||
std::cout << "Dump directory already exist, please remove it" << std::endl;
|
||||
break;
|
||||
case ERR_DIR_CREATE:
|
||||
std::cout << "Can't create directory" << std::endl;
|
||||
break;
|
||||
case ERR_FILE_OPEN:
|
||||
std::cout << "Can't create file" << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
result = ERR_INVALID_PARAMETER;
|
||||
std::cout << "UEFIExtract 0.1.0" << std::endl << std::endl <<
|
||||
"Usage: uefiextract imagefile\n" << std::endl;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue