From 0acd75c66d6d46577e81e063fcebce3aa4c8b025 Mon Sep 17 00:00:00 2001 From: yoshida_teruhisa Date: Mon, 2 Jun 2008 05:55:37 +0000 Subject: [PATCH] =?UTF-8?q?4NA*=E3=81=A8=E3=81=97=E3=81=A6=E9=96=8B?= =?UTF-8?q?=E7=99=BA=E4=B8=AD=E3=81=AEUIG=E3=83=A9=E3=83=B3=E3=83=81?= =?UTF-8?q?=E3=83=A3=E3=83=BC=E3=81=B8=E3=81=AE=E6=9A=AB=E5=AE=9A=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C?= 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@1557 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/libraries_sysmenu/sysmenu/ARM7/src/setAESKey.c | 7 ++++++- .../libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c | 7 ++++++- build/libraries_sysmenu/sysmenu/ARM9/src/title.c | 12 ++++++++++-- .../sysmenu/common/include/internal_api.h | 3 +++ 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/build/libraries_sysmenu/sysmenu/ARM7/src/setAESKey.c b/build/libraries_sysmenu/sysmenu/ARM7/src/setAESKey.c index 215a7fba..cb232a67 100644 --- a/build/libraries_sysmenu/sysmenu/ARM7/src/setAESKey.c +++ b/build/libraries_sysmenu/sysmenu/ARM7/src/setAESKey.c @@ -104,7 +104,12 @@ void SYSMi_SetAESKeysForSignJPEG( ROM_Header *pROMH, BOOL *pIsClearSlotB, BOOL * { void *pAESKey; if( ( pROMH->s.titleID_Hi & TITLE_ID_HI_SECURE_FLAG_MASK ) && - ( 0 == STD_CompareNString( (const char *)&pROMH->s.titleID_Lo[ 1 ], "ANH", 3 ) ) ) { + ( ( 0 == STD_CompareNString( (const char *)&pROMH->s.titleID_Lo[ 1 ], "ANH", 3 ) ) +#ifdef DEV_UIG_LAUNCHER + || ( ( 0 == STD_CompareNString( (const char *)&pROMH->s.titleID_Lo[ 1 ], "AN4", 3 ) ) && ( SCFG_GetBondingOption() != 0 ) ) +#endif + ) + ) { // for Launcher pAESKey = ( SCFG_GetBondingOption() == SCFG_OP_PRODUCT ) ? &( OSi_GetFromFirmAddr()->rsa_pubkey[ 3 ][ 0x30 ] ) : (void *)dev_jpegEncodeKeyForLauncher; diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c index c2533f95..73269888 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c @@ -513,6 +513,8 @@ static OSTitleId SYSMi_getTitleIdOfMachineSettings( void ) int getNum; int validNum = 0; NAMTitleId *pTitleIDList = NULL; + char machine_setting_code[4]; + ROM_Header_Short *header = ( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF; // インストールされているタイトルの取得 getNum = NAM_GetNumTitles(); @@ -523,10 +525,13 @@ static OSTitleId SYSMi_getTitleIdOfMachineSettings( void ) } (void)NAM_GetTitleList( pTitleIDList, (u32)getNum ); + // 本体情報のTitleIDの4バイト目はランチャーのTitleIDの4バイト目と同じ + STD_TSNPrintf( machine_setting_code, 4, "BN%c", header->titleID_Lo[3]); + // 取得したタイトルに本体情報のIDがあるかチェック for( l = 0; l < getNum; l++ ) { char *code = ((char *)&pTitleIDList[l]) + 1; - if( 0 == STD_CompareNString( code, "BNH", 3 ) ) + if( 0 == STD_CompareNString( code, machine_setting_code, 3 ) ) { ret = (OSTitleId)pTitleIDList[l]; break; diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c index 16b734e6..899aef4b 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c @@ -960,7 +960,11 @@ static AuthResult SYSMi_AuthenticateHeaderWithSign( TitleProperty *pBootTitle, R prev = OS_GetTick(); hi = head->s.titleID_Hi; // Launcherは専用の鍵を使う - if( 0 == STD_CompareNString( &gamecode[1], "ANH", 3 ) ) + if( ( 0 == STD_CompareNString( &gamecode[1], "ANH", 3 ) ) +#ifdef DEV_UIG_LAUNCHER + || ( ( 0 == STD_CompareNString( &gamecode[1], "AN4", 3 ) ) && ( SCFG_GetBondingOption() != 0 ) ) +#endif + ) { keynum = LAUNCHER_KEY_INDEX; }else @@ -1705,7 +1709,11 @@ static void SYSMi_makeTitleIdList( void ) // ランチャーはリストに入れない gamecode = (char *)&(pe_hs->titleID); - if( 0 == STD_CompareNString( &gamecode[1], "ANH", 3 ) ) + if( ( 0 == STD_CompareNString( &gamecode[1], "ANH", 3 ) ) +#ifdef DEV_UIG_LAUNCHER + || ( ( 0 == STD_CompareNString( &gamecode[1], "AN4", 3 ) ) && ( SCFG_GetBondingOption() != 0 ) ) +#endif + ) { continue; } diff --git a/build/libraries_sysmenu/sysmenu/common/include/internal_api.h b/build/libraries_sysmenu/sysmenu/common/include/internal_api.h index c1972796..e7fa2cdd 100644 --- a/build/libraries_sysmenu/sysmenu/common/include/internal_api.h +++ b/build/libraries_sysmenu/sysmenu/common/include/internal_api.h @@ -52,6 +52,9 @@ void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle ); #endif // SDK_ARM9 +// UIGランチャーの開発版(4NA*)を開発用CPUに乗ったREDランチャーから +// 起動するためのスイッチ +#define DEV_UIG_LAUNCHER #ifdef SDK_ARM9 //-------------------------------------------------------