From bd9814674dd85fb4e4e835f66d716edf9fd280f7 Mon Sep 17 00:00:00 2001 From: N2614 Date: Tue, 10 Apr 2012 02:58:30 +0000 Subject: [PATCH] =?UTF-8?q?=E3=81=BB=E3=81=BC=E6=97=A5=E3=81=AEBGDL?= =?UTF-8?q?=E4=B8=AD=E3=81=AB=E5=AE=9F=E8=A1=8C=E3=81=97=E3=81=9F=E5=A0=B4?= =?UTF-8?q?=E5=90=88=E3=82=A2=E3=83=97=E3=83=AA=E3=81=8C=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=81=A8=E5=88=A4=E5=AE=9A=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=81=A6=E3=81=97=E3=81=BE=E3=81=86=E3=81=AE=E3=81=A7am::GetPr?= =?UTF-8?q?ogramInfos=E3=81=A7=E3=82=A2=E3=83=97=E3=83=AA=E3=81=AE?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E3=82=92=E7=A2=BA=E8=AA=8D=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB?= 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@686 385bec56-5757-e545-9c3a-d8741f4650f1 --- trunk/PersonalDataEraser/main.cpp | 54 +++++++++++++------------------ 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/trunk/PersonalDataEraser/main.cpp b/trunk/PersonalDataEraser/main.cpp index d095e43..9defc2a 100644 --- a/trunk/PersonalDataEraser/main.cpp +++ b/trunk/PersonalDataEraser/main.cpp @@ -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;