mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
1.HWNormalInfoのカメラ情報書き込みに対応。
2.Nandのshared2ディレクトリをパーティション1から0に移動。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@904 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
261bdc04c7
commit
863e8fb0b8
@ -28,15 +28,35 @@
|
|||||||
定数定義
|
定数定義
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
// クリーンアップ実行時に
|
// 擬似フォーマットで消去しないタイトルを
|
||||||
|
// TitleProperty (TitleID Hiの下位16bit)のビットで指定します。
|
||||||
|
// どれか1つでもビットが立っていれば消去の対象から外します。
|
||||||
|
#define PROTECT_TITLE_PROPERTY (TITLE_ID_HI_APP_TYPE_MASK)
|
||||||
|
|
||||||
|
#define DIRECTORY_DEPTH_MAX 16 // ディレクトリの深さの最大(NANDの正規構成としては最大6)
|
||||||
|
#define TITLE_ID_HI_SIZE 8
|
||||||
|
#define TITLE_LIST_MAX 256
|
||||||
|
#define CLEAR_DATA_SIZE 256
|
||||||
|
|
||||||
|
// 擬似フォーマット実行時に
|
||||||
// 指定ディレクトリ以下は全て消去されます。
|
// 指定ディレクトリ以下は全て消去されます。
|
||||||
// 指定ディレクトリ自体は残ります
|
// 指定ディレクトリ自体は残ります。
|
||||||
static const char* sDeleteDirectoryList[] =
|
static const char* sDeleteDirectoryList[] =
|
||||||
{
|
{
|
||||||
"nand:/tmp"
|
"nand:/tmp"
|
||||||
};
|
};
|
||||||
|
|
||||||
// クリーンアップ実行時に
|
// 擬似フォーマット実行時に
|
||||||
|
// 指定ディレクトリ以下のNonProtectedなタイトルは全て消去されます。
|
||||||
|
// 指定ディレクトリ自体は残ります。
|
||||||
|
static const char* sDeleteNonProtecedDirectoryList[] =
|
||||||
|
{
|
||||||
|
"nand:/title",
|
||||||
|
"nand:/ticket",
|
||||||
|
"nand:/import"
|
||||||
|
};
|
||||||
|
|
||||||
|
// 擬似フォーマット実行時に
|
||||||
// 指定ファイルは0xffでFillされます。
|
// 指定ファイルは0xffでFillされます。
|
||||||
static const char* sFillFileList[] =
|
static const char* sFillFileList[] =
|
||||||
{
|
{
|
||||||
@ -44,19 +64,6 @@ static const char* sFillFileList[] =
|
|||||||
"nand:/shared1/TWLCFG1.dat"
|
"nand:/shared1/TWLCFG1.dat"
|
||||||
};
|
};
|
||||||
|
|
||||||
// クリーンアップで消去しないタイトルを
|
|
||||||
// TitleProperty (TitleID Hiの下位16bit)のビットで指定します。
|
|
||||||
// どれか1つでもビットが立っていれば消去の対象から外します。
|
|
||||||
#define PROTECT_TITLE_PROPERTY (TITLE_ID_HI_APP_TYPE_MASK)
|
|
||||||
|
|
||||||
#define DIRECTORY_DEPTH_MAX 16 // ディレクトリの深さの最大(NANDの正規構成としては最大6)
|
|
||||||
#define TITLE_PATH "nand:/title"
|
|
||||||
#define TICKET_PATH "nand:/ticket"
|
|
||||||
#define IMPORT_PATH "nand:/import"
|
|
||||||
#define TITLE_ID_HI_SIZE 8
|
|
||||||
#define TITLE_LIST_MAX 256
|
|
||||||
#define CLEAR_DATA_SIZE 256
|
|
||||||
|
|
||||||
static const u8 sClearData[CLEAR_DATA_SIZE] =
|
static const u8 sClearData[CLEAR_DATA_SIZE] =
|
||||||
{
|
{
|
||||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
@ -102,7 +109,7 @@ static void PrintFile(s32 depth, const char* path);
|
|||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: NAMUT_Format
|
Name: NAMUT_Format
|
||||||
|
|
||||||
Description: NANDのクリーンアップ
|
Description: NANDの擬似フォーマット
|
||||||
(システム系の必要なファイルのみを残し他を消去します)
|
(システム系の必要なファイルのみを残し他を消去します)
|
||||||
|
|
||||||
Arguments: None
|
Arguments: None
|
||||||
@ -121,7 +128,7 @@ BOOL NAMUT_Format(void)
|
|||||||
ret &= NAMUTi_ClearSavedataAll(TRUE);
|
ret &= NAMUTi_ClearSavedataAll(TRUE);
|
||||||
|
|
||||||
// 指定ファイルを0xffでクリアします
|
// 指定ファイルを0xffでクリアします
|
||||||
for (i=0; i<sizeof(sFillFileList)/sizeof(char*); i++)
|
for (i=0; i<sizeof(sFillFileList)/sizeof(sFillFileList[0]); i++)
|
||||||
{
|
{
|
||||||
ret &= NAMUTi_FillFile(sFillFileList[i]);
|
ret &= NAMUTi_FillFile(sFillFileList[i]);
|
||||||
}
|
}
|
||||||
@ -206,10 +213,12 @@ static BOOL NAMUTi_DeleteNandDirectory(const char *path)
|
|||||||
static BOOL NAMUTi_DeleteNonprotectedTitle(void)
|
static BOOL NAMUTi_DeleteNonprotectedTitle(void)
|
||||||
{
|
{
|
||||||
BOOL ret = TRUE;
|
BOOL ret = TRUE;
|
||||||
|
int i;
|
||||||
|
|
||||||
ret &= NAMUTi_DeleteNonprotectedTitleEntity(TITLE_PATH);
|
for (i=0; i<sizeof(sDeleteNonProtecedDirectoryList)/sizeof(sDeleteNonProtecedDirectoryList[0]); i++)
|
||||||
ret &= NAMUTi_DeleteNonprotectedTitleEntity(TICKET_PATH);
|
{
|
||||||
ret &= NAMUTi_DeleteNonprotectedTitleEntity(IMPORT_PATH);
|
ret &= NAMUTi_DeleteNonprotectedTitleEntity(sDeleteNonProtecedDirectoryList[i]);
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -295,22 +295,53 @@ void HWI_ModifyLanguage( u8 region )
|
|||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
BOOL HWI_WriteHWNormalInfoFile( void )
|
BOOL HWI_WriteHWNormalInfoFile( void )
|
||||||
{
|
{
|
||||||
BOOL isWrite = TRUE;
|
const char* CAMERA_VOLATILE_INFO_PATH = "rom:/data/camera_volatile_info.bin";
|
||||||
|
LCFGTWLHWNormalInfo Info;
|
||||||
|
FSFile file;
|
||||||
LCFGReadResult result;
|
LCFGReadResult result;
|
||||||
|
BOOL open_is_ok;
|
||||||
|
BOOL read_is_ok;
|
||||||
|
|
||||||
result = LCFGi_THW_ReadNormalInfo();
|
result = LCFGi_THW_ReadNormalInfo();
|
||||||
if( result != LCFG_TSF_READ_RESULT_SUCCEEDED ) {
|
if( result != LCFG_TSF_READ_RESULT_SUCCEEDED ) {
|
||||||
if( !LCFGi_THW_RecoveryNormalInfo( result ) ) {
|
if( !LCFGi_THW_RecoveryNormalInfo( result ) ) {
|
||||||
OS_TPrintf( "HW Normal Info Recovery failed.\n" );
|
OS_TPrintf( "HW Normal Info Recovery failed.\n" );
|
||||||
isWrite = FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( isWrite &&
|
|
||||||
!LCFGi_THW_WriteNormalInfo() ) {
|
Info.rtcAdjust = LCFG_THW_GetRTCAdjust();
|
||||||
OS_TPrintf( "HW Normal Info Write failed.\n" );
|
|
||||||
|
// ROMファイルオープン(カメラ情報)
|
||||||
|
FS_InitFile(&file);
|
||||||
|
open_is_ok = FS_OpenFile(&file, CAMERA_VOLATILE_INFO_PATH);
|
||||||
|
if (!open_is_ok)
|
||||||
|
{
|
||||||
|
OS_Printf("FS_OpenFile(\"%s\") ... ERROR!\n", CAMERA_VOLATILE_INFO_PATH);
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return isWrite;
|
// ROMファイルリード
|
||||||
|
read_is_ok = FS_ReadFile( &file, Info.camera, (s32)sizeof( Info.camera ) );
|
||||||
|
if (!read_is_ok)
|
||||||
|
{
|
||||||
|
OS_Printf("FS_ReadFile(\"%s\") ... ERROR!\n", CAMERA_VOLATILE_INFO_PATH);
|
||||||
|
FS_CloseFile(&file);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
FS_FlushFile(&file);
|
||||||
|
|
||||||
|
// ROMファイルクローズ
|
||||||
|
FS_CloseFile(&file);
|
||||||
|
|
||||||
|
if (!LCFGi_THW_WriteNormalInfoDirect( &Info ))
|
||||||
|
{
|
||||||
|
OS_TPrintf( "HW Normal Info Write failed.\n" );
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
|
|||||||
@ -74,6 +74,7 @@ static const char *s_pDirList0[] = {
|
|||||||
(const char *)"nand:/title",
|
(const char *)"nand:/title",
|
||||||
(const char *)"nand:/ticket",
|
(const char *)"nand:/ticket",
|
||||||
(const char *)"nand:/shared1",
|
(const char *)"nand:/shared1",
|
||||||
|
(const char *)"nand:/shared2",
|
||||||
(const char *)"nand:/import",
|
(const char *)"nand:/import",
|
||||||
(const char *)"nand:/tmp",
|
(const char *)"nand:/tmp",
|
||||||
NULL,
|
NULL,
|
||||||
@ -81,9 +82,8 @@ static const char *s_pDirList0[] = {
|
|||||||
|
|
||||||
static const char *s_pDirList1[] = {
|
static const char *s_pDirList1[] = {
|
||||||
(const char *)"nand2:/photo",
|
(const char *)"nand2:/photo",
|
||||||
(const char *)"nand2:/shared2",
|
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
“à•”ŠÖ<EFBFBD>”<EFBFBD>錾
|
“à•”ŠÖ<EFBFBD>”<EFBFBD>錾
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user