From 21d6a5a1a04caf5d9f96836bdb840b4372c7d70f Mon Sep 17 00:00:00 2001 From: N2614 Date: Wed, 9 Apr 2014 02:59:55 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=A2=E3=82=AB=E3=82=A6=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=82=B5=E3=83=AB=E3=83=99=E3=83=BC=E3=82=B8=E3=81=AE=E7=B5=90?= =?UTF-8?q?=E6=9E=9C=E3=82=92=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=83=A2=E3=83=BC=E3=83=89=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@780 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../sources/ConsoleRestore/ActCompleter.cpp | 8 +++++--- .../sources/ConsoleRestore/ActCompleter.h | 8 +++++++- .../sources/ConsoleRestore/Controller.cpp | 15 +++++++++++++-- .../sources/ConsoleRestore/Importer.cpp | 9 +++++---- .../sources/ConsoleRestore/Importer.h | 2 +- 5 files changed, 31 insertions(+), 11 deletions(-) diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.cpp b/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.cpp index fc5bfb4..fb32939 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.cpp +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.cpp @@ -34,6 +34,7 @@ nn::os::Event ActCompleter::s_BeginEvent; nn::os::Event ActCompleter::s_EndEvent; u32 ActCompleter::s_ApprovalId; ActCompleter::CompleteMode ActCompleter::s_Mode; +ActCompleter::SalvageCheck ActCompleter::s_SalvageCheck; ActCompleter::ActCompleter() @@ -49,9 +50,10 @@ nn::Result ActCompleter::GetResult() return s_Result; } -void ActCompleter::Start(CompleteMode mode) +void ActCompleter::Start(CompleteMode mode, SalvageCheck check) { s_Mode = mode; + s_SalvageCheck = check; s_ApprovalId = 0; if(s_Mode == ACT_COMPLETE_TRANSFER_WITH_SALVEGE) { @@ -117,9 +119,9 @@ nn::Result ActCompleter::ExecImpl() nn::Result result = nn::act::SalvageAccounts(); if(result.IsFailure()) { - if(nn::act::ResultRequestNotFound().Includes(result)) + if(nn::act::ResultRequestNotFound().Includes(result) && s_SalvageCheck == ACT_SALVAGE_WITHOUT_CHECK) { - //NNAが無い場合に起こるので無視 + //サルベージ結果を無視するモードなので無視 } else { diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.h b/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.h index cf7c70f..cae96bb 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.h +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.h @@ -29,11 +29,16 @@ public: ACT_COMPLETE_TRANSFER_WITH_SALVEGE }; + enum SalvageCheck{ + ACT_SALVAGE_WITHOUT_CHECK, + ACT_SALVAGE_WITH_CHECK + }; + ActCompleter(); virtual ~ActCompleter(); static nn::Result GetResult(); - static void Start(CompleteMode mode); + static void Start(CompleteMode mode, SalvageCheck check); static bool IsFinished(); static void Finish(); @@ -52,6 +57,7 @@ private: static nn::os::Event s_EndEvent; static u32 s_ApprovalId; static CompleteMode s_Mode; + static SalvageCheck s_SalvageCheck; }; } /* namespace ConsoleRestore */ diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/Controller.cpp b/trunk/ConsoleDataMigration/sources/ConsoleRestore/Controller.cpp index 45565ee..edf5ac4 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/Controller.cpp +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/Controller.cpp @@ -58,6 +58,8 @@ bool s_SkipNupMode = false; bool s_DownloadPreinstallMode = false; // 強制プリインストール書き込みモードかどうか bool s_ForceDownloadPreinstall = false; +// アカウントサルベージの結果を確認するかどうか +bool s_CheckAccountSalvageResult = false; // 失敗サウンドを鳴らしたかどうか bool s_PlayedFailSound = false; @@ -778,7 +780,7 @@ bool CheckAndReadAPSetting(common::OperationMessage& operationMessage) if (!s_ReadSettingDone) { s_ReadSettingDone = true; - s_ReadSettingIsSuccess = ReadSetting(&s_NupOnlyMode, &s_GetIvsOnlyMode, &s_CheckSdOnlyMode, &s_SkipNupMode, &s_DownloadPreinstallMode); + s_ReadSettingIsSuccess = ReadSetting(&s_NupOnlyMode, &s_GetIvsOnlyMode, &s_CheckSdOnlyMode, &s_SkipNupMode, &s_DownloadPreinstallMode, &s_CheckAccountSalvageResult); } if (s_NupOnlyMode && s_GetIvsOnlyMode @@ -1413,7 +1415,16 @@ void ControlState(common::HardwareStateManager& manager, common::OperationMessag COMMON_LOGGER("Complete NNA Transfer\n"); if (ImportCountryLanguageData().IsSuccess()) { - ActCompleter::Start(s_ActCompleteMode); + ActCompleter::SalvageCheck check; + if(s_CheckAccountSalvageResult) + { + check = ActCompleter::ACT_SALVAGE_WITH_CHECK; + } + else + { + check = ActCompleter::ACT_SALVAGE_WITHOUT_CHECK; + } + ActCompleter::Start(s_ActCompleteMode, check); s_RestoreState = COMPLETE_ACT_WAIT; } else diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.cpp b/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.cpp index d8b1f11..a9aa069 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.cpp +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.cpp @@ -271,7 +271,7 @@ nn::Result ExistsDeviceIdFile() return nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, nn::Result::DESCRIPTION_OUT_OF_MEMORY); } - + return sdReader.ReadBufWithCmac(common::DEVICE_ID_PATHNAME, buf, bufSize, &totalSize); } @@ -289,10 +289,10 @@ bool EqualsDeviceIdFileandDeviceId(common::HardwareStateManager& manager) { return false; } - + COMMON_LOGGER_RETURN_FALSE_IF_FAILED( sdReader.ReadBufWithCmac(common::DEVICE_ID_PATHNAME, buf, bufSize, &totalSize)); - + std::memcpy(&sdDeviceId, buf, sizeof(sdDeviceId)); return (manager.GetDeviceId() == sdDeviceId); } @@ -1141,7 +1141,7 @@ void ReadSettingFlag(common::ConfigFileLoader* loader, const wchar_t* paramName, } } -bool ReadSetting(bool* nupOnly, bool* getIvs, bool* checkSd, bool* skipNup, bool* dlPreinstall) +bool ReadSetting(bool* nupOnly, bool* getIvs, bool* checkSd, bool* skipNup, bool* dlPreinstall, bool* checkSalvage) { nn::Result result; bool retval = true; @@ -1448,6 +1448,7 @@ bool ReadSetting(bool* nupOnly, bool* getIvs, bool* checkSd, bool* skipNup, bool ReadSettingFlag(&configfileLoader, L"CHECK_SD", checkSd, "CHECK SD Mode.\n"); ReadSettingFlag(&configfileLoader, L"SKIP_NUP", skipNup, "Skip NUP Mode.\n"); ReadSettingFlag(&configfileLoader, L"DL_PREINSTALL", dlPreinstall, "Download PreInstall Application Mode.\n"); + ReadSettingFlag(&configfileLoader, L"CHECK_SALVAGE", checkSalvage, "Check Account Salvage Result Mode.\n"); configfileLoader.Finalize(); diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.h b/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.h index 0f2d782..374bbda 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.h +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.h @@ -114,7 +114,7 @@ struct TimeZone }; // ネットワーク設定ファイルを読み込む -bool ReadSetting(bool* nupOnly, bool* getIvs, bool* checkSd, bool* skipNup, bool* dlPreinstall); +bool ReadSetting(bool* nupOnly, bool* getIvs, bool* checkSd, bool* skipNup, bool* dlPreinstall, bool* checkSalvage); // ネットワーク設定ファイルからNTPサーバの名前を取得する // 先にReadSettingが成功している必要がある