mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
CUP、NUPバージョンを出力して読み込めるように
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@73 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
00fc32c49e
commit
8b951b7e97
@ -83,6 +83,9 @@ size_t s_SizeofIvs;
|
||||
// IVSが読めるかどうか
|
||||
bool s_CanReadIvs = false;
|
||||
|
||||
// バージョン情報
|
||||
common::VerDef s_VerData;
|
||||
|
||||
nn::Handle s_McuSession;
|
||||
|
||||
} // namespace <unnamed>
|
||||
@ -121,6 +124,11 @@ void GetIvs(void** ivs, size_t* size)
|
||||
*size = s_SizeofIvs;
|
||||
}
|
||||
|
||||
void GetVersionData(common::VerDef* version)
|
||||
{
|
||||
*version = s_VerData;
|
||||
}
|
||||
|
||||
nn::Handle GetMcuHandle()
|
||||
{
|
||||
return s_McuSession;
|
||||
@ -280,13 +288,12 @@ extern "C" void nnMain(void)
|
||||
u64 friendCode = nn::friends::CTR::FriendKeyToFriendCode(friendKey);
|
||||
|
||||
// バージョンの取得
|
||||
common::VerDef mVerData;
|
||||
common::GetSystemVersion(&mVerData, region);
|
||||
common::GetSystemVersion(&s_VerData, region);
|
||||
|
||||
// 情報出力
|
||||
COMMON_LOGGER("CTR Console Backup %s Rev.%s\n", __DATE__, BACKUP_VERSION_NUM);
|
||||
COMMON_LOGGER("System Ver. %d.%d.%d-%d\n", mVerData.cup.majorVersion, mVerData.cup.minorVersion, mVerData.cup.microVersion,
|
||||
mVerData.nup.majorVersion);
|
||||
COMMON_LOGGER("System Ver. %d.%d.%d-%d\n", s_VerData.cup.majorVersion, s_VerData.cup.minorVersion, s_VerData.cup.microVersion,
|
||||
s_VerData.nup.majorVersion);
|
||||
COMMON_LOGGER("System Region %s\n", nn::cfg::CTR::GetRegionCodeA3(region));
|
||||
COMMON_LOGGER("Serial Number %s\n", s_SerialNo);
|
||||
COMMON_LOGGER("Device ID %llu\n", infraDeviceId);
|
||||
@ -375,7 +382,7 @@ extern "C" void nnMain(void)
|
||||
flip,
|
||||
adapterState,
|
||||
BACKUP_VERSION_NUM,
|
||||
&mVerData,
|
||||
&s_VerData,
|
||||
batteryRemain,
|
||||
infraDeviceId,
|
||||
friendCode,
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
#define NN_CONSOLEBACKUP_H_
|
||||
|
||||
#include <nn.h>
|
||||
#include "VersionDetect.h"
|
||||
|
||||
namespace ConsoleBackup
|
||||
{
|
||||
@ -28,6 +29,7 @@ bool CanReadSerialNumber();
|
||||
void GetSerialNumber(u8** serial, size_t* size);
|
||||
void GetIvs(void** ivs, size_t* size);
|
||||
nn::Handle GetMcuHandle();
|
||||
void GetVersionData(common::VerDef* version);
|
||||
|
||||
const u32 CONSOLE_WIDTH = 38;
|
||||
const u32 CONSOLE_HEIGHT = 24;
|
||||
|
||||
@ -39,6 +39,7 @@
|
||||
#include "common_Types.h"
|
||||
#include "Aes_define.h"
|
||||
#include "PlayHistoryManager.h"
|
||||
#include "VersionDetect.h"
|
||||
|
||||
namespace ConsoleBackup
|
||||
{
|
||||
@ -456,6 +457,16 @@ void FinalizeExportThread()
|
||||
s_ExportThread.Finalize();
|
||||
}
|
||||
|
||||
void WriteVersionData()
|
||||
{
|
||||
COMMON_LOGGER("Export Version Data.\n");
|
||||
|
||||
common::VerDef versionData;
|
||||
GetVersionData(&versionData);
|
||||
|
||||
s_SdWriter.WriteBuf(common::VERSION_DATA_PATHNAME, &versionData, sizeof(common::VerDef));
|
||||
}
|
||||
|
||||
void WritePlayHistory()
|
||||
{
|
||||
common::PlayHistoryManager historyManager;
|
||||
@ -511,6 +522,9 @@ void ExportData()
|
||||
// RTCをSDに書き出す
|
||||
WriteMcuRtcData();
|
||||
|
||||
// バージョン情報をSDに書き出す
|
||||
WriteVersionData();
|
||||
|
||||
// NANDのセーブデータをSDに書き出す
|
||||
WriteSaveData();
|
||||
|
||||
|
||||
@ -79,6 +79,8 @@ size_t s_SizeofIvs;
|
||||
// IVSが読めるかどうか
|
||||
bool s_CanReadIvs = false;
|
||||
|
||||
// バージョン情報
|
||||
common::VerDef s_VerData;
|
||||
|
||||
} // namespace <unnamed>
|
||||
|
||||
@ -116,6 +118,11 @@ void GetIvs(void** ivs, size_t* size)
|
||||
*size = s_SizeofIvs;
|
||||
}
|
||||
|
||||
void GetVersionData(common::VerDef* version)
|
||||
{
|
||||
*version = s_VerData;
|
||||
}
|
||||
|
||||
void FinalizeAll()
|
||||
{
|
||||
common::Logger::GetLoggerInstance()->Finalize();
|
||||
@ -291,13 +298,12 @@ extern "C" void nnMain(void)
|
||||
u64 friendCode = nn::friends::CTR::FriendKeyToFriendCode(friendKey);
|
||||
|
||||
// バージョンの取得
|
||||
common::VerDef mVerData;
|
||||
common::GetSystemVersion(&mVerData, region);
|
||||
common::GetSystemVersion(&s_VerData, region);
|
||||
|
||||
// 情報出力
|
||||
COMMON_LOGGER("CTR Console Restore %s Rev.%s\n", __DATE__, RESTORE_VERSION_NUM);
|
||||
COMMON_LOGGER("System Ver. %d.%d.%d-%d\n", mVerData.cup.majorVersion, mVerData.cup.minorVersion, mVerData.cup.microVersion,
|
||||
mVerData.nup.majorVersion);
|
||||
COMMON_LOGGER("System Ver. %d.%d.%d-%d\n", s_VerData.cup.majorVersion, s_VerData.cup.minorVersion, s_VerData.cup.microVersion,
|
||||
s_VerData.nup.majorVersion);
|
||||
COMMON_LOGGER("System Region %s\n", nn::cfg::CTR::GetRegionCodeA3(region));
|
||||
COMMON_LOGGER("Serial Number %s\n", s_SerialNo);
|
||||
COMMON_LOGGER("Device ID %llu\n", infraDeviceId);
|
||||
@ -395,7 +401,7 @@ extern "C" void nnMain(void)
|
||||
flip,
|
||||
adapterState,
|
||||
RESTORE_VERSION_NUM,
|
||||
&mVerData,
|
||||
&s_VerData,
|
||||
batteryRemain,
|
||||
infraDeviceId,
|
||||
friendCode,
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
#define NN_CONSOLERESTORE_H_
|
||||
|
||||
#include <nn.h>
|
||||
#include "VersionDetect.h"
|
||||
|
||||
namespace ConsoleRestore
|
||||
{
|
||||
@ -28,6 +29,7 @@ bool CanReadSerialNumber();
|
||||
void GetSerialNumber(u8** serial, size_t* size);
|
||||
void GetIvs(void** ivs, size_t* size);
|
||||
nn::Handle GetMcuHandle();
|
||||
void GetVersionData(common::VerDef* version);
|
||||
|
||||
void FinalizeAll();
|
||||
|
||||
|
||||
@ -46,6 +46,7 @@
|
||||
#include "configLoader.h"
|
||||
#include "PlayHistoryManager.h"
|
||||
#include "FileChecker.h"
|
||||
#include "VersionDetect.h"
|
||||
|
||||
#include <string>
|
||||
#include <cstring>
|
||||
@ -85,6 +86,9 @@ bit8 s_IvsDecryptIv[AES_BLOCK_SIZE] =
|
||||
0x7d, 0x06, 0x85, 0xe6, 0xe7, 0xb6, 0x4e, 0xe9
|
||||
};
|
||||
|
||||
// SDカードに保存してあるバージョン情報
|
||||
common::VerDef s_SDVersionData;
|
||||
|
||||
}
|
||||
|
||||
CheckedNetworkSetting s_CurrentNetowrkSetting1;
|
||||
@ -706,9 +710,39 @@ void ImportNorData()
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void ReadVersionData()
|
||||
{
|
||||
nn::Result result;
|
||||
|
||||
size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize();
|
||||
NN_LOG("AllocatableSize = %d\n", bufSize);
|
||||
|
||||
void* buf = common::HeapManager::GetHeap()->Allocate(bufSize);
|
||||
if (buf != NULL)
|
||||
{
|
||||
common::SdReaderWriter sdReader;
|
||||
|
||||
size_t readSize;
|
||||
result = sdReader.ReadBuf(common::VERSION_DATA_PATHNAME, buf, bufSize, &readSize);
|
||||
if(result.IsSuccess())
|
||||
{
|
||||
// バージョン情報を保持する
|
||||
std::memcpy(&s_SDVersionData, buf, readSize);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
||||
|
||||
}
|
||||
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
||||
|
||||
common::HeapManager::GetHeap()->Free(buf);
|
||||
}
|
||||
else
|
||||
{
|
||||
COMMON_LOGGER("Failed Allocate Heap!!\n");
|
||||
}
|
||||
}
|
||||
void Cleanup()
|
||||
{
|
||||
nn::Result result;
|
||||
|
||||
@ -85,6 +85,9 @@ void ImportPlayHistory();
|
||||
|
||||
// cfgのハードウェア固有領域をcal値で初期化します
|
||||
void InitializeHardwareDependentSetting();
|
||||
|
||||
// SDカード上のバージョン情報を読みます
|
||||
void ReadVersionData();
|
||||
}
|
||||
|
||||
#endif /* IMPORTER_H_ */
|
||||
|
||||
@ -112,6 +112,11 @@ bool ExistsTryRestoreSameConsoleFile()
|
||||
return ExistsFile(EXISTS_TRY_RESTORE_SAME_CONSOLE);
|
||||
}
|
||||
|
||||
bool ExistsVersionData()
|
||||
{
|
||||
return ExistsFile(EXISTS_VERSION_DATA);
|
||||
}
|
||||
|
||||
void InitializeFileCheck()
|
||||
{
|
||||
for(u32 i = 0; i < EXISTS_MAX; i++)
|
||||
|
||||
@ -32,6 +32,7 @@ typedef enum FILE_EXISTS_CHECK
|
||||
EXISTS_RTC_SYNC_FINISHED,
|
||||
EXISTS_COUNTRY_LANGUAGE,
|
||||
EXISTS_TRY_RESTORE_SAME_CONSOLE,
|
||||
EXISTS_VERSION_DATA,
|
||||
EXISTS_MAX
|
||||
} FileExistsCheck;
|
||||
|
||||
@ -45,7 +46,8 @@ const wchar_t* const FILENAME_TABLE[EXISTS_MAX] =
|
||||
common::AP_SETTING_PATHNAME,
|
||||
common::RTC_SYNC_CHECK_PATHNAME,
|
||||
common::COUNTRY_SETTING_PATHNAME,
|
||||
common::TRY_RESTORE_SAME_CONSOLE_PATHNAME
|
||||
common::TRY_RESTORE_SAME_CONSOLE_PATHNAME,
|
||||
common::VERSION_DATA_PATHNAME
|
||||
};
|
||||
|
||||
bool CheckFileExists(const wchar_t* path);
|
||||
@ -58,6 +60,7 @@ bool ExistsAPSetting();
|
||||
bool ExistsRtcSyncFinishedFile();
|
||||
bool ExistsCountryLanguageFile();
|
||||
bool ExistsTryRestoreSameConsoleFile();
|
||||
bool ExistsVersionData();
|
||||
|
||||
void InitializeFileCheck();
|
||||
|
||||
|
||||
@ -53,6 +53,7 @@ const wchar_t* const RTC_SYNC_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/RtcSyn
|
||||
const wchar_t* const PLAYHISTORY_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistory.bin";
|
||||
const wchar_t* const PLAYHISTORY_COUNT_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistoryCount.bin";
|
||||
const wchar_t* const TOUCH_PANEL_CALIBRATION_PATHNAME = L"sdmc:/CTR_Console_Repair/tpCalibration.bin";
|
||||
const wchar_t* const VERSION_DATA_PATHNAME = L"sdmc:/CTR_Console_Repair/version.bin";
|
||||
|
||||
enum TWL_PATH_INDEX
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user