mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
アカウントサルベージの結果をチェックするモードを追加
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
This commit is contained in:
parent
5eae609069
commit
21d6a5a1a0
@ -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
|
||||
{
|
||||
|
||||
@ -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 */
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
@ -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が成功している必要がある
|
||||
|
||||
Loading…
Reference in New Issue
Block a user