mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
・HWInfoWriterにおいて、HW情報とTWL本体設定データのデータリード順序に誤りがあったのを修正。
・リージョンを変更した時は、必ずTWL本体設定データの再ライトを行うよう変更。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@820 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
c63da87132
commit
f0e34f5fd5
@ -169,7 +169,7 @@ TitleProperty *SYSM_ReadParameters( void )
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// 本体設定データのリード
|
||||
// 本体設定データのリード(※必ずHWSecureInforリード後に実行すること。LanguageBitmapを判定に使うため)
|
||||
//-----------------------------------------------------
|
||||
{
|
||||
u8 *pBuffer = SYSM_Alloc( LCFG_READ_TEMP );
|
||||
|
||||
@ -217,6 +217,7 @@ static void WriteHWInfoFile( u8 region )
|
||||
(void)PutStringUTF16( ( MSG_X + 20 ) * 8, ( MSG_Y + 4 ) * 8, TXT_COLOR_RED, pMsgFailed );
|
||||
}
|
||||
|
||||
// リージョンの更新を言語コードに反映させる。(必ずセキュアファイルのライト後に実行)
|
||||
HWI_ModifyLanguage( region );
|
||||
|
||||
// メッセージを一定時間表示して消去
|
||||
|
||||
@ -101,7 +101,6 @@ HwiInitResult HWI_Init( void *(*pAlloc)( u32 ), void (*pFree)( void * ) )
|
||||
spFree = pFree;
|
||||
|
||||
ACSign_SetAllocFunc( pAlloc, pFree );
|
||||
ReadTWLSettings();
|
||||
result = ReadPrivateKey();
|
||||
ReadHWInfoFile();
|
||||
// VerifyHWInfo();
|
||||
@ -115,6 +114,8 @@ HwiInitResult HWI_Init( void *(*pAlloc)( u32 ), void (*pFree)( void * ) )
|
||||
OS_TPrintf( "HWID Signature check succeeded.\n" );
|
||||
}
|
||||
}
|
||||
// ※LanguageBitmapを判定で使用するので、必ずReadHWInfoの後で実行する必要がある。
|
||||
ReadTWLSettings();
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -123,10 +124,10 @@ HwiInitResult HWI_Init( void *(*pAlloc)( u32 ), void (*pFree)( void * ) )
|
||||
// TWL設定データのリード
|
||||
static void ReadTWLSettings( void )
|
||||
{
|
||||
u8 *pBuffer = spAlloc( sizeof(LCFGTWLSettingsData) * 2 );
|
||||
u8 *pBuffer = spAlloc( LCFG_READ_TEMP );
|
||||
s_isReadTSD = FALSE;
|
||||
if( pBuffer ) {
|
||||
s_isReadTSD = LCFGi_TSD_ReadSettings( (u8 (*)[ sizeof(LCFGTWLSettingsData) * 2 ] )pBuffer );
|
||||
s_isReadTSD = LCFG_ReadTWLSettings( (u8 (*)[ LCFG_READ_TEMP ] )pBuffer );
|
||||
spFree( pBuffer );
|
||||
}
|
||||
if( s_isReadTSD ) {
|
||||
@ -244,7 +245,8 @@ static BOOL VerifyData( const u8 *pTgt, const u8 *pOrg, u32 len )
|
||||
*---------------------------------------------------------------------------*/
|
||||
void HWI_ModifyLanguage( u8 region )
|
||||
{
|
||||
u32 langBitmap = s_langBitmapList[ region ];
|
||||
#pragma unused( region )
|
||||
u32 langBitmap = LCFG_THW_GetValidLanguageBitmap();
|
||||
u8 nowLanguage = LCFG_TSD_GetLanguage();
|
||||
|
||||
// TSDが読み込めていないなら、何もせずリターン
|
||||
@ -262,13 +264,25 @@ void HWI_ModifyLanguage( u8 region )
|
||||
}
|
||||
}
|
||||
LCFG_TSD_SetLanguage( (LCFGTWLLangCode)i );
|
||||
LCFG_TSD_SetFlagCountry( FALSE ); // ※ついでに国コードもクリアしておく。
|
||||
LCFG_TSD_SetCountry( LCFG_TWL_COUNTRY_UNDEFINED );
|
||||
LCFGi_TSD_WriteSettings();
|
||||
|
||||
OS_TPrintf( "Language Change \"%s\" -> \"%s\"\n",
|
||||
strLanguage[ nowLanguage ], strLanguage[ LCFG_TSD_GetLanguage() ] );
|
||||
}
|
||||
|
||||
// 国コードもクリアしておく。
|
||||
LCFG_TSD_SetFlagCountry( FALSE );
|
||||
LCFG_TSD_SetCountry( LCFG_TWL_COUNTRY_UNDEFINED );
|
||||
|
||||
// ペアレンタルコントロール情報もクリアしておく
|
||||
|
||||
|
||||
// regionが変わった場合は、LANGUAGE_BITMAPも必ず変わるので、それをNTR側に反映させるために必ずTWL設定データの書き込みも行う。
|
||||
{
|
||||
u8 *pBuffer = spAlloc( LCFG_WRITE_TEMP );
|
||||
if( pBuffer ) {
|
||||
(void)LCFG_WriteTWLSettings( (u8 (*)[ LCFG_WRITE_TEMP ] )pBuffer );
|
||||
spFree( pBuffer );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user