mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
サルベージライブラリの年齢判定と国判定に対応
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@789 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
758c7b6702
commit
04f49ef7be
@ -23,6 +23,9 @@
|
|||||||
#include <nn/act/act_ResultPrivate.h>
|
#include <nn/act/act_ResultPrivate.h>
|
||||||
#include <nn/actslv/actslv_Api.h>
|
#include <nn/actslv/actslv_Api.h>
|
||||||
#include <nn/fs/fs_ApiSysSaveData.h>
|
#include <nn/fs/fs_ApiSysSaveData.h>
|
||||||
|
#include <nn/cfg/CTR/cfg_ApiSys.h>
|
||||||
|
|
||||||
|
#include "AgeChecker.h"
|
||||||
|
|
||||||
namespace ConsoleRestore
|
namespace ConsoleRestore
|
||||||
{
|
{
|
||||||
@ -142,12 +145,42 @@ nn::Result ActCompleter::ExecImpl()
|
|||||||
// サルベージ終了をシステムに通知
|
// サルベージ終了をシステムに通知
|
||||||
s_EndEvent.Signal();
|
s_EndEvent.Signal();
|
||||||
|
|
||||||
if(nn::cfg::GetRegion() == nn::cfg::CFG_REGION_AMERICA)
|
// COPPA判定とPIN判定の準備
|
||||||
|
nn::cfg::CfgRegionCode region = nn::cfg::GetRegion();
|
||||||
|
u8 age = nn::act::GetAgeAtSalvage();
|
||||||
|
nn::cfg::CfgCountryCode country;
|
||||||
|
|
||||||
|
NN_UTIL_RETURN_IF_FAILED_2(
|
||||||
|
nn::act::GetCountryCodeAtSalvage(reinterpret_cast<u32*>(&country)),
|
||||||
|
nn::act::FinalizeAdmin(),
|
||||||
|
common::FinalizeNetwork());
|
||||||
|
|
||||||
|
AgeChecker ageChecker;
|
||||||
|
|
||||||
|
if(region == nn::cfg::CFG_REGION_AMERICA)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(ageChecker.IsCoppaRequired(age, region, country))
|
||||||
|
{
|
||||||
|
// COPPA対象の年齢なら復元する
|
||||||
|
s_ApprovalId = nn::act::GetSalvagedApprovalId();
|
||||||
|
NN_UTIL_RETURN_IF_FAILED_2(
|
||||||
|
SaveApprovalId(),
|
||||||
|
nn::act::FinalizeAdmin(),
|
||||||
|
common::FinalizeNetwork());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PIN必須ならフラグを立てる
|
||||||
|
if(ageChecker.IsPinRestrictionRequired(age, region, country))
|
||||||
{
|
{
|
||||||
// COPPA対象の年齢なら復元する
|
|
||||||
s_ApprovalId = nn::act::GetSalvagedApprovalId();
|
|
||||||
NN_UTIL_RETURN_IF_FAILED_2(
|
NN_UTIL_RETURN_IF_FAILED_2(
|
||||||
SaveApprovalId(),
|
nn::cfg::CTR::system::SetForceParentalControlFlag(true),
|
||||||
|
nn::act::FinalizeAdmin(),
|
||||||
|
common::FinalizeNetwork());
|
||||||
|
|
||||||
|
NN_UTIL_RETURN_IF_FAILED_2(
|
||||||
|
nn::cfg::CTR::system::FlushConfig(),
|
||||||
nn::act::FinalizeAdmin(),
|
nn::act::FinalizeAdmin(),
|
||||||
common::FinalizeNetwork());
|
common::FinalizeNetwork());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,7 +47,6 @@ bool AgeChecker::IsPinRestrictionRequired(u32 age, CfgRegionCode region, CfgCoun
|
|||||||
{
|
{
|
||||||
return age < PIN_REQUIRED_AGE_IN_AUSTRALIA_AND_NEW_ZEALAND;
|
return age < PIN_REQUIRED_AGE_IN_AUSTRALIA_AND_NEW_ZEALAND;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
return age < PIN_REQUIRED_AGE_IN_EUROPE;
|
return age < PIN_REQUIRED_AGE_IN_EUROPE;
|
||||||
|
|||||||
@ -34,6 +34,7 @@ SOURCES[] =
|
|||||||
RegionIdModifier.cpp
|
RegionIdModifier.cpp
|
||||||
PreinstallImporter.cpp
|
PreinstallImporter.cpp
|
||||||
ActCompleter.cpp
|
ActCompleter.cpp
|
||||||
|
AgeChecker.cpp
|
||||||
../common/Util.cpp
|
../common/Util.cpp
|
||||||
../common/DrawSystemState.cpp
|
../common/DrawSystemState.cpp
|
||||||
../common/FileTransfer.cpp
|
../common/FileTransfer.cpp
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user