シリアルNo.ファイルが存在する場合はリストア時に一致しているかチェックするように

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@719 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2013-02-21 08:17:51 +00:00
parent dc1d45e0ef
commit 432b756ce5

View File

@ -226,6 +226,7 @@ void CheckSdInserted(common::HardwareStateManager& manager, common::OperationMes
void CheckAcAdapter(common::HardwareStateManager& manager, common::OperationMessage& message, bool& goNextStep);
void CheckSdWritable(common::HardwareStateManager& manager, common::OperationMessage& message, bool& goNextStep);
void CheckApSetting(common::HardwareStateManager& manager, common::OperationMessage& message, bool& goNextStep);
void CheckSerialNumber(common::HardwareStateManager& manager, common::OperationMessage& message, bool& goNextStep);
void CheckNupExecuted(common::HardwareStateManager& manager, common::OperationMessage& message, bool& goNextStep);
void CheckDownloadIvs(common::HardwareStateManager& manager, common::OperationMessage& message, bool& goNextStep);
void CheckAccountDeleted(common::HardwareStateManager& manager, common::OperationMessage& message, bool& goNextStep);
@ -286,12 +287,9 @@ void CheckSdWritable(common::HardwareStateManager& manager, common::OperationMes
// 設定ファイル書式チェック
void CheckApSetting(common::HardwareStateManager& manager, common::OperationMessage& message, bool& goNextStep)
{
NN_UNUSED_VAR(manager);
NN_UNUSED_VAR(goNextStep);
if (CheckAndReadAPSetting(message))
{
s_RestoreState = IMPORT_RTC;
CheckSerialNumber(manager, message, goNextStep);
}
else
{
@ -299,6 +297,43 @@ void CheckApSetting(common::HardwareStateManager& manager, common::OperationMess
}
}
// シリアルNo.が一致しているかどうかチェック
void CheckSerialNumber(common::HardwareStateManager& manager, common::OperationMessage& message, bool& goNextStep)
{
NN_UNUSED_VAR(message);
NN_UNUSED_VAR(goNextStep);
// SDカードにシリアルナンバーがあるか
if (!common::ExistsSerialNumberFile())
{
s_RestoreState = IMPORT_RTC;
return;
}
u8 serialInSd[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN];
nn::Result result = ReadSerialNumber(serialInSd);
if (result.IsFailure())
{
s_RestoreState = FAIL;
return;
}
u8* serial;
size_t size;
manager.GetSerialNumber(&serial, &size);
if(std::memcmp(serialInSd, serial, size) == 0)
{
s_RestoreState = IMPORT_RTC;
}
else
{
COMMON_LOGGER("Mismatched Serial Number!!");
s_RestoreState = FAIL;
}
}
// NUP済みかどうかチェック
void CheckNupExecuted(common::HardwareStateManager& manager, common::OperationMessage& message, bool& goNextStep)
{