2010-12-08 08:26:18 +01:00
|
|
|
#ifndef NANDDUMP_H
|
|
|
|
#define NANDDUMP_H
|
|
|
|
|
|
|
|
#include "nusdownloader.h"
|
|
|
|
#include "includes.h"
|
|
|
|
#include "sharedcontentmap.h"
|
|
|
|
#include "uidmap.h"
|
|
|
|
|
|
|
|
class NandDump
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
NandDump( const QString &path = QString() );
|
|
|
|
~NandDump();
|
|
|
|
|
|
|
|
//sets the basepath for this nand
|
|
|
|
//if it doesnt exist, the function will try to create it
|
|
|
|
//also creates the normal folders in the nand
|
|
|
|
bool SetPath( const QString &path );
|
2010-12-09 06:45:12 +01:00
|
|
|
const QString GetPath(){ return basePath; }
|
2010-12-08 08:26:18 +01:00
|
|
|
|
|
|
|
//installs a title to the nand dump from an already existing NusJob
|
|
|
|
//returns false if something went wrong
|
|
|
|
bool InstallNusItem( NusJob job );
|
|
|
|
|
|
|
|
//tries to delete a title from the nand dump
|
|
|
|
//deleteData gives the option to just delete the title and leave behind its data
|
|
|
|
bool DeleteTitle( quint64 tid, bool deleteData = false );
|
|
|
|
|
|
|
|
//check what version a given title is on this nand, returns 0 if it isnt installed
|
|
|
|
quint16 GetTitleVersion( quint64 tid );
|
|
|
|
|
|
|
|
//write the current uid & content.map to the PC
|
|
|
|
//failure to make sure this is done can end up with a broken nand
|
|
|
|
bool Flush();
|
|
|
|
|
|
|
|
QByteArray GetSettingTxt();
|
|
|
|
bool SetSettingTxt( const QByteArray ba );
|
|
|
|
|
|
|
|
const QByteArray GetFile( const QString &path );
|
|
|
|
bool SaveData( const QByteArray ba, const QString& path );
|
|
|
|
void DeleteData( const QString & path );
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
QString basePath;
|
|
|
|
SharedContentMap cMap;
|
|
|
|
UIDmap uidMap;
|
|
|
|
|
|
|
|
//write the current uid.sys to disc
|
|
|
|
bool uidDirty;
|
|
|
|
bool FlushUID();
|
|
|
|
|
|
|
|
//write the content.map to disc
|
|
|
|
bool cmDirty;
|
|
|
|
bool FlushContentMap();
|
|
|
|
|
|
|
|
bool InstallTicket( const QByteArray ba, quint64 tid );
|
|
|
|
bool InstallTmd( const QByteArray ba, quint64 tid );
|
|
|
|
bool InstallSharedContent( const QByteArray ba, const QByteArray hash = QByteArray() );
|
|
|
|
bool InstallPrivateContent( const QByteArray ba, quint64 tid, const QString &cid );
|
|
|
|
void AbortInstalling( quint64 tid );
|
|
|
|
|
|
|
|
//go through and delete all the stuff in a given folder and then delete the folder itself
|
|
|
|
//this function expects an absolute path, not a relitive one inside the nand dump
|
|
|
|
bool RecurseDeleteFolder( const QString &path );
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // NANDDUMP_H
|