From 7540f4657362d2c3cfb86b890f7eb7161fecbc38 Mon Sep 17 00:00:00 2001 From: N2614 Date: Fri, 3 Jun 2011 05:09:21 +0000 Subject: [PATCH] =?UTF-8?q?trunk=20r301=20WiFi=E3=82=B3=E3=83=8D=E3=82=AF?= =?UTF-8?q?=E3=82=B7=E3=83=A7=E3=83=B3ID=E3=81=8C=E4=BB=AE=E3=81=AE?= =?UTF-8?q?=E5=80=A4=E3=81=A7=E3=81=82=E3=82=8C=E3=81=B0WiFi=E8=A8=AD?= =?UTF-8?q?=E5=AE=9A=E3=81=AF=E7=A7=BB=E8=A1=8C=E3=81=97=E3=81=AA=E3=81=84?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB(TWL=E4=BF=AE=E7=90=86=E3=81=AB?= =?UTF-8?q?=E6=BA=96=E6=8B=A0)=20=E3=82=92=E3=83=9E=E3=83=BC=E3=82=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@308 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../ConsoleRestore/Importer.cpp | 37 +++++++++++++++---- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/branches/0thNUP_No_NUP/ConsoleDataMigration/ConsoleRestore/Importer.cpp b/branches/0thNUP_No_NUP/ConsoleDataMigration/ConsoleRestore/Importer.cpp index 3cac185..aa6cd46 100644 --- a/branches/0thNUP_No_NUP/ConsoleDataMigration/ConsoleRestore/Importer.cpp +++ b/branches/0thNUP_No_NUP/ConsoleDataMigration/ConsoleRestore/Importer.cpp @@ -735,16 +735,37 @@ nn::Result ImportNorData() &reinterpret_cast(buf)->ntrConfig.ncd_ex); COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); - // TWL WiFi設定 - result = nn::cfg::nor::CTR::WriteTwlWifiSetting(0, reinterpret_cast(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(buf)->NtrWiFiSetting, - common::NTR_WIFI_SETTING_SIZE); - COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + std::memcpy(&attestedUserId1, + &reinterpret_cast (buf)->NtrWiFiSetting[WIFI_CONNECTION_USERID_OFFSET1], + USERID_SIZE); + attestedUserId1 &= USERID_MASK; + std::memcpy(&attestedUserId2, + &reinterpret_cast (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 (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 (buf)->NtrWiFiSetting, common::NTR_WIFI_SETTING_SIZE); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + } } common::HeapManager::GetHeap()->Free(buf);