中途半端なNAND書き込み状態で起動しないように、やっぱりIVSの書き込みはNAND書き込み完了後にする

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@350 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2011-06-29 08:32:35 +00:00
parent 06778aee07
commit 82ee9cbffa
4 changed files with 21 additions and 11 deletions

View File

@ -1260,10 +1260,19 @@ void ControlState(common::HardwareStateManager& manager, ::std::vector<std::stri
case POST_RESTORE:
{
operationMessage.push_back(::std::string("Post Process..."));
// 書き込み完了ファイルを作成
CreateWriteFinishedFile();
s_RestoreState = RESTORE_DONE;
// SDカードのIVSファイルを書き込む
if(ImportIvsData())
{
// 書き込み完了ファイルを作成
CreateWriteFinishedFile();
s_RestoreState = RESTORE_DONE;
}
else
{
s_RestoreState = FAIL;
}
}
break;

View File

@ -690,6 +690,11 @@ nn::Result ImportIvs()
return result;
}
bool ImportIvsData()
{
return ImportIvs().IsSuccess();
}
void ImportThreadFunc()
{
nn::Result result;
@ -1856,10 +1861,6 @@ nn::Result ImportData()
// NANDのごみを削除する
Cleanup();
// SDカードのIVSファイルを書き込む
result = ImportIvs();
NN_UTIL_RETURN_IF_FAILED(result);
// NORデータを書き込む
result = ImportNorData();
NN_UTIL_RETURN_IF_FAILED(result);

View File

@ -154,6 +154,9 @@ nn::Result ReadVersionData();
// SDカードのNintendo 3DS以下ににIVSと一致するディレクトリがあるかどうか
bool ExistsIvsDirectory(std::string& ivsRoot);
// SDカードのIVSデータを書き込む
bool ImportIvsData();
}
#endif /* IMPORTER_H_ */

View File

@ -806,15 +806,12 @@ bool ConfirmFile(nn::fs::FileInputStream* from_file, nn::fs::FileStream* to_file
NN_LOG("Verification Success %s, Rename\n", GetCharStr(sdPath));
// 書き込み先を削除する
result = nn::fs::TryDeleteFile(truePath);
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
// 正しいファイル名にリネームする
result = nn::fs::TryRenameFile(tmpPath, truePath);
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
if (result.IsFailure())
{
COMMON_LOGGER_RESULT_IF_FAILED(result);
s_FinishedFileSize -= nandFileSize;
ret_value = false;
}