エージング回数をカウントできるように

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@367 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2011-07-07 06:09:09 +00:00
parent 8df0e30666
commit c238fa7459
10 changed files with 68 additions and 5 deletions

View File

@ -251,7 +251,8 @@ extern "C" void nnMain(void)
s_HwUtility.GetMacAddress(),
operationMessage,
s_HwUtility.GetRegion(),
s_HwUtility.GetSerialNumber()
s_HwUtility.GetSerialNumber(),
s_HwUtility.GetAgingCounter()
);
renderSystem.SwapBuffers();

View File

@ -118,7 +118,9 @@ nn::Result DeleteTrash(std::wstring currentDirectory)
else
{
if (std::wcscmp(entryIndex->entryName, common::AP_SETTING_FILENAME) != 0
&& std::wcscmp(entryIndex->entryName, common::LOG_FILENAME) != 0)
&& std::wcscmp(entryIndex->entryName, common::LOG_FILENAME) != 0
&& std::wcscmp(entryIndex->entryName, common::AGING_COUNTER_FILENAME) != 0
)
{
NN_LOG("Try Delete %ls%ls\n", currentDirectory.c_str(), entryIndex->entryName);
result = nn::fs::TryDeleteFile(

View File

@ -289,7 +289,8 @@ extern "C" void nnMain(void)
s_HwUtility.GetMacAddress(),
operationMessage,
s_HwUtility.GetRegion(),
s_HwUtility.GetSerialNumber()
s_HwUtility.GetSerialNumber(),
s_HwUtility.GetAgingCounter()
);
if (GetRestoreMode() != RESTORE_MODE_RESTORE)

View File

@ -38,6 +38,7 @@ u8 s_BatteryRemain;
std::string s_AdapterState;
u8 s_Progress;
::std::vector<std::string>* s_OperationMessage;
u32 s_Counter;
}
@ -76,6 +77,7 @@ void SetTextWriterCore()
GetTextWriter()->Printf("Battery %d%%\n", s_BatteryRemain);
GetTextWriter()->Printf("AC Adapter %s\n", s_AdapterState.c_str());
GetTextWriter()->Printf("Progress %02d%%\n", s_Progress);
GetTextWriter()->Printf("Counter %d\n", s_Counter);
GetTextWriter()->Print("\n");
::std::vector<std::string>::iterator it;
@ -108,7 +110,8 @@ void DrawSystemState
char8* macAddress,
::std::vector<std::string>& operationMessage,
nn::cfg::CTR::CfgRegionCode region,
u8* serialNo
u8* serialNo,
u32 counter
)
{
// パラメータ保存
@ -126,6 +129,7 @@ void DrawSystemState
std::memcpy(s_SerialNo, serialNo, sizeof(s_SerialNo));
s_SerialNo[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN] = '\0';
s_OperationMessage = &operationMessage;
s_Counter = counter;
// デフォルトで上画面に描画するもの

View File

@ -71,7 +71,8 @@ void DrawSystemState
char8* macAddress,
::std::vector<std::string>& operationMessage,
nn::cfg::CTR::CfgRegionCode region,
u8* s_SerialNo
u8* s_SerialNo,
u32 counter
);
}

View File

@ -65,6 +65,10 @@ const wchar_t* const FILE_LIST_PATHNAME = L"sdmc:/CTR_Console_Repair/FileList.tx
const wchar_t* const TWL_TITLELIST_PATHNAME = L"sdmc:/CTR_Console_Repair/TwlTitleList.txt";
const wchar_t* const SD_NINTENDO_3DS_ROOT_PATH = L"sdmc:/Nintendo 3DS/";
const wchar_t* const AGING_COUNTER_PATHNAME = L"sdmc:/CTR_Console_Repair/counter.bin";
const wchar_t* const AGING_COUNTER_FILENAME = L"counter.bin";
enum TWL_PATH_INDEX
{
TWL_PHOTO = 0,

View File

@ -78,4 +78,9 @@ void HardwareStateManager::GetVersionData(common::VerDef* version)
return m_pUtil->GetVersionData(version);
}
u32 HardwareStateManager::GetAgingCounter()
{
return m_pUtil->GetAgingCounter();
}
}

View File

@ -40,6 +40,7 @@ public:
nn::Handle GetMcuHandle();
void GetSerialNumber(u8** serial, size_t* size);
void GetVersionData(common::VerDef* version);
u32 GetAgingCounter();
private:
NN_PADDING4;

View File

@ -32,6 +32,8 @@
#include "FileName.h"
#include "CommonLogger.h"
#include "HeapManager.h"
#include "SdMountManager.h"
#include "SdReaderWriter.h"
namespace common
@ -124,6 +126,36 @@ void Util::Initialize()
result = nn::friends::CTR::GetMyFriendKey(&friendKey);
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
m_FriendCode = nn::friends::CTR::FriendKeyToFriendCode(friendKey);
// エージング回数の変更
SdMountManager::Mount();
size_t bufSize = GetAllocatableSize();
common::HeapManager heap(bufSize);
void* buf = heap.GetAddr();
if (buf != NULL)
{
common::SdReaderWriter sdReaderWriter;
size_t readSize;
result = sdReaderWriter.ReadBufWithCmac(common::AGING_COUNTER_PATHNAME, buf, bufSize, &readSize);
if(result.IsSuccess())
{
// SDから読み出し成功
std::memcpy(&m_AgingCounter, buf, readSize);
m_AgingCounter++;
result = sdReaderWriter.WriteBufWithCmac(common::AGING_COUNTER_PATHNAME, &m_AgingCounter, sizeof(m_AgingCounter));
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
}
else
{
// 初期値
m_AgingCounter = 1;
result = sdReaderWriter.WriteBufWithCmac(common::AGING_COUNTER_PATHNAME, &m_AgingCounter, sizeof(m_AgingCounter));
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
}
}
SdMountManager::Unmount();
}
void Util::Finalize()
@ -330,4 +362,9 @@ void Util::GetVersionData(common::VerDef* version)
*version = m_VerData;
}
u32 Util::GetAgingCounter()
{
return m_AgingCounter;
}
}

View File

@ -102,6 +102,9 @@ public:
// バージョン情報を取得する
void GetVersionData(common::VerDef* version);
// エージング回数を取得する
u32 GetAgingCounter();
private:
NN_PADDING4;
@ -145,6 +148,10 @@ private:
// MACアドレス
char8 m_MacAddress[nn::nwm::Mac::MAC_STRING_SIZE];
NN_PADDING3;
NN_PADDING4;
// エージング回数
u32 m_AgingCounter;
};
}