mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
ほぼ日のBGDL中に実行した場合アプリが存在すると判定されてしまうのでam::GetProgramInfosでアプリの存在を確認するように
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@686 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
e5d5e566aa
commit
bd9814674d
@ -51,7 +51,6 @@
|
||||
|
||||
namespace {
|
||||
const char* const NAND_TWL_ARCHIVE_NAME = "twln:";
|
||||
const char* const NAND_TWL_KENJ_DIR_PATHNAME = "twln:/title/00030004/4b454e4a";
|
||||
const char* const NAND_TWL_KENJ_SAVE_DATA_PATHNAME = "twln:/title/00030004/4b454e4a/data/Public.sav";
|
||||
const nn::ProgramId NAND_TWL_KENJ_PROGRAM_ID = 0x000480044b454e4aULL;
|
||||
|
||||
@ -187,6 +186,11 @@ namespace {
|
||||
{
|
||||
nn::Result result;
|
||||
|
||||
// アプリが存在するかどうか確かめる
|
||||
nn::am::ProgramInfo info;
|
||||
result = nn::am::GetProgramInfos(&info, nn::fs::MEDIA_TYPE_NAND, &NAND_TWL_KENJ_PROGRAM_ID, 1);
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
|
||||
// TWl領域をマウントする
|
||||
result = nn::fs::MountSpecialArchive( NAND_TWL_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_TWL_NAND );
|
||||
if( result.IsFailure() )
|
||||
@ -195,42 +199,30 @@ namespace {
|
||||
return result;
|
||||
}
|
||||
|
||||
// アプリが存在するかどうか確かめる
|
||||
nn::fs::Directory dir;
|
||||
if( dir.TryInitialize(NAND_TWL_KENJ_DIR_PATHNAME).IsFailure() )
|
||||
// アプリ存在フラグを上げる
|
||||
s_IsAppExist = true;
|
||||
|
||||
// ほぼ日健康手帳のセーブデータを乱数で埋める
|
||||
result = FillRandamDataToKENJSaveData();
|
||||
if (result.IsFailure())
|
||||
{
|
||||
dir.Finalize();
|
||||
nn::fs::Unmount("twln:");
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
// アプリ存在フラグを上げる
|
||||
s_IsAppExist = true;
|
||||
|
||||
// ここでfinalizeしておかないと、DeleteProgramでフェータルになる。
|
||||
dir.Finalize();
|
||||
|
||||
// ほぼ日健康手帳のセーブデータを乱数で埋める
|
||||
result = FillRandamDataToKENJSaveData();
|
||||
if( result.IsFailure() )
|
||||
{
|
||||
nn::fs::Unmount( "twln:" );
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
s_IsSaveDataCleanSuccess = true;
|
||||
}
|
||||
|
||||
// ほぼ日健康手帳を消す
|
||||
result = nn::am::DeleteUserProgram(nn::fs::MEDIA_TYPE_NAND, NAND_TWL_KENJ_PROGRAM_ID);
|
||||
if( result.IsSuccess() )
|
||||
{
|
||||
s_IsAppDeleteSuccess = true;
|
||||
}
|
||||
|
||||
UTIL_RETURN_IF_NOT_AM_NOT_FOUND(result);
|
||||
s_IsSaveDataCleanSuccess = true;
|
||||
}
|
||||
|
||||
// ほぼ日健康手帳を消す
|
||||
result = nn::am::DeleteUserProgram(nn::fs::MEDIA_TYPE_NAND, NAND_TWL_KENJ_PROGRAM_ID);
|
||||
if (result.IsSuccess())
|
||||
{
|
||||
s_IsAppDeleteSuccess = true;
|
||||
}
|
||||
|
||||
UTIL_RETURN_IF_NOT_AM_NOT_FOUND(result);
|
||||
|
||||
nn::fs::Unmount( "twln:" );
|
||||
|
||||
return result;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user