mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
trunk r371をマージ
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@372 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
887c9f869e
commit
ed0c6756d9
@ -68,6 +68,10 @@ common::Util s_HwUtility;
|
|||||||
|
|
||||||
} // namespace <unnamed>
|
} // namespace <unnamed>
|
||||||
|
|
||||||
|
extern "C" void nninitSetupDaemons(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
namespace ConsoleBackup{
|
namespace ConsoleBackup{
|
||||||
|
|
||||||
|
|
||||||
@ -88,14 +92,6 @@ extern "C" void nnMain(void)
|
|||||||
result = nn::hid::Initialize();
|
result = nn::hid::Initialize();
|
||||||
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
||||||
|
|
||||||
// ndmの初期化
|
|
||||||
result = nn::ndm::Initialize();
|
|
||||||
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
|
||||||
|
|
||||||
// 全デーモンの自律動作をacの自動接続も含めて止める
|
|
||||||
result = nn::ndm::SuspendScheduler();
|
|
||||||
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
|
||||||
|
|
||||||
// cfg の初期化
|
// cfg の初期化
|
||||||
nn::cfg::CTR::init::Initialize();
|
nn::cfg::CTR::init::Initialize();
|
||||||
nn::cfg::CTR::system::Initialize();
|
nn::cfg::CTR::system::Initialize();
|
||||||
@ -142,7 +138,7 @@ extern "C" void nnMain(void)
|
|||||||
nn::hid::PadStatus padStatus;
|
nn::hid::PadStatus padStatus;
|
||||||
|
|
||||||
// データの準備
|
// データの準備
|
||||||
s_HwUtility.Initialize();
|
s_HwUtility.InitializeForBackup();
|
||||||
common::HardwareStateManager manager(s_HwUtility);
|
common::HardwareStateManager manager(s_HwUtility);
|
||||||
|
|
||||||
// 情報出力
|
// 情報出力
|
||||||
@ -156,11 +152,6 @@ extern "C" void nnMain(void)
|
|||||||
COMMON_LOGGER("Serial Number %s\n", s_HwUtility.GetSerialNumber());
|
COMMON_LOGGER("Serial Number %s\n", s_HwUtility.GetSerialNumber());
|
||||||
COMMON_LOGGER("Device ID %llu\n", s_HwUtility.GetInfraDeviceId());
|
COMMON_LOGGER("Device ID %llu\n", s_HwUtility.GetInfraDeviceId());
|
||||||
COMMON_LOGGER("MAC Address %s\n", s_HwUtility.GetMacAddress());
|
COMMON_LOGGER("MAC Address %s\n", s_HwUtility.GetMacAddress());
|
||||||
COMMON_LOGGER("Friend Code %04u-%04u-%04u\n",
|
|
||||||
static_cast<u32>(s_HwUtility.GetFriendcode() / 100000000ULL % 10000ULL),
|
|
||||||
static_cast<u32>(s_HwUtility.GetFriendcode() / 10000ULL % 10000ULL),
|
|
||||||
static_cast<u32>(s_HwUtility.GetFriendcode() % 10000ULL) );
|
|
||||||
|
|
||||||
|
|
||||||
bool flip = false;
|
bool flip = false;
|
||||||
bool continueBackup = false;
|
bool continueBackup = false;
|
||||||
@ -252,6 +243,7 @@ extern "C" void nnMain(void)
|
|||||||
operationMessage,
|
operationMessage,
|
||||||
s_HwUtility.GetRegion(),
|
s_HwUtility.GetRegion(),
|
||||||
s_HwUtility.GetSerialNumber(),
|
s_HwUtility.GetSerialNumber(),
|
||||||
|
s_HwUtility.HasReadFriendCode(),
|
||||||
s_HwUtility.GetAgingCounter()
|
s_HwUtility.GetAgingCounter()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -13,20 +13,10 @@ SystemControlInfo:
|
|||||||
AppType : Application
|
AppType : Application
|
||||||
StackSize : 0x4000
|
StackSize : 0x4000
|
||||||
Dependency :
|
Dependency :
|
||||||
- gpio
|
|
||||||
- pdn
|
|
||||||
- spi
|
|
||||||
- i2c
|
|
||||||
- mcu
|
|
||||||
- ptm
|
|
||||||
- codec
|
- codec
|
||||||
- cfg
|
|
||||||
- hid
|
- hid
|
||||||
- gsp
|
- gsp
|
||||||
- friends
|
- nwm
|
||||||
- nim
|
|
||||||
- ac
|
|
||||||
- ndm
|
|
||||||
|
|
||||||
AccessControlInfo:
|
AccessControlInfo:
|
||||||
Priority : 16
|
Priority : 16
|
||||||
|
|||||||
@ -66,7 +66,7 @@ demo::RenderSystemDrawing s_RenderSystem;
|
|||||||
|
|
||||||
namespace ConsoleRestore{
|
namespace ConsoleRestore{
|
||||||
|
|
||||||
void FinalizeAll(common::HardwareStateManager& manager)
|
void FinalizeAll()
|
||||||
{
|
{
|
||||||
common::Logger::GetLoggerInstance()->Finalize();
|
common::Logger::GetLoggerInstance()->Finalize();
|
||||||
// アンマウント
|
// アンマウント
|
||||||
@ -74,7 +74,7 @@ void FinalizeAll(common::HardwareStateManager& manager)
|
|||||||
nn::fs::Unmount("sdmc:");
|
nn::fs::Unmount("sdmc:");
|
||||||
s_RenderSystem.Finalize();
|
s_RenderSystem.Finalize();
|
||||||
|
|
||||||
manager.Finalize();
|
s_HwUtility.FinalizeForRestore();
|
||||||
nn::ps::Finalize();
|
nn::ps::Finalize();
|
||||||
nn::ptm::CTR::FinalizeForSystemMenu();
|
nn::ptm::CTR::FinalizeForSystemMenu();
|
||||||
nn::cfg::CTR::system::Finalize();
|
nn::cfg::CTR::system::Finalize();
|
||||||
@ -160,7 +160,7 @@ extern "C" void nnMain(void)
|
|||||||
nn::hid::PadStatus padStatus;
|
nn::hid::PadStatus padStatus;
|
||||||
|
|
||||||
// データの準備
|
// データの準備
|
||||||
s_HwUtility.Initialize();
|
s_HwUtility.InitializeForRestore();
|
||||||
common::HardwareStateManager manager(s_HwUtility);
|
common::HardwareStateManager manager(s_HwUtility);
|
||||||
|
|
||||||
// 情報出力
|
// 情報出力
|
||||||
@ -290,6 +290,7 @@ extern "C" void nnMain(void)
|
|||||||
operationMessage,
|
operationMessage,
|
||||||
s_HwUtility.GetRegion(),
|
s_HwUtility.GetRegion(),
|
||||||
s_HwUtility.GetSerialNumber(),
|
s_HwUtility.GetSerialNumber(),
|
||||||
|
s_HwUtility.HasReadFriendCode(),
|
||||||
s_HwUtility.GetAgingCounter()
|
s_HwUtility.GetAgingCounter()
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -347,7 +348,7 @@ extern "C" void nnMain(void)
|
|||||||
// 電源長押しで終了
|
// 電源長押しで終了
|
||||||
if ( nn::applet::IsExpectedToCloseApplication())
|
if ( nn::applet::IsExpectedToCloseApplication())
|
||||||
{
|
{
|
||||||
FinalizeAll(manager);
|
FinalizeAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,14 +13,7 @@ SystemControlInfo:
|
|||||||
AppType : Application
|
AppType : Application
|
||||||
StackSize : 0x4000
|
StackSize : 0x4000
|
||||||
Dependency :
|
Dependency :
|
||||||
- gpio
|
|
||||||
- pdn
|
|
||||||
- spi
|
|
||||||
- i2c
|
|
||||||
- mcu
|
|
||||||
- ptm
|
|
||||||
- codec
|
- codec
|
||||||
- cfg
|
|
||||||
- hid
|
- hid
|
||||||
- gsp
|
- gsp
|
||||||
- friends
|
- friends
|
||||||
|
|||||||
@ -39,6 +39,7 @@ std::string s_AdapterState;
|
|||||||
u8 s_Progress;
|
u8 s_Progress;
|
||||||
::std::vector<std::string>* s_OperationMessage;
|
::std::vector<std::string>* s_OperationMessage;
|
||||||
u32 s_Counter;
|
u32 s_Counter;
|
||||||
|
bool s_ReadFriendCode;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,9 +71,12 @@ void SetTextWriterCore()
|
|||||||
GetTextWriter()->Printf("Serial No. %s\n", s_SerialNo);
|
GetTextWriter()->Printf("Serial No. %s\n", s_SerialNo);
|
||||||
GetTextWriter()->Printf("Device ID %llu\n", s_DeviceId);
|
GetTextWriter()->Printf("Device ID %llu\n", s_DeviceId);
|
||||||
GetTextWriter()->Printf("MAC Address %s\n", s_MacAddress);
|
GetTextWriter()->Printf("MAC Address %s\n", s_MacAddress);
|
||||||
GetTextWriter()->Printf("Friend Code %04u-%04u-%04u\n", static_cast<u32> (s_FriendCode
|
if (s_ReadFriendCode)
|
||||||
/ 100000000ULL % 10000ULL), static_cast<u32> (s_FriendCode / 10000ULL % 10000ULL),
|
{
|
||||||
|
GetTextWriter()->Printf("Friend Code %04u-%04u-%04u\n",
|
||||||
|
static_cast<u32>(s_FriendCode / 100000000ULL % 10000ULL), static_cast<u32> (s_FriendCode / 10000ULL % 10000ULL),
|
||||||
static_cast<u32> (s_FriendCode % 10000ULL));
|
static_cast<u32> (s_FriendCode % 10000ULL));
|
||||||
|
}
|
||||||
|
|
||||||
GetTextWriter()->Printf("Battery %d%%\n", s_BatteryRemain);
|
GetTextWriter()->Printf("Battery %d%%\n", s_BatteryRemain);
|
||||||
GetTextWriter()->Printf("AC Adapter %s\n", s_AdapterState.c_str());
|
GetTextWriter()->Printf("AC Adapter %s\n", s_AdapterState.c_str());
|
||||||
@ -111,6 +115,7 @@ void DrawSystemState
|
|||||||
::std::vector<std::string>& operationMessage,
|
::std::vector<std::string>& operationMessage,
|
||||||
nn::cfg::CTR::CfgRegionCode region,
|
nn::cfg::CTR::CfgRegionCode region,
|
||||||
u8* serialNo,
|
u8* serialNo,
|
||||||
|
bool readFriendCode,
|
||||||
u32 counter
|
u32 counter
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -129,6 +134,7 @@ void DrawSystemState
|
|||||||
std::memcpy(s_SerialNo, serialNo, sizeof(s_SerialNo));
|
std::memcpy(s_SerialNo, serialNo, sizeof(s_SerialNo));
|
||||||
s_SerialNo[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN] = '\0';
|
s_SerialNo[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN] = '\0';
|
||||||
s_OperationMessage = &operationMessage;
|
s_OperationMessage = &operationMessage;
|
||||||
|
s_ReadFriendCode = readFriendCode;
|
||||||
s_Counter = counter;
|
s_Counter = counter;
|
||||||
|
|
||||||
|
|
||||||
@ -170,7 +176,15 @@ void DrawSystemState
|
|||||||
// プログレスバー
|
// プログレスバー
|
||||||
fontwidth = 8;
|
fontwidth = 8;
|
||||||
fontheight = 14;
|
fontheight = 14;
|
||||||
|
if(readFriendCode)
|
||||||
|
{
|
||||||
line += 9;
|
line += 9;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
line += 8;
|
||||||
|
}
|
||||||
|
|
||||||
const u8 offset = 19;
|
const u8 offset = 19;
|
||||||
const u8 diff = 4;
|
const u8 diff = 4;
|
||||||
renderSystem.SetColor(0.f, 0.2f, 0.f);
|
renderSystem.SetColor(0.f, 0.2f, 0.f);
|
||||||
|
|||||||
@ -72,6 +72,7 @@ void DrawSystemState
|
|||||||
::std::vector<std::string>& operationMessage,
|
::std::vector<std::string>& operationMessage,
|
||||||
nn::cfg::CTR::CfgRegionCode region,
|
nn::cfg::CTR::CfgRegionCode region,
|
||||||
u8* s_SerialNo,
|
u8* s_SerialNo,
|
||||||
|
bool readFriendCode,
|
||||||
u32 counter
|
u32 counter
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -28,11 +28,6 @@ HardwareStateManager::~HardwareStateManager()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HardwareStateManager::Finalize()
|
|
||||||
{
|
|
||||||
m_pUtil->Finalize();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool HardwareStateManager::CanReadIvs()
|
bool HardwareStateManager::CanReadIvs()
|
||||||
{
|
{
|
||||||
return m_pUtil->CanReadIVS();
|
return m_pUtil->CanReadIVS();
|
||||||
|
|||||||
@ -29,8 +29,6 @@ public:
|
|||||||
explicit HardwareStateManager(Util& hwUtility);
|
explicit HardwareStateManager(Util& hwUtility);
|
||||||
virtual ~HardwareStateManager();
|
virtual ~HardwareStateManager();
|
||||||
|
|
||||||
void Finalize();
|
|
||||||
|
|
||||||
bool CanReadIvs();
|
bool CanReadIvs();
|
||||||
bool CanReadSerialNumber();
|
bool CanReadSerialNumber();
|
||||||
bool IsBatteryLower();
|
bool IsBatteryLower();
|
||||||
|
|||||||
@ -40,10 +40,9 @@ namespace common
|
|||||||
{
|
{
|
||||||
|
|
||||||
Util::Util() :
|
Util::Util() :
|
||||||
m_BatteryRemain(100), m_CanReadSerialNumber(false), m_CanReadIvs(false)
|
m_FriendCode(0), m_BatteryRemain(100), m_CanReadSerialNumber(false), m_CanReadIvs(false), m_HasReadFriendCode(false)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Util::~Util()
|
Util::~Util()
|
||||||
@ -51,11 +50,31 @@ Util::~Util()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Util::Initialize()
|
void Util::InitializeForBackup()
|
||||||
{
|
{
|
||||||
|
Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Util::InitializeForRestore()
|
||||||
|
{
|
||||||
|
Initialize();
|
||||||
|
|
||||||
// friendsの初期化
|
// friendsの初期化
|
||||||
nn::Result result = nn::friends::detail::Initialize();
|
nn::Result result = nn::friends::detail::Initialize();
|
||||||
|
|
||||||
|
// フレンドコードの取得
|
||||||
|
nn::friends::CTR::FriendKey friendKey;
|
||||||
|
result = nn::friends::CTR::GetMyFriendKey(&friendKey);
|
||||||
|
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
||||||
|
m_FriendCode = nn::friends::CTR::FriendKeyToFriendCode(friendKey);
|
||||||
|
|
||||||
|
m_HasReadFriendCode = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Util::Initialize()
|
||||||
|
{
|
||||||
|
nn::Result result;
|
||||||
|
|
||||||
// mcuの初期化
|
// mcuの初期化
|
||||||
nn::mcu::CTR::InitializeHwCheck(&m_McuSession);
|
nn::mcu::CTR::InitializeHwCheck(&m_McuSession);
|
||||||
mp_Mcu = new nn::mcu::CTR::HwCheck(m_McuSession);
|
mp_Mcu = new nn::mcu::CTR::HwCheck(m_McuSession);
|
||||||
@ -121,12 +140,6 @@ void Util::Initialize()
|
|||||||
mac.GetString(m_MacAddress);
|
mac.GetString(m_MacAddress);
|
||||||
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
||||||
|
|
||||||
// フレンドコードの取得
|
|
||||||
nn::friends::CTR::FriendKey friendKey;
|
|
||||||
result = nn::friends::CTR::GetMyFriendKey(&friendKey);
|
|
||||||
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
|
|
||||||
m_FriendCode = nn::friends::CTR::FriendKeyToFriendCode(friendKey);
|
|
||||||
|
|
||||||
// エージング回数の変更
|
// エージング回数の変更
|
||||||
SdMountManager::Mount();
|
SdMountManager::Mount();
|
||||||
const size_t BUF_SIZE = 1024;
|
const size_t BUF_SIZE = 1024;
|
||||||
@ -153,12 +166,22 @@ void Util::Initialize()
|
|||||||
}
|
}
|
||||||
|
|
||||||
SdMountManager::Unmount();
|
SdMountManager::Unmount();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Util::FinalizeForBackup()
|
||||||
|
{
|
||||||
|
Finalize();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Util::FinalizeForRestore()
|
||||||
|
{
|
||||||
|
nn::friends::detail::Finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Util::Finalize()
|
void Util::Finalize()
|
||||||
{
|
{
|
||||||
nn::mcu::CTR::FinalizeHwCheck(&m_McuSession);
|
nn::mcu::CTR::FinalizeHwCheck(&m_McuSession);
|
||||||
nn::friends::detail::Finalize();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// NULL終端されたシリアルナンバーを受け取る
|
// NULL終端されたシリアルナンバーを受け取る
|
||||||
@ -364,4 +387,9 @@ u32 Util::GetAgingCounter()
|
|||||||
return m_AgingCounter;
|
return m_AgingCounter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Util::HasReadFriendCode()
|
||||||
|
{
|
||||||
|
return m_HasReadFriendCode;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,8 +33,11 @@ public:
|
|||||||
Util();
|
Util();
|
||||||
virtual ~Util();
|
virtual ~Util();
|
||||||
|
|
||||||
void Initialize();
|
void InitializeForBackup();
|
||||||
void Finalize();
|
void InitializeForRestore();
|
||||||
|
|
||||||
|
void FinalizeForBackup();
|
||||||
|
void FinalizeForRestore();
|
||||||
|
|
||||||
// シリアルナンバーにモジュラス10 ウェイト3・1(M10W31)でチェックデジットを付加する
|
// シリアルナンバーにモジュラス10 ウェイト3・1(M10W31)でチェックデジットを付加する
|
||||||
static void AddCheckDigit(char* serial);
|
static void AddCheckDigit(char* serial);
|
||||||
@ -102,11 +105,16 @@ public:
|
|||||||
// バージョン情報を取得する
|
// バージョン情報を取得する
|
||||||
void GetVersionData(common::VerDef* version);
|
void GetVersionData(common::VerDef* version);
|
||||||
|
|
||||||
|
// フレンドコードを取得済みかどうか
|
||||||
|
bool HasReadFriendCode();
|
||||||
// エージング回数を取得する
|
// エージング回数を取得する
|
||||||
u32 GetAgingCounter();
|
u32 GetAgingCounter();
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void Initialize();
|
||||||
|
void Finalize();
|
||||||
|
|
||||||
NN_PADDING4;
|
NN_PADDING4;
|
||||||
// フレンドコード
|
// フレンドコード
|
||||||
u64 m_FriendCode;
|
u64 m_FriendCode;
|
||||||
@ -149,7 +157,10 @@ private:
|
|||||||
char8 m_MacAddress[nn::nwm::Mac::MAC_STRING_SIZE];
|
char8 m_MacAddress[nn::nwm::Mac::MAC_STRING_SIZE];
|
||||||
NN_PADDING3;
|
NN_PADDING3;
|
||||||
|
|
||||||
NN_PADDING4;
|
// FriendCodeを読んだかどうか
|
||||||
|
bool m_HasReadFriendCode;
|
||||||
|
NN_PADDING3;
|
||||||
|
|
||||||
// エージング回数
|
// エージング回数
|
||||||
u32 m_AgingCounter;
|
u32 m_AgingCounter;
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user