WiFiコネクションIDが仮の値であればWiFi設定は移行しないように(TWL修理に準拠)

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@301 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2011-06-02 01:54:23 +00:00
parent 35af526d26
commit 809c92427e

View File

@ -749,16 +749,37 @@ nn::Result ImportNorData()
&reinterpret_cast<common::NtrNorData*>(buf)->ntrConfig.ncd_ex);
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
// TWL WiFi設定
result = nn::cfg::nor::CTR::WriteTwlWifiSetting(0, reinterpret_cast<common::NtrNorData*>(buf)->TwlWiFiSetting,
common::TWL_WIFI_SETTING_SIZE);
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
// WiFiコネクションIDが仮の値であればWiFi設定は移行しない
// TWL修理に準拠している
u64 attestedUserId1;
u64 attestedUserId2;
const u32 WIFI_CONNECTION_USERID_OFFSET1 = 0xf0;
const u32 WIFI_CONNECTION_USERID_OFFSET2 = 0x1f0;
const u32 USERID_SIZE = 6;
const bit64 USERID_MASK = 0x07ffffffffffffff;
// NTR WiFi設定
result = nn::cfg::nor::CTR::WriteNtrWifiSetting(0, reinterpret_cast<common::NtrNorData*>(buf)->NtrWiFiSetting,
common::NTR_WIFI_SETTING_SIZE);
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
std::memcpy(&attestedUserId1,
&reinterpret_cast<common::NtrNorData*> (buf)->NtrWiFiSetting[WIFI_CONNECTION_USERID_OFFSET1],
USERID_SIZE);
attestedUserId1 &= USERID_MASK;
std::memcpy(&attestedUserId2,
&reinterpret_cast<common::NtrNorData*> (buf)->NtrWiFiSetting[WIFI_CONNECTION_USERID_OFFSET2],
USERID_SIZE);
attestedUserId2 &= USERID_MASK;
if (attestedUserId1 == attestedUserId2 && attestedUserId1 != 0)
{
// TWL WiFi設定
result = nn::cfg::nor::CTR::WriteTwlWifiSetting(0,
reinterpret_cast<common::NtrNorData*> (buf)->TwlWiFiSetting, common::TWL_WIFI_SETTING_SIZE);
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
// NTR WiFi設定
result = nn::cfg::nor::CTR::WriteNtrWifiSetting(0,
reinterpret_cast<common::NtrNorData*> (buf)->NtrWiFiSetting, common::NTR_WIFI_SETTING_SIZE);
COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result);
}
}
common::HeapManager::GetHeap()->Free(buf);