タイトルをインポートする前に NAM_DeleteTitleCompletely でタイトルを完全消去するように変更。

古いe-ticketが存在している状態で新しいESを使ってインポートしようとすると失敗する問題を回避するため。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1203 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
kamikawa 2008-04-21 12:22:12 +00:00
parent 6d59270df5
commit 90f3506aa6
3 changed files with 15 additions and 10 deletions

View File

@ -659,7 +659,7 @@ static void NAMUTi_DrawNandTree(s32 depth, const char *path)
FS_InitFile(&dir);
// 引数で指定されたディレクトリを開く
if (!FS_OpenDirectory(&dir, sCurrentFullPath, (FS_FILEMODE_R|FS_FILEMODE_W)))
if (!FS_OpenDirectory(&dir, sCurrentFullPath, (FS_FILEMODE_R)))
{
OS_TPrintf("%d Fail! FS_OpenDirectory(%s)\n", __LINE__, sCurrentFullPath);
return;

View File

@ -16,9 +16,6 @@
# $Author$
#----------------------------------------------------------------------------
SUBDIRS = $(ROOT)/build/demos/gx/UnitTours/DEMOLib
#----------------------------------------------------------------------------
#============================================================================
@ -92,7 +89,6 @@ LLIBRARIES += libes$(TWL_LIBSUFFIX).a \
libnamut$(TWL_LIBSUFFIX).a
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
include $(TWLSDK_ROOT)/build/buildtools/commondefs.gx.demolib
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe

View File

@ -625,7 +625,7 @@ void* ImportIndividuallyProcess2(void)
static BOOL ImportTad(char* file_name, TadWriteOption option)
{
NAMTadInfo tadInfo;
NAMTitleInfo titleInfo;
NAMTitleInfo titleInfoTmp;
char full_path[FS_ENTRY_LONGNAME_MAX+6];
OSThread thread;
BOOL ret = FALSE;
@ -641,17 +641,17 @@ static BOOL ImportTad(char* file_name, TadWriteOption option)
}
// NANDの情報を取得
if ( option != TAD_WRITE_OPTION_OVERWRITE && NAM_ReadTitleInfo(&titleInfo, tadInfo.titleInfo.titleId) == NAM_OK)
if ( option != TAD_WRITE_OPTION_OVERWRITE && NAM_ReadTitleInfo(&titleInfoTmp, tadInfo.titleInfo.titleId) == NAM_OK)
{
// NANDに既にインストールされているかどうか確認する
if (tadInfo.titleInfo.titleId == titleInfo.titleId)
if (tadInfo.titleInfo.titleId == titleInfoTmp.titleId)
{
switch (option)
{
case TAD_WRITE_OPTION_NONEXISTENT:
return TRUE;
case TAD_WRITE_OPTION_USER:
ShowTitleinfoDifference(&titleInfo, &tadInfo.titleInfo);
ShowTitleinfoDifference(&titleInfoTmp, &tadInfo.titleInfo);
kamiFontPrintfConsole(1, "The program has already existed.");
kamiFontPrintfConsole(1, "Do you overwrite ?\n");
@ -689,6 +689,15 @@ static BOOL ImportTad(char* file_name, TadWriteOption option)
}
}
// ESの仕様で古い e-ticket があると新しい e-ticket を使ったインポートができない
// 暫定対応として該当タイトルを完全削除してからインポートする
nam_result = NAM_DeleteTitleCompletely(tadInfo.titleInfo.titleId);
if ( nam_result != NAM_OK )
{
kamiFontPrintfConsole(CONSOLE_RED, "Fail! RetCode=%x\n", nam_result);
return FALSE;
}
// インポート開始フラグを立てる
sNowImport = TRUE;
@ -717,7 +726,7 @@ static BOOL ImportTad(char* file_name, TadWriteOption option)
}
else
{
kamiFontPrintfConsole(CONSOLE_RED, "Fail!\n");
kamiFontPrintfConsole(CONSOLE_RED, "Fail! RetCode=%x\n", nam_result);
}
// InstalledSoftBoxCount, FreeSoftBoxCount の値を現在のNANDの状態に合わせて更新します。