mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
SDカードに、ゲームカードのセキュア領域のデータをダンプするコードを追加
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/branches/20110608_CardToSD@3015 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
83ceea11e5
commit
670d718e3e
@ -23,6 +23,7 @@
|
|||||||
#include <sysmenu/util_recoveryFile.h>
|
#include <sysmenu/util_recoveryFile.h>
|
||||||
#include "internal_api.h"
|
#include "internal_api.h"
|
||||||
#include "fs_wram.h"
|
#include "fs_wram.h"
|
||||||
|
#include <nitro/fs.h>
|
||||||
#include <sysmenu/errorLog.h>
|
#include <sysmenu/errorLog.h>
|
||||||
|
|
||||||
// define data-----------------------------------------------------------------
|
// define data-----------------------------------------------------------------
|
||||||
@ -369,6 +370,72 @@ static inline u16 SCFG_GetBondingOption(void)
|
|||||||
//
|
//
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
|
static BOOL DumpSD(char *filename, u32 src, s32 size)
|
||||||
|
{
|
||||||
|
FSFile dest;
|
||||||
|
|
||||||
|
FS_InitFile( &dest );
|
||||||
|
|
||||||
|
if ( !FS_CreateFile( filename, FS_PERMIT_W | FS_PERMIT_R ) )
|
||||||
|
{
|
||||||
|
OS_TPrintf("*** DumpSD Error : Create File\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !FS_OpenFileEx( &dest, filename, FS_FILEMODE_W ) )
|
||||||
|
{
|
||||||
|
OS_TPrintf("*** DumpSD Error : Open File\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
FS_WriteFile( &dest, (void *)src, size );
|
||||||
|
if ( !FS_CloseFile( &dest ) )
|
||||||
|
{
|
||||||
|
OS_TPrintf("*** DumpSD Error : Close File\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void WriteCardDataToSD( void )
|
||||||
|
{
|
||||||
|
char filename[64];
|
||||||
|
const ROM_Header_Short *pROMH = (ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BAK;
|
||||||
|
FSPathInfo info;
|
||||||
|
|
||||||
|
OS_TPrintf("----------------- Dump Start\n");
|
||||||
|
|
||||||
|
if( !FS_GetPathInfo("sdmc:/", &info) )
|
||||||
|
{
|
||||||
|
OS_TPrintf("Error Code : %d\n", FS_GetArchiveResultCode("sdmc:/"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FS_Init( FS_DMA_NOT_USE );
|
||||||
|
|
||||||
|
STD_TSNPrintf( filename, 64, "sdmc:/%c%c%c%c_secure1.dmp",
|
||||||
|
pROMH->game_code[0],pROMH->game_code[1],pROMH->game_code[2],pROMH->game_code[3] );
|
||||||
|
|
||||||
|
// Secure1のダンプ
|
||||||
|
DumpSD( filename, SYSM_CARD_NTR_SECURE_BUF, 0x4000);
|
||||||
|
|
||||||
|
// Twl対応カードであればSecure2のダンプも行う
|
||||||
|
if( pROMH->platform_code & PLATFORM_CODE_FLAG_TWL )
|
||||||
|
{
|
||||||
|
MI_CpuClear8(filename, sizeof(filename));
|
||||||
|
STD_TSNPrintf( filename, 64, "sdmc:/%c%c%c%c_secure2.dmp",
|
||||||
|
pROMH->game_code[0],pROMH->game_code[1],pROMH->game_code[2],pROMH->game_code[3] );
|
||||||
|
|
||||||
|
// Secure2のダンプ
|
||||||
|
DumpSD( filename, SYSM_CARD_TWL_SECURE_BUF, 0x4000);
|
||||||
|
}
|
||||||
|
|
||||||
|
OS_TPrintf("----------------- Dump End\n");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// カードタイトルの取得
|
// カードタイトルの取得
|
||||||
TitleProperty *SYSM_GetCardTitleList( BOOL *changed )
|
TitleProperty *SYSM_GetCardTitleList( BOOL *changed )
|
||||||
{
|
{
|
||||||
@ -387,6 +454,8 @@ TitleProperty *SYSM_GetCardTitleList( BOOL *changed )
|
|||||||
|
|
||||||
MI_CpuClear32( pTitleList_Card, sizeof(TitleProperty) );
|
MI_CpuClear32( pTitleList_Card, sizeof(TitleProperty) );
|
||||||
|
|
||||||
|
WriteCardDataToSD();
|
||||||
|
|
||||||
(void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
(void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
||||||
|
|
||||||
// ROMヘッダバッファのコピー
|
// ROMヘッダバッファのコピー
|
||||||
@ -2203,7 +2272,7 @@ static void SYSMi_makeTitleIdList( void )
|
|||||||
list->sameMakerFlag[count/8] |= (u8)(0x1 << (count%8));
|
list->sameMakerFlag[count/8] |= (u8)(0x1 << (count%8));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ジャンプ可能フラグON or ブートアプリ自身 or ジャンプ元アプリ ならばジャンプ可能
|
// ジャンプ可能フラグON or ブートアプリ自身 or ジャンプ元アプリ ならばジャンプ可能.
|
||||||
if( pe_hs->permit_landing_normal_jump || hs->titleID == id ||
|
if( pe_hs->permit_landing_normal_jump || hs->titleID == id ||
|
||||||
( SYSMi_GetWork()->flags.arm7.isValidLauncherParam && SYSM_GetLauncherParamBody()->v1.bootTitleID && ( SYSM_GetLauncherParamBody()->v1.prevTitleID == id ) )
|
( SYSMi_GetWork()->flags.arm7.isValidLauncherParam && SYSM_GetLauncherParamBody()->v1.bootTitleID && ( SYSM_GetLauncherParamBody()->v1.prevTitleID == id ) )
|
||||||
)
|
)
|
||||||
|
|||||||
@ -152,7 +152,7 @@ Property
|
|||||||
#
|
#
|
||||||
# SDCardAccess: sd card access control [TRUE/FALSE]
|
# SDCardAccess: sd card access control [TRUE/FALSE]
|
||||||
#
|
#
|
||||||
#SDCardAccess TRUE
|
SDCardAccess TRUE
|
||||||
|
|
||||||
#
|
#
|
||||||
# DisableDebug :最終ROMでは、アプリジャンプされた際にデバッグできないようにTRUEにする必要があります。
|
# DisableDebug :最終ROMでは、アプリジャンプされた際にデバッグできないようにTRUEにする必要があります。
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user