From 176c41ed91baba4236d0ebff657aae5af7dcb46d Mon Sep 17 00:00:00 2001 From: nakasima Date: Mon, 31 Mar 2008 13:16:14 +0000 Subject: [PATCH] =?UTF-8?q?=E5=AE=9F=E6=A9=9F=E3=81=A7=E3=81=AFNAND?= =?UTF-8?q?=E3=82=A2=E3=83=97=E3=83=AA=E3=81=AFNAND=E3=80=81=E3=82=AB?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=82=A2=E3=83=97=E3=83=AA=E3=81=AF=E3=82=AB?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=81=AE=E3=81=BF=E3=83=96=E3=83=BC=E3=83=88?= =?UTF-8?q?=E8=A8=B1=E5=8F=AF=E3=80=82=20=E3=82=B3=E3=83=A1=E3=83=B3?= =?UTF-8?q?=E3=83=88=E8=BF=BD=E5=8A=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1020 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c | 3 +++ build/libraries_sysmenu/sysmenu/ARM9/src/title.c | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c index b3db6b78..66e87f85 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c @@ -822,6 +822,9 @@ static void GenVA_VB_VD(void) MATHRandContext32 rnd; // 乱数を初期化 VBlankカウンタ値を種とする。 + // [TODO] プログラムがV周期に同期しているためVカウンタでは固定値になりやすい + // (特にダイレクトブート)。 + // 起動する度に変化するパラメータと組み合わせるべき。 MATH_InitRand32(&rnd, (u64)OS_GetVBlankCount()); s_cbData.vae = MATH_Rand32(&rnd, 0); diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c index ab5335bc..dd73cf97 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c @@ -773,6 +773,18 @@ static AuthResult SYSMi_AuthenticateTWLHeader( TitleProperty *pBootTitle ) } } OS_TPrintf("Authenticate : total %d ms.\n", OS_TicksToMilliSeconds(OS_GetTick() - start) ); + + // 製品or開発実機ではNANDアプリはNAND、カードアプリはカードからのみブート許可 + if ( ! SYSM_IsRunOnDebugger() ) + { + if ( ( (pBootTitle->flags.bootType == LAUNCHER_BOOTTYPE_NAND || + pBootTitle->flags.bootType == LAUNCHER_BOOTTYPE_TEMP) && !(head->s.titleID_Hi & TITLE_ID_HI_MEDIA_MASK) ) || + (pBootTitle->flags.bootType == LAUNCHER_BOOTTYPE_ROM && (head->s.titleID_Hi & TITLE_ID_HI_MEDIA_MASK) ) ) + { + return AUTH_RESULT_AUTHENTICATE_FAILED; + } + } + return AUTH_RESULT_SUCCEEDED; }