Skip to content

Commit

Permalink
Allow the user to ignore signature issues during WAD import
Browse files Browse the repository at this point in the history
Improves usability with signature checks.
  • Loading branch information
leoetlino committed Jun 15, 2017
1 parent 78c619a commit 7778c28
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions Source/Core/UICommon/WiiUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "UICommon/WiiUtils.h"
#include "Common/CommonTypes.h"
#include "Common/MsgHandler.h"
#include "Core/ConfigManager.h"
#include "Core/IOS/ES/ES.h"
#include "Core/IOS/ES/Formats.h"
#include "Core/IOS/IOS.h"
Expand All @@ -27,12 +28,23 @@ bool InstallWAD(const std::string& wad_path)
const auto es = ios.GetES();

IOS::HLE::Device::ES::Context context;
if (es->ImportTicket(wad.GetTicket().GetBytes(), wad.GetCertificateChain()) < 0 ||
es->ImportTitleInit(context, tmd.GetBytes(), wad.GetCertificateChain()) < 0)
IOS::HLE::ReturnCode ret;
const bool checks_disabled = SConfig::GetInstance().m_disable_signature_checks;
while ((ret = es->ImportTicket(wad.GetTicket().GetBytes(), wad.GetCertificateChain())) < 0 ||
(ret = es->ImportTitleInit(context, tmd.GetBytes(), wad.GetCertificateChain())) < 0)
{
if (!checks_disabled && ret == IOS::HLE::IOSC_FAIL_CHECKVALUE &&
AskYesNoT("This WAD does not have a valid signature. Continue to import?"))
{
SConfig::GetInstance().m_disable_signature_checks = true;
continue;
}

SConfig::GetInstance().m_disable_signature_checks = checks_disabled;
PanicAlertT("WAD installation failed: Could not initialise title import.");
return false;
}
SConfig::GetInstance().m_disable_signature_checks = checks_disabled;

const bool contents_imported = [&]() {
const u64 title_id = tmd.GetTitleId();
Expand Down

0 comments on commit 7778c28

Please sign in to comment.