Restoreも同一本体下記戻しの場合エージングできるように

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@368 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2011-07-07 06:31:05 +00:00
parent c238fa7459
commit 34407ba9a2
2 changed files with 38 additions and 36 deletions

View File

@ -338,9 +338,20 @@ void CheckAccountTransfered(common::HardwareStateManager& manager, ::std::vector
CheckDownloadIvs(manager, message, goNextStep); CheckDownloadIvs(manager, message, goNextStep);
} }
else else
{
// エージングのため同一本体下記書き戻しの場合は本体初期化からはじめる
if(EqualsDeviceIdFileandDeviceId(manager).IsSuccess())
{
CreateTransferAccountFinishedFile();
CreateDownloadIvsFinishedFile();
CheckWriteFinished(manager, message, goNextStep);
}
else
{ {
s_RestoreState = WAIT_START_TRANSFER_ACCOUNT; s_RestoreState = WAIT_START_TRANSFER_ACCOUNT;
} }
}
} }
// 書き込み完了かどうかチェック // 書き込み完了かどうかチェック
@ -838,11 +849,8 @@ void ControlState(common::HardwareStateManager& manager, ::std::vector<std::stri
s_PlayedStartCursor = true; s_PlayedStartCursor = true;
} }
if (nextStep)
{
s_RestoreState = READ_FILELIST; s_RestoreState = READ_FILELIST;
} }
}
break; break;
case WAIT_START_SYNC_CLOCK: case WAIT_START_SYNC_CLOCK:
@ -912,11 +920,8 @@ void ControlState(common::HardwareStateManager& manager, ::std::vector<std::stri
PlaySound(SOUND_ANNOTATION); PlaySound(SOUND_ANNOTATION);
} }
if (nextStep)
{
s_RestoreState = READ_FILELIST; s_RestoreState = READ_FILELIST;
} }
}
break; break;
// アップデート中 // アップデート中
@ -1313,11 +1318,11 @@ void ControlState(common::HardwareStateManager& manager, ::std::vector<std::stri
s_PlayedRebootCursor = true; s_PlayedRebootCursor = true;
} }
if (nextStep) // リストア状態チェックファイルをすべて削除
{ DeleteAllCheckFiles();
s_RestoreState = REBOOTING; s_RestoreState = REBOOTING;
} }
}
break; break;
// 削除処理 // 削除処理

View File

@ -129,31 +129,28 @@ void Util::Initialize()
// エージング回数の変更 // エージング回数の変更
SdMountManager::Mount(); SdMountManager::Mount();
size_t bufSize = GetAllocatableSize(); const size_t BUF_SIZE = 1024;
common::HeapManager heap(bufSize); u8* buf[BUF_SIZE];
void* buf = heap.GetAddr();
if (buf != NULL)
{
common::SdReaderWriter sdReaderWriter; common::SdReaderWriter sdReaderWriter;
size_t readSize; size_t readSize;
result = sdReaderWriter.ReadBufWithCmac(common::AGING_COUNTER_PATHNAME, buf, bufSize, &readSize); result = sdReaderWriter.ReadBufWithCmac(common::AGING_COUNTER_PATHNAME, buf, BUF_SIZE, &readSize);
if(result.IsSuccess()) if (result.IsSuccess())
{ {
// SDから読み出し成功 // SDから読み出し成功
std::memcpy(&m_AgingCounter, buf, readSize); std::memcpy(&m_AgingCounter, buf, readSize);
m_AgingCounter++; m_AgingCounter++;
result = sdReaderWriter.WriteBufWithCmac(common::AGING_COUNTER_PATHNAME, &m_AgingCounter, sizeof(m_AgingCounter)); result = sdReaderWriter.WriteBufWithCmac(common::AGING_COUNTER_PATHNAME, &m_AgingCounter,
sizeof(m_AgingCounter));
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
} }
else else
{ {
// 初期値 // 初期値
m_AgingCounter = 1; m_AgingCounter = 1;
result = sdReaderWriter.WriteBufWithCmac(common::AGING_COUNTER_PATHNAME, &m_AgingCounter, sizeof(m_AgingCounter)); result = sdReaderWriter.WriteBufWithCmac(common::AGING_COUNTER_PATHNAME, &m_AgingCounter,
sizeof(m_AgingCounter));
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
} }
}
SdMountManager::Unmount(); SdMountManager::Unmount();
} }