mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
NUP実行部分を関数に
eTicket同期後にIVSを送信するように git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@214 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
19aa839160
commit
77c01cef2c
@ -109,6 +109,7 @@ typedef enum RestoreState
|
|||||||
DELETE_ACCOUNT, // ショップアカウントを削除する
|
DELETE_ACCOUNT, // ショップアカウントを削除する
|
||||||
DELETE_ACCOUNT_DONE, // ショップアカウント削除完了
|
DELETE_ACCOUNT_DONE, // ショップアカウント削除完了
|
||||||
SYNC_TICKET, // eTicketを同期する
|
SYNC_TICKET, // eTicketを同期する
|
||||||
|
UPLOAD_IVS, // IVSを送信する
|
||||||
READ_FILELIST, // ファイル一覧の読み込み
|
READ_FILELIST, // ファイル一覧の読み込み
|
||||||
RESTORE_TWL_NAND, // TWL NANDの書き込み中
|
RESTORE_TWL_NAND, // TWL NANDの書き込み中
|
||||||
RESTORE_TWL_SOUND, // TWLサウンドの書き込み中
|
RESTORE_TWL_SOUND, // TWLサウンドの書き込み中
|
||||||
@ -505,6 +506,77 @@ void ShopOperationSingleTemplate(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UpdateOperation(::std::vector<std::string>& message, RestoreState nextState)
|
||||||
|
{
|
||||||
|
// ACアダプタが必要か?
|
||||||
|
if (NeedsAcAdater())
|
||||||
|
{
|
||||||
|
message.push_back(::std::string("Connect AC Adapter!!"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// アップデートを行う
|
||||||
|
if (!s_ExecuteFgNup)
|
||||||
|
{
|
||||||
|
if (ImportCountryLanguageData().IsSuccess())
|
||||||
|
{
|
||||||
|
StartFGNetworkUpdate();
|
||||||
|
s_ExecuteFgNup = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s_RestoreState = FAIL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 動いていることを表示
|
||||||
|
{
|
||||||
|
PutAliveMessage(message, "Updating");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IsNetworkUpdateFinished())
|
||||||
|
{
|
||||||
|
FinishFGNetworkUpdate();
|
||||||
|
// エラーがあったら表示する
|
||||||
|
if (GetUpdateResult().IsFailure())
|
||||||
|
{
|
||||||
|
// APが見つからない
|
||||||
|
if (GetUpdateResult() == nn::ac::ResultNotFoundAccessPoint())
|
||||||
|
{
|
||||||
|
COMMON_LOGGER("No Access Point Found!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GetUpdateResult().IsSuccess())
|
||||||
|
{
|
||||||
|
COMMON_LOGGER("Network Update Finished.\n");
|
||||||
|
if(nextState == UPDATE_DONE)
|
||||||
|
{
|
||||||
|
// アップデート完了ファイルを作成
|
||||||
|
CreateUpdateFinishedFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
s_RestoreState = nextState;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (s_FgNupRetryCount++ < RETRY_MAX)
|
||||||
|
{
|
||||||
|
// エラーのためやり直す
|
||||||
|
COMMON_LOGGER_RESULT_IF_FAILED(GetUpdateResult());
|
||||||
|
COMMON_LOGGER("Network Update Failed. Retrying... %d\n", s_FgNupRetryCount);
|
||||||
|
|
||||||
|
// FGNUP用のスレッドを作るとこからやり直し
|
||||||
|
s_ExecuteFgNup = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s_RestoreState = FAIL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool CheckAndReadAPSetting(::std::vector<std::string>& operationMessage)
|
bool CheckAndReadAPSetting(::std::vector<std::string>& operationMessage)
|
||||||
{
|
{
|
||||||
using namespace common;
|
using namespace common;
|
||||||
@ -718,71 +790,7 @@ void ControlState(::std::vector<std::string>& operationMessage, bool& nextStep)
|
|||||||
// アップデート中
|
// アップデート中
|
||||||
case UPDATE_IN_PROGRESS:
|
case UPDATE_IN_PROGRESS:
|
||||||
{
|
{
|
||||||
// ACアダプタが必要か?
|
UpdateOperation(operationMessage, UPDATE_DONE);
|
||||||
if (NeedsAcAdater())
|
|
||||||
{
|
|
||||||
operationMessage.push_back(::std::string("Connect AC Adapter!!"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// アップデートを行う
|
|
||||||
if (!s_ExecuteFgNup)
|
|
||||||
{
|
|
||||||
if (ImportCountryLanguageData().IsSuccess())
|
|
||||||
{
|
|
||||||
StartFGNetworkUpdate();
|
|
||||||
s_ExecuteFgNup = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
s_RestoreState = FAIL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 動いていることを表示
|
|
||||||
{
|
|
||||||
PutAliveMessage(operationMessage, "Updating");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsNetworkUpdateFinished())
|
|
||||||
{
|
|
||||||
FinishFGNetworkUpdate();
|
|
||||||
// エラーがあったら表示する
|
|
||||||
if (GetUpdateResult().IsFailure())
|
|
||||||
{
|
|
||||||
// APが見つからない
|
|
||||||
if (GetUpdateResult() == nn::ac::ResultNotFoundAccessPoint())
|
|
||||||
{
|
|
||||||
COMMON_LOGGER("No Access Point Found!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GetUpdateResult().IsSuccess())
|
|
||||||
{
|
|
||||||
COMMON_LOGGER("Network Update Finished.\n");
|
|
||||||
// アップデート完了ファイルを作成
|
|
||||||
CreateUpdateFinishedFile();
|
|
||||||
|
|
||||||
s_RestoreState = UPDATE_DONE;
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (s_FgNupRetryCount++ < RETRY_MAX)
|
|
||||||
{
|
|
||||||
// エラーのためやり直す
|
|
||||||
COMMON_LOGGER_RESULT_IF_FAILED(GetUpdateResult());
|
|
||||||
COMMON_LOGGER("Network Update Failed. Retrying... %d\n", s_FgNupRetryCount);
|
|
||||||
|
|
||||||
// FGNUP用のスレッドを作るとこからやり直し
|
|
||||||
s_ExecuteFgNup = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
s_RestoreState = FAIL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1042,7 +1050,14 @@ void ControlState(::std::vector<std::string>& operationMessage, bool& nextStep)
|
|||||||
case SYNC_TICKET:
|
case SYNC_TICKET:
|
||||||
{
|
{
|
||||||
ShopOperationSingleTemplate(operationMessage, SHOP_OPERATION_CONNECT_ONLY, "Shop Connect",
|
ShopOperationSingleTemplate(operationMessage, SHOP_OPERATION_CONNECT_ONLY, "Shop Connect",
|
||||||
"Shop Connect Finished.\n", "Shop Connect Failed. Retrying...", DOWNLOAD_TWL);
|
"Shop Connect Finished.\n", "Shop Connect Failed. Retrying...", UPLOAD_IVS);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
// NUPすることでIVSが送信される
|
||||||
|
case UPLOAD_IVS:
|
||||||
|
{
|
||||||
|
UpdateOperation(operationMessage, DOWNLOAD_TWL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user