mirror of
https://github.com/rvtr/TwlToolsRED.git
synced 2025-10-31 06:41:18 -04:00
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@24 7061adef-622a-194b-ae81-725974e89856
This commit is contained in:
parent
74963c2299
commit
fa44493071
@ -22,6 +22,7 @@
|
||||
#include "font.h"
|
||||
#include "text.h"
|
||||
#include "mprintf.h"
|
||||
#include "my_fs_util.h"
|
||||
|
||||
|
||||
/*
|
||||
@ -111,7 +112,12 @@ BOOL MiyaBackupTWLSettings(const char *path)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
writtenSize = FS_WriteFile(&f, (void *)&cfg_data, (s32)sizeof(LCFGTWLSettingsData) );
|
||||
#else
|
||||
writtenSize = my_fs_crypto_write(&f, (void *)&cfg_data, (s32)sizeof(LCFGTWLSettingsData) );
|
||||
#endif
|
||||
|
||||
if( writtenSize != sizeof(LCFGTWLSettingsData) ) {
|
||||
fsResult = FS_GetArchiveResultCode(path);
|
||||
mprintf("Failed write file 1 - HWNormal Info.:%d\n", fsResult );
|
||||
@ -156,7 +162,12 @@ BOOL MiyaRestoreTWLSettings(const char *path)
|
||||
mprintf("Failed open file 2 - HWNormal Info.:%d\n", fsResult );
|
||||
return FALSE;
|
||||
}
|
||||
#if 0
|
||||
readSize = FS_ReadFile(&f, (void *)&cfg_data, (s32)sizeof(LCFGTWLSettingsData) );
|
||||
#else
|
||||
readSize = my_fs_crypto_read(&f, (void *)&cfg_data, (s32)sizeof(LCFGTWLSettingsData) );
|
||||
#endif
|
||||
|
||||
if( readSize != sizeof(LCFGTWLSettingsData) ) {
|
||||
fsResult = FS_GetArchiveResultCode(path);
|
||||
mprintf("Failed read file 2 - HWNormal Info.:%d\n", fsResult );
|
||||
@ -170,16 +181,11 @@ BOOL MiyaRestoreTWLSettings(const char *path)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ŽÀ<C5BD>Û‚É<E2809A>‘‚«<E2809A>o‚µ */
|
||||
if( FALSE == WriteTWLSettings( &cfg_data ) ) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -194,8 +200,8 @@ BOOL MiyaReadHWSecureInfo( LCFGTWLHWSecureInfo *Info )
|
||||
|
||||
retval = LCFGi_THW_ReadSecureInfo();
|
||||
if( retval != LCFG_TSF_READ_RESULT_SUCCEEDED ) {
|
||||
OS_TPrintf( "HW Normal Info read failed.\n" );
|
||||
mprintf( "HW Normal Info read failed.\n" );
|
||||
OS_TPrintf( "HW Secure Info read failed.\n" );
|
||||
mprintf( "HW Secure Info read failed.\n" );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -238,160 +244,3 @@ BOOL MiyaReadHWNormalInfo( LCFGTWLHWNormalInfo *Info )
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: HWI_WriteHWNormalInfoFile
|
||||
|
||||
Description: HWノーマルInfoファイルのライト
|
||||
|
||||
Arguments:
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
static BOOL MiyaWriteHWNormalInfoFile( LCFGTWLHWNormalInfo *Info )
|
||||
{
|
||||
/*
|
||||
|
||||
typedef struct LCFGTWLHWNormalInfo {
|
||||
u8 rtcAdjust; // RTC調整値
|
||||
u8 rsv[ 3 ];
|
||||
u8 movableUniqueID[ LCFG_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN ]; // 移行可能なユニークID
|
||||
} LCFGTWLHWNormalInfo; // 20byte
|
||||
*/
|
||||
|
||||
if (!LCFGi_THW_WriteNormalInfoDirect( Info )) {
|
||||
OS_TPrintf( "HW Normal Info Write failed.\n" );
|
||||
mprintf( "HW Normal Info Write failed.\n" );
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
BOOL MiyaBackupHWNormalInfo(const char *path)
|
||||
{
|
||||
FSFile f;
|
||||
BOOL bSuccess;
|
||||
FSResult fsResult;
|
||||
s32 writtenSize;
|
||||
|
||||
LCFGTWLHWNormalInfo info;
|
||||
|
||||
if( FALSE == MiyaReadHWNormalInfo( &info ) ) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
FS_InitFile(&f);
|
||||
|
||||
FS_CreateFileAuto(path, (FS_PERMIT_R|FS_PERMIT_W));
|
||||
bSuccess = FS_OpenFileEx(&f, path, (FS_FILEMODE_R|FS_FILEMODE_W));
|
||||
if (bSuccess == FALSE) {
|
||||
fsResult = FS_GetArchiveResultCode(path);
|
||||
mprintf("Failed open file 1 - HWNormal Info.:%d\n", fsResult );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
writtenSize = FS_WriteFile(&f, (void *)&info, (s32)sizeof(LCFGTWLHWNormalInfo) );
|
||||
if( writtenSize != sizeof(LCFGTWLHWNormalInfo) ) {
|
||||
fsResult = FS_GetArchiveResultCode(path);
|
||||
mprintf("Failed write file 1 - HWNormal Info.:%d\n", fsResult );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bSuccess = FS_CloseFile(&f);
|
||||
if (bSuccess == FALSE) {
|
||||
fsResult = FS_GetArchiveResultCode(path);
|
||||
mprintf("Failed close file 1 - HWNormal Info.:%d\n", fsResult );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL MiyaReadHWNormalInfo_From_SD(const char *path, LCFGTWLHWNormalInfo *info)
|
||||
{
|
||||
FSFile f;
|
||||
BOOL bSuccess;
|
||||
FSResult fsResult;
|
||||
s32 readSize;
|
||||
|
||||
if( info == NULL ) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
FS_InitFile(&f);
|
||||
bSuccess = FS_OpenFileEx(&f, path, FS_FILEMODE_R);
|
||||
if (bSuccess == FALSE) {
|
||||
fsResult = FS_GetArchiveResultCode(path);
|
||||
mprintf("Failed open file 2 - HWNormal Info.:%d\n", fsResult );
|
||||
return FALSE;
|
||||
}
|
||||
readSize = FS_ReadFile(&f, (void *)info, (s32)sizeof(LCFGTWLHWNormalInfo) );
|
||||
if( readSize != sizeof(LCFGTWLHWNormalInfo) ) {
|
||||
fsResult = FS_GetArchiveResultCode(path);
|
||||
mprintf("Failed read file 2 - HWNormal Info.:%d\n", fsResult );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bSuccess = FS_CloseFile(&f);
|
||||
if (bSuccess == FALSE) {
|
||||
fsResult = FS_GetArchiveResultCode(path);
|
||||
mprintf("Failed close file 2 - HWNormal Info.:%d\n", fsResult );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL MiyaRestoreHWNormalInfo(const char *path)
|
||||
{
|
||||
FSFile f;
|
||||
BOOL bSuccess;
|
||||
FSResult fsResult;
|
||||
s32 readSize;
|
||||
|
||||
LCFGTWLHWNormalInfo info;
|
||||
LCFGTWLHWNormalInfo info_temp;
|
||||
|
||||
FS_InitFile(&f);
|
||||
bSuccess = FS_OpenFileEx(&f, path, FS_FILEMODE_R);
|
||||
if (bSuccess == FALSE) {
|
||||
fsResult = FS_GetArchiveResultCode(path);
|
||||
mprintf("Failed open file 2 - HWNormal Info.:%d\n", fsResult );
|
||||
return FALSE;
|
||||
}
|
||||
readSize = FS_ReadFile(&f, (void *)&info, (s32)sizeof(LCFGTWLHWNormalInfo) );
|
||||
if( readSize != sizeof(LCFGTWLHWNormalInfo) ) {
|
||||
fsResult = FS_GetArchiveResultCode(path);
|
||||
mprintf("Failed read file 2 - HWNormal Info.:%d\n", fsResult );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bSuccess = FS_CloseFile(&f);
|
||||
if (bSuccess == FALSE) {
|
||||
fsResult = FS_GetArchiveResultCode(path);
|
||||
mprintf("Failed close file 2 - HWNormal Info.:%d\n", fsResult );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/* RTCの補正値だけはそのまま使う */
|
||||
if( FALSE == MiyaReadHWNormalInfo( &info_temp ) ) {
|
||||
return FALSE;
|
||||
}
|
||||
info.rtcAdjust = info_temp.rtcAdjust;
|
||||
|
||||
/* 実際に書き出し */
|
||||
if( FALSE == MiyaWriteHWNormalInfoFile( &info ) ) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
#include <twl.h>
|
||||
#include <twl/na.h>
|
||||
#include "menu_version.h"
|
||||
|
||||
|
||||
@ -28,6 +29,8 @@ typedef struct SystemMenuVersion {
|
||||
u16 str[ TWL_SYSMENU_VER_STR_LEN / sizeof(u16) ];
|
||||
} SystemMenuVersion;
|
||||
|
||||
static u8 WorkForNA[NA_VERSION_DATA_WORK_SIZE];
|
||||
|
||||
BOOL Read_SystemMenuVersion(u16 *major, u16 *minor, u32 *ts)
|
||||
{
|
||||
|
||||
@ -44,6 +47,13 @@ BOOL Read_SystemMenuVersion(u16 *major, u16 *minor, u32 *ts)
|
||||
}
|
||||
// STD_MemSet((void *)s_version, 0, sizeof(TWL_SYSMENU_VER_STR_LEN);
|
||||
STD_MemSet((void *)str_ver, 0, TWL_SYSMENU_VER_STR_LEN);
|
||||
|
||||
|
||||
if (!NA_LoadVersionDataArchive(WorkForNA, NA_VERSION_DATA_WORK_SIZE)) {
|
||||
OS_TPrintf("NA load error\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
FS_InitFile(&file);
|
||||
|
||||
@ -83,6 +93,8 @@ BOOL Read_SystemMenuVersion(u16 *major, u16 *minor, u32 *ts)
|
||||
}
|
||||
|
||||
FS_CloseFile(&file);
|
||||
|
||||
(void)NA_UnloadVersionDataArchive();
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
#include <twl.h>
|
||||
#include <nitro/crypto.h>
|
||||
#include "text.h"
|
||||
#include "mprintf.h"
|
||||
#include "my_fs_util.h"
|
||||
@ -1115,6 +1116,155 @@ static void Path_Buffers_Clean( char *path_src_dir, char *path_src_full,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
void CRYPTO_RC4Encrypt(CRYPTORC4Context* context, const void* in, u32 length, void* out);
|
||||
|
||||
context - CRYPTO_RC4Init() で予め鍵を設定した CRYPTORC4Context 型の構造体を指定します。
|
||||
in - RC4 アルゴリズムによる暗号化/復号を行う対象のデータへのポインタを指定します。
|
||||
length - in で指定したデータの長さを指定します。
|
||||
out - 暗号化/復号を行った結果を格納する先のポインタを指定します。
|
||||
|
||||
*/
|
||||
static u32 my_fs_GetStringLength(char* str)
|
||||
{
|
||||
u32 i;
|
||||
for (i = 0; ; i++) {
|
||||
if (*(str++) == '\0') {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static char *my_fs_key = "twl-repair-tool";
|
||||
|
||||
|
||||
s32 my_fs_crypto_read(FSFile *f, void *ptr, s32 size)
|
||||
{
|
||||
s32 readSize;
|
||||
CRYPTORC4FastContext context;
|
||||
u8 *crypt_buf;
|
||||
|
||||
crypt_buf = (u8 *)OS_Alloc( (u32)size );
|
||||
if(crypt_buf == NULL ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
readSize = FS_ReadFile(f, (void *)crypt_buf, size);
|
||||
if( readSize != size ) {
|
||||
/* error! */
|
||||
goto end;
|
||||
}
|
||||
CRYPTO_RC4FastInit(&context, my_fs_key, my_fs_GetStringLength(my_fs_key));
|
||||
CRYPTO_RC4FastEncrypt(&context, (char *)crypt_buf, (u32)size, ptr);
|
||||
|
||||
end:
|
||||
if( crypt_buf != NULL ) {
|
||||
OS_Free(crypt_buf);
|
||||
}
|
||||
return readSize;
|
||||
}
|
||||
|
||||
s32 my_fs_crypto_write(FSFile *f, void *ptr, s32 size)
|
||||
{
|
||||
s32 writtenSize;
|
||||
CRYPTORC4FastContext context;
|
||||
u8 *crypt_buf;
|
||||
|
||||
crypt_buf = (u8 *)OS_Alloc( (u32)size );
|
||||
if(crypt_buf == NULL ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
CRYPTO_RC4FastInit(&context, my_fs_key, my_fs_GetStringLength(my_fs_key));
|
||||
CRYPTO_RC4FastEncrypt(&context, (char *)ptr, (u32)size, crypt_buf);
|
||||
|
||||
writtenSize = FS_WriteFile(f, crypt_buf, size);
|
||||
if( writtenSize != size ) {
|
||||
/* error */
|
||||
}
|
||||
|
||||
if( crypt_buf != NULL ) {
|
||||
OS_Free(crypt_buf);
|
||||
}
|
||||
return writtenSize;
|
||||
}
|
||||
|
||||
BOOL MydataLoadDecrypt(const char *path, void *pBuffer, int size, FSFile *log_fd)
|
||||
{
|
||||
FSFile f;
|
||||
BOOL bSuccess;
|
||||
// u32 fileSize;
|
||||
s32 readSize = 0;
|
||||
|
||||
FS_InitFile(&f);
|
||||
|
||||
bSuccess = FS_OpenFileEx(&f, path, FS_FILEMODE_R);
|
||||
if( ! bSuccess ) {
|
||||
miya_log_fprintf(log_fd, "Failed Open File %s\n",__FUNCTION__);
|
||||
miya_log_fprintf(log_fd, " path=%s\n", path );
|
||||
miya_log_fprintf(log_fd, " res=%s\n", my_fs_util_get_fs_result_word( FS_GetArchiveResultCode(path) ));
|
||||
return FALSE;
|
||||
}
|
||||
readSize = my_fs_crypto_read(&f, pBuffer, (s32)size);
|
||||
if( readSize != size ) {
|
||||
miya_log_fprintf(log_fd, "Failed Read File: %s\n",path);
|
||||
}
|
||||
bSuccess = FS_CloseFile(&f);
|
||||
if( ! bSuccess ) {
|
||||
miya_log_fprintf(log_fd, "Failed Close File\n");
|
||||
miya_log_fprintf(log_fd, " %s\n", my_fs_util_get_fs_result_word( FS_GetArchiveResultCode(path)));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL MydataSaveEncrypt(const char *path, void *pData, int size, FSFile *log_fd)
|
||||
{
|
||||
#pragma unused(log_fd)
|
||||
FSFile f;
|
||||
// BOOL flag;
|
||||
BOOL bSuccess;
|
||||
FSResult res;
|
||||
FSResult fsResult;
|
||||
s32 writtenSize;
|
||||
|
||||
FS_InitFile(&f);
|
||||
|
||||
bSuccess = FS_OpenFileEx(&f, path, FS_FILEMODE_W);
|
||||
if( ! bSuccess ) {
|
||||
FS_CreateFileAuto( path, FS_PERMIT_W|FS_PERMIT_R);
|
||||
bSuccess = FS_OpenFileEx(&f, path , FS_FILEMODE_W );
|
||||
if( ! bSuccess ) {
|
||||
res = FS_GetArchiveResultCode( path );
|
||||
miya_log_fprintf(NULL, "%s file open error %s\n", __FUNCTION__,path );
|
||||
miya_log_fprintf(NULL, " Failed open file:%s\n", my_fs_util_get_fs_result_word( res ));
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
fsResult = FS_SetFileLength(&f, 0);
|
||||
if( fsResult != FS_RESULT_SUCCESS ) {
|
||||
}
|
||||
|
||||
writtenSize = my_fs_crypto_write(&f, pData, (s32)size);
|
||||
if( writtenSize != size ) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
FS_FlushFile(&f);
|
||||
bSuccess = FS_CloseFile(&f);
|
||||
if( bSuccess ) {
|
||||
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL MydataLoad(const char *path, void *pBuffer, int size, FSFile *log_fd)
|
||||
{
|
||||
FSFile f;
|
||||
@ -1176,6 +1326,7 @@ BOOL MydataSave(const char *path, void *pData, int size, FSFile *log_fd)
|
||||
|
||||
writtenSize = FS_WriteFile(&f, pData, (s32)size);
|
||||
if( writtenSize != size ) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
FS_FlushFile(&f);
|
||||
|
||||
@ -17,6 +17,8 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
char *my_fs_util_get_fs_result_word( FSResult res );
|
||||
s32 my_fs_crypto_write(FSFile *f, void *ptr, s32 size);
|
||||
s32 my_fs_crypto_read(FSFile *f, void *ptr, s32 size);
|
||||
|
||||
int find_title_save_data(MY_DIR_ENTRY_LIST **headp, const char *path_dst,
|
||||
const char *path_src, int *save_dir_info, char *log_file_name , int level);
|
||||
@ -38,6 +40,10 @@ BOOL SDCardValidation(void);
|
||||
BOOL CheckShopRecord(u8 region, FSFile *log_fd);
|
||||
BOOL MydataSave(const char *path, void *pData, int size, FSFile *log_fd);
|
||||
BOOL MydataLoad(const char *path, void *pBuffer, int size, FSFile *log_fd);
|
||||
|
||||
BOOL MydataLoadDecrypt(const char *path, void *pBuffer, int size, FSFile *log_fd);
|
||||
BOOL MydataSaveEncrypt(const char *path, void *pData, int size, FSFile *log_fd);
|
||||
|
||||
void GetDirEntryList( MY_DIR_ENTRY_LIST *head, u64 **pBuffer, int *size);
|
||||
BOOL TitleIDSave(const char *path, u64 *pData, int count, FSFile *log_fd);
|
||||
BOOL TitleIDLoad(const char *path, u64 **pBuffer, int *count, FSFile *log_fd);
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
#include "text.h"
|
||||
#include "mprintf.h"
|
||||
#include "mynvram.h"
|
||||
#include "my_fs_util.h"
|
||||
|
||||
|
||||
#define NVRAM_PERSONAL_DATA_OFFSET 0x20
|
||||
@ -18,8 +19,6 @@
|
||||
#define NVRAM_INTERNAL_BUF_SIZE 0x100
|
||||
static u8 nvram_buffer[NVRAM_INTERNAL_BUF_SIZE] ATTRIBUTE_ALIGN(32);
|
||||
|
||||
//static char nor_file_path[FS_FILE_NAME_MAX];
|
||||
|
||||
|
||||
static BOOL my_nvram_read( u32 offset, u32 size, void *buf)
|
||||
{
|
||||
@ -138,7 +137,7 @@ BOOL nvram_backup(char *path)
|
||||
{
|
||||
BOOL bSuccess;
|
||||
FSFile nor_fd;
|
||||
u16 offset;
|
||||
u32 offset;
|
||||
u32 vol;
|
||||
int len;
|
||||
#define BUF_SIZE 0x100
|
||||
@ -177,13 +176,19 @@ BOOL nvram_backup(char *path)
|
||||
offset *= 8;
|
||||
offset -= 0xA00;
|
||||
|
||||
OS_TPrintf( "nvram %d: offset = 0x%02x\n",__LINE__, offset);
|
||||
|
||||
for( vol = 0 ; vol < NVRAM_PERSONAL_DATA_SIZE ; vol += BUF_SIZE ) {
|
||||
OS_TPrintf(".");
|
||||
if( TRUE != my_nvram_read( offset+vol , BUF_SIZE, (void* )nor_buf) ) {
|
||||
OS_TPrintf( "nvram error: %s %s %d\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
}
|
||||
else {
|
||||
OS_TPrintf( " --: offset = 0x%02x\n", offset+vol);
|
||||
#if 0
|
||||
len = FS_WriteFile(&nor_fd, nor_buf, BUF_SIZE);
|
||||
#else
|
||||
len = my_fs_crypto_write(&nor_fd, nor_buf, BUF_SIZE);
|
||||
#endif
|
||||
if (len != BUF_SIZE)
|
||||
{
|
||||
OS_TPrintf("FS_WriteFile() failed.");
|
||||
@ -205,7 +210,7 @@ BOOL nvram_restore(char *path)
|
||||
{
|
||||
BOOL bSuccess;
|
||||
FSFile nor_fd;
|
||||
u16 offset;
|
||||
u32 offset;
|
||||
u32 vol;
|
||||
int len;
|
||||
// char nor_file_path[FS_FILE_NAME_MAX];
|
||||
@ -241,7 +246,11 @@ BOOL nvram_restore(char *path)
|
||||
for( vol = 0 ; vol < NVRAM_PERSONAL_DATA_SIZE ; vol += BUF_SIZE ) {
|
||||
OS_TPrintf(".");
|
||||
|
||||
#if 0
|
||||
len = FS_ReadFile(&nor_fd, nor_buf, BUF_SIZE);
|
||||
#else
|
||||
len = my_fs_crypto_read(&nor_fd, nor_buf, BUF_SIZE);
|
||||
#endif
|
||||
if (len != BUF_SIZE) {
|
||||
OS_TPrintf("FS_ReadFile() failed.");
|
||||
break;
|
||||
@ -257,10 +266,8 @@ BOOL nvram_restore(char *path)
|
||||
OS_TPrintf("\n");
|
||||
bSuccess = FS_CloseFile(&nor_fd);
|
||||
|
||||
// mprintf("nvram write completed.\n");
|
||||
OS_TPrintf( "nvram write completed.\n");
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -71,7 +71,7 @@ static void SDEvents(void *userdata, FSEvent event, void *arg)
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_YELLOW );
|
||||
mprintf("SD card:inserted!\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
mprintf("Push A button to start\n");
|
||||
mprintf("Push A button to start RESTORE\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -134,7 +134,7 @@ static BOOL RestoreFromSDCard1(void)
|
||||
したがって MyData mydata にはデータが入っている。
|
||||
*/
|
||||
// static BOOL SDBackupToSDCard8(void)
|
||||
mprintf("RTC data restore ");
|
||||
mprintf("RTC data restore ");
|
||||
if( RTC_RESULT_SUCCESS != RTC_SetDate( &(mydata.rtc_date) ) ) {
|
||||
flag = FALSE;
|
||||
}
|
||||
@ -165,24 +165,19 @@ static BOOL RestoreFromSDCard2(void)
|
||||
if ( LCFGi_THW_WriteNormalInfoDirect( &hwn_info )) {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
else {
|
||||
// error
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED ); /* red */
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
|
||||
#if 0
|
||||
// いらんやんか・・
|
||||
// static BOOL SDBackupToSDCard1(void)
|
||||
mprintf("Unique ID backup ");
|
||||
if( TRUE == MiyaBackupHWNormalInfo( MyFile_GetUniqueIDFileName() ) ) {
|
||||
}
|
||||
#endif
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
static BOOL RestoreFromSDCard3(void)
|
||||
{
|
||||
// static BOOL SDBackupToSDCard2(void)
|
||||
@ -190,13 +185,15 @@ static BOOL RestoreFromSDCard3(void)
|
||||
if( TRUE == nvram_restore( MyFile_GetWifiParamFileName() ) ) {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN );
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
else {
|
||||
// error
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -208,13 +205,15 @@ static BOOL RestoreFromSDCard4(void)
|
||||
if( TRUE == MiyaRestoreTWLSettings( MyFile_GetUserSettingsFileName() ) ) {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN );
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
else {
|
||||
// error
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -226,14 +225,15 @@ static BOOL RestoreFromSDCard5(void)
|
||||
if( TRUE == RestoreDirEntryList( MyFile_GetAppSharedListFileName(), MyFile_GetAppSharedRestoreLogFileName() )) {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN );
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
else {
|
||||
// error
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -244,14 +244,15 @@ static BOOL RestoreFromSDCard6(void)
|
||||
if( TRUE == RestoreDirEntryList( MyFile_GetPhotoListFileName() , MyFile_GetPhotoRestoreLogFileName() )) {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN );
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
else {
|
||||
// error
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -264,67 +265,79 @@ static BOOL RestoreFromSDCard8(void)
|
||||
if( TRUE == RestoreDirEntryList( MyFile_GetAppDataListFileName() , MyFile_GetAppDataRestoreLogFileName() )) {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN );
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
else {
|
||||
// error
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static BOOL LoadWlanConfig(void)
|
||||
{
|
||||
/* ユーザーデータ書き込みモード */
|
||||
u8 buf[256];
|
||||
int len;
|
||||
int i; /* ユーザーデータ書き込みモード */
|
||||
if( TRUE == LoadWlanConfigFile("sdmc:/wlan_cfg.txt") ) {
|
||||
OS_TPrintf("SSID = %s\n", GetWlanSSID());
|
||||
mfprintf(tc[3],"SSID = %s\n", GetWlanSSID());
|
||||
OS_TPrintf("MODE = ");
|
||||
mfprintf(tc[3],"MODE = ");
|
||||
|
||||
switch( GetWlanMode() ) {
|
||||
case 1:
|
||||
OS_TPrintf("NONE\n");
|
||||
mfprintf(tc[3],"NONE\n");
|
||||
break;
|
||||
case 2:
|
||||
OS_TPrintf("WEP128\n");
|
||||
mfprintf(tc[3],"WEP128\n");
|
||||
break;
|
||||
case 3:
|
||||
OS_TPrintf("WPA-TKIP\n");
|
||||
mfprintf(tc[3],"WPA-TKIP\n");
|
||||
break;
|
||||
case 4:
|
||||
OS_TPrintf("WPA2-TKIP\n");
|
||||
mfprintf(tc[3],"WPA2-TKIP\n");
|
||||
break;
|
||||
case 5:
|
||||
OS_TPrintf("WPA-AES\n");
|
||||
mfprintf(tc[3],"WPA-AES\n");
|
||||
break;
|
||||
case 6:
|
||||
OS_TPrintf("WPA2-AES\n");
|
||||
mfprintf(tc[3],"WPA2-AES\n");
|
||||
break;
|
||||
defalut:
|
||||
OS_TPrintf("Unknow mode..\n");
|
||||
mfprintf(tc[3],"Unknow mode..\n");
|
||||
break;
|
||||
}
|
||||
OS_TPrintf("KEY STR = %s\n", GetWlanKEYSTR());
|
||||
{
|
||||
u8 buf[256];
|
||||
int len;
|
||||
int i;
|
||||
len = GetWlanKEYBIN(buf);
|
||||
if( len ) {
|
||||
OS_TPrintf("KEY BIN = 0x");
|
||||
for( i = 0 ; i < len ; i++ ) {
|
||||
OS_TPrintf("%02X",buf[i]);
|
||||
}
|
||||
OS_TPrintf("\n");
|
||||
mfprintf(tc[3],"KEY STR = %s\n", GetWlanKEYSTR());
|
||||
|
||||
len = GetWlanKEYBIN(buf);
|
||||
if( len ) {
|
||||
OS_TPrintf("KEY BIN = 0x");
|
||||
mfprintf(tc[3],"KEY BIN = 0x");
|
||||
for( i = 0 ; i < len ; i++ ) {
|
||||
OS_TPrintf("%02X",buf[i]);
|
||||
mfprintf(tc[3],"%02X",buf[i]);
|
||||
}
|
||||
OS_TPrintf("\n");
|
||||
mfprintf(tc[3],"\n");
|
||||
}
|
||||
}
|
||||
else {
|
||||
OS_TPrintf("Invalid wlan cfg file\n");
|
||||
mfprintf(tc[3],"Invalid wlan cfg file\n");
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@ -359,7 +372,6 @@ static BOOL RestoreFromSDCard7(void)
|
||||
|
||||
mprintf("-user title list loading.. ");
|
||||
OS_TPrintf("user title list loading\n");
|
||||
// (void)TitleIDSave( MyFile_GetDownloadTitleIDFileName(), pBuffer, count, NULL);
|
||||
if( TRUE == TitleIDLoad( MyFile_GetDownloadTitleIDFileName(), &title_id_buf_ptr,
|
||||
&title_id_count, NULL) ) {
|
||||
|
||||
@ -384,7 +396,6 @@ static BOOL RestoreFromSDCard7(void)
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
|
||||
|
||||
/* nand:/ticketはチケット同期でダウンロード */
|
||||
// 不要:デバイス情報の表示
|
||||
PrintDeviceInfo();
|
||||
@ -414,7 +425,7 @@ static BOOL RestoreFromSDCard7(void)
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
goto end_nhttp;
|
||||
}
|
||||
else {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||
@ -431,7 +442,7 @@ static BOOL RestoreFromSDCard7(void)
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
goto end_ec;
|
||||
}
|
||||
else {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||
@ -441,21 +452,18 @@ static BOOL RestoreFromSDCard7(void)
|
||||
|
||||
// 必須:デバイス証明書の発行
|
||||
if( FALSE == KPSClient() ) {
|
||||
return FALSE;
|
||||
goto end_ec_f;
|
||||
}
|
||||
|
||||
if( FALSE == ECDownload((NAMTitleId *)title_id_buf_ptr , (u32)title_id_count) ) {
|
||||
return FALSE;
|
||||
goto end_ec_f;
|
||||
}
|
||||
|
||||
// 不要:セーブデータ領域を作成
|
||||
// NAM_Init を忘れてた
|
||||
SetupTitlesDataFile((NAMTitleId *)title_id_buf_ptr , (u32)title_id_count);
|
||||
|
||||
if( title_id_buf_ptr != NULL && title_id_count != 0 ) {
|
||||
OS_Free( title_id_buf_ptr );
|
||||
}
|
||||
|
||||
end_ec_f:
|
||||
// cleanup
|
||||
// EC の終了処理
|
||||
mprintf("-EC_Shutdown.. ");
|
||||
@ -471,6 +479,7 @@ static BOOL RestoreFromSDCard7(void)
|
||||
mprintf("OK.\n");
|
||||
}
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
end_ec:
|
||||
|
||||
|
||||
// ネットワークからの切断
|
||||
@ -478,16 +487,21 @@ static BOOL RestoreFromSDCard7(void)
|
||||
mprintf("-disconnecting... ");
|
||||
|
||||
NHTTP_Cleanup();
|
||||
end_nhttp:
|
||||
NSSL_Finish();
|
||||
|
||||
end_nssl:
|
||||
NcFinish();
|
||||
end_nc:
|
||||
//OS_TPrintf("NSSL_Finish() return = %d\n", NSSL_Finish());
|
||||
|
||||
TerminateWcmControl();
|
||||
|
||||
OS_TPrintf("done.\n");
|
||||
mprintf("done.\n");
|
||||
|
||||
|
||||
if( title_id_buf_ptr != NULL && title_id_count != 0 ) {
|
||||
OS_Free( title_id_buf_ptr );
|
||||
}
|
||||
// EC が自分の Title ID のディレクトリを作成してしまうため、削除する
|
||||
DeleteECDirectory();
|
||||
|
||||
@ -636,6 +650,8 @@ void TwlMain(void)
|
||||
u8 macAddress[6];
|
||||
MY_ENTRY_LIST *mfiler_list_head = NULL;
|
||||
BOOL reboot_flag;
|
||||
u16 s_major, s_minor;
|
||||
u32 s_timestamp;
|
||||
|
||||
OS_Init();
|
||||
OS_InitThread();
|
||||
@ -679,10 +695,30 @@ void TwlMain(void)
|
||||
// 必須;SEA の初期化
|
||||
SEA_Init();
|
||||
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_YELLOW );
|
||||
mprintf( "Sys-menu ver." );
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
if( TRUE == Read_SystemMenuVersion(&s_major, &s_minor, &s_timestamp) ) {
|
||||
mprintf( "%d.%d", s_major, s_minor );
|
||||
mprintf( " (%08x)\n", s_timestamp );
|
||||
}
|
||||
else {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf( "read error!\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
mprintf( "\n");
|
||||
|
||||
|
||||
reboot_flag = OS_IsRebooted();
|
||||
|
||||
/* デバッグのために強制的に */
|
||||
// reboot_flag = TRUE;
|
||||
(void)m_get_key_trigger();
|
||||
keyData = m_get_key_code();
|
||||
if ( keyData & PAD_BUTTON_X ) {
|
||||
reboot_flag = TRUE;
|
||||
}
|
||||
|
||||
if( FALSE == reboot_flag ) {
|
||||
|
||||
@ -695,7 +731,6 @@ void TwlMain(void)
|
||||
else {
|
||||
sd_card_flag = TRUE;
|
||||
}
|
||||
|
||||
FS_RegisterEventHook("sdmc", &sSDHook, SDEvents, NULL);
|
||||
|
||||
|
||||
@ -707,20 +742,6 @@ void TwlMain(void)
|
||||
mprintf("NA load error\n");
|
||||
}
|
||||
else {
|
||||
|
||||
{
|
||||
u16 s_major, s_minor;
|
||||
u32 s_timestamp;
|
||||
if( TRUE == Read_SystemMenuVersion(&s_major, &s_minor, &s_timestamp) ) {
|
||||
OS_TPrintf( "SystemMenuVersionData\n" );
|
||||
// 文字列
|
||||
// 数値
|
||||
OS_TPrintf( " Version(num) : %d.%d\n", s_major, s_minor );
|
||||
// OS_TPrintf( " Version(str) : %s\n", s_version.str_ver );
|
||||
OS_TPrintf( " Timestamp : %08x\n", s_timestamp );
|
||||
}
|
||||
}
|
||||
|
||||
if (!NUC_LoadCert()) {
|
||||
// WRAMにロード
|
||||
OS_TPrintf("Client cert load error\n");
|
||||
@ -910,7 +931,7 @@ void TwlMain(void)
|
||||
MyFile_SetPathBase("sdmc:/");
|
||||
MyFile_AddPathBase((const char *)MFILER_GetCursorEntryPath( &mfiler_list_head ) );
|
||||
MyFile_AddPathBase("/");
|
||||
if(TRUE == MydataLoad( MyFile_GetGlobalInformationFileName(), &mydata, sizeof(MyData), NULL) ) {
|
||||
if(TRUE == MydataLoadDecrypt( MyFile_GetGlobalInformationFileName(), &mydata, sizeof(MyData), NULL) ) {
|
||||
mprintf("Personal data. restore ");
|
||||
m_set_palette(tc[0], 0x2); /* green */
|
||||
mprintf("OK.\n");
|
||||
@ -918,7 +939,9 @@ void TwlMain(void)
|
||||
start_my_thread();
|
||||
}
|
||||
else {
|
||||
mprintf("Not a backup data directory\n");
|
||||
m_set_palette(tc[0], 0x1); /* red */
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], 0xF); /* white */
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -971,7 +994,7 @@ void TwlMain(void)
|
||||
n--;
|
||||
m_set_display_offset_x(tc[0], n);
|
||||
}
|
||||
|
||||
label:
|
||||
mfprintf(tc[1], "\f%4d/%02d/%02d %02d:%02d:%02d\n\n",
|
||||
rtc_date.year + 2000, rtc_date.month , rtc_date.day,
|
||||
rtc_time.hour , rtc_time.minute , rtc_time.second );
|
||||
|
||||
@ -34,6 +34,7 @@
|
||||
#include "nuc.h"
|
||||
|
||||
#include "myfilename.h"
|
||||
#include "menu_version.h"
|
||||
|
||||
//================================================================================
|
||||
|
||||
@ -57,6 +58,7 @@ static void SDEvents(void *userdata, FSEvent event, void *arg)
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_YELLOW );
|
||||
mprintf("SD card:inserted!\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
mprintf("push A button to start BACKUP\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -104,14 +106,16 @@ static BOOL SDBackupToSDCard2(void)
|
||||
/* Wifi設定の保存 */
|
||||
mprintf("WirelessLAN param. backup ");
|
||||
if( TRUE == nvram_backup( MyFile_GetWifiParamFileName() ) ) {
|
||||
m_set_palette(tc[0], 0x2); /* green */
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
else {
|
||||
m_set_palette(tc[0], 0x1); /* red */
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], 0xF); /* white */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -121,14 +125,16 @@ static BOOL SDBackupToSDCard3(void)
|
||||
/* nand:/shared1ディレクトリまわりの保存 */
|
||||
mprintf("User setting param. backup ");
|
||||
if( TRUE == MiyaBackupTWLSettings( MyFile_GetUserSettingsFileName() ) ) {
|
||||
m_set_palette(tc[0], 0x2); /* green */
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
else {
|
||||
m_set_palette(tc[0], 0x1); /* red */
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], 0xF); /* white */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -150,12 +156,14 @@ static BOOL SDBackupToSDCard4(void)
|
||||
mydata.num_of_shared2_files = SaveDirEntryList( dir_entry_list_head, MyFile_GetAppSharedListFileName() );
|
||||
m_set_palette(tc[0], 0x2); /* green */
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], 0xF); /* white */
|
||||
}
|
||||
else {
|
||||
m_set_palette(tc[0], 0x1); /* red */
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], 0xF); /* white */
|
||||
(void)ClearDirEntryList( &dir_entry_list_head );
|
||||
return TRUE;
|
||||
}
|
||||
@ -164,7 +172,6 @@ static BOOL SDBackupToSDCard5(void)
|
||||
{
|
||||
MY_DIR_ENTRY_LIST *dir_entry_list_head = NULL;
|
||||
int save_dir_info = 0;
|
||||
|
||||
/*
|
||||
nand2:/photoディレクトリまわりの保存
|
||||
内容は写真長のJPEGファイル
|
||||
@ -176,17 +183,18 @@ static BOOL SDBackupToSDCard5(void)
|
||||
|
||||
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
||||
mydata.num_of_photo_files = SaveDirEntryList( dir_entry_list_head, MyFile_GetPhotoListFileName() );
|
||||
m_set_palette(tc[0], 0x2); /* green */
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
else {
|
||||
m_set_palette(tc[0], 0x1); /* red */
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], 0xF); /* white */
|
||||
(void)ClearDirEntryList( &dir_entry_list_head );
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -204,18 +212,20 @@ static BOOL SDBackupToSDCard6(void)
|
||||
|
||||
mprintf("App. save data backup ");
|
||||
if( 0 == find_title_save_data( &dir_entry_list_head, MyFile_GetAppDataSaveDirName(), "nand:/title",
|
||||
&save_dir_info, MyFile_GetAppDataLogFileName(),0 ) )
|
||||
{
|
||||
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
||||
mydata.num_of_app_save_data = SaveDirEntryList( dir_entry_list_head , MyFile_GetAppDataListFileName() );
|
||||
m_set_palette(tc[0], 0x2); /* green */
|
||||
mprintf("OK.\n");
|
||||
}
|
||||
else {
|
||||
m_set_palette(tc[0], 0x1); /* red */
|
||||
mprintf("NG.\n");
|
||||
&save_dir_info, MyFile_GetAppDataLogFileName(),0 ) ) {
|
||||
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
||||
mydata.num_of_app_save_data = SaveDirEntryList( dir_entry_list_head , MyFile_GetAppDataListFileName() );
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
m_set_palette(tc[0], 0xF); /* white */
|
||||
else {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
(void)ClearDirEntryList( &dir_entry_list_head );
|
||||
|
||||
return TRUE;
|
||||
@ -229,6 +239,7 @@ static BOOL SDBackupToSDCard7(void)
|
||||
int count;
|
||||
int j;
|
||||
u64 *ptr;
|
||||
BOOL flag = TRUE;
|
||||
|
||||
/* タイトルリストの生成 */
|
||||
/*
|
||||
@ -274,12 +285,16 @@ static BOOL SDBackupToSDCard7(void)
|
||||
|
||||
if( TRUE == TitleIDSave( MyFile_GetDownloadTitleIDFileName(), pBuffer, count, NULL) ) {
|
||||
//MyFile_GetDownloadTitleIDLogFileName()
|
||||
m_set_palette(tc[0], 0x2); /* green */
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
else {
|
||||
m_set_palette(tc[0], 0x1); /* red */
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.(save ids)\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
flag = FALSE;
|
||||
// return FALSE;
|
||||
}
|
||||
if( pBuffer ) {
|
||||
OS_Free(pBuffer);
|
||||
@ -288,11 +303,13 @@ static BOOL SDBackupToSDCard7(void)
|
||||
else {
|
||||
m_set_palette(tc[0], 0x1); /* red */
|
||||
mprintf("NG.(get ids)\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
flag = FALSE;
|
||||
// return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], 0xF); /* white */
|
||||
(void)ClearDirEntryList( &dir_entry_list_head );
|
||||
|
||||
return TRUE;
|
||||
return flag;
|
||||
}
|
||||
|
||||
static BOOL SDBackupToSDCard8(void)
|
||||
@ -325,15 +342,17 @@ static BOOL SDBackupToSDCard8(void)
|
||||
LCFG_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN );
|
||||
|
||||
mprintf("Personal data backup ");
|
||||
if( TRUE == MydataSave( MyFile_GetGlobalInformationFileName(), (void *)&mydata, sizeof(MyData), NULL) ) {
|
||||
m_set_palette(tc[0], 0x2); /* green */
|
||||
if( TRUE == MydataSaveEncrypt( MyFile_GetGlobalInformationFileName(), (void *)&mydata, sizeof(MyData), NULL) ) {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||
mprintf("OK.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
else {
|
||||
m_set_palette(tc[0], 0x1); /* red */
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf("NG.\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
return FALSE;
|
||||
}
|
||||
m_set_palette(tc[0], 0xF); /* white */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -404,6 +423,8 @@ void TwlMain(void)
|
||||
int i;
|
||||
int n;
|
||||
u8 macAddress[6];
|
||||
u16 s_major, s_minor;
|
||||
u32 s_timestamp;
|
||||
|
||||
OS_Init();
|
||||
OS_InitThread();
|
||||
@ -448,6 +469,22 @@ void TwlMain(void)
|
||||
// 必須;SEA の初期化
|
||||
SEA_Init();
|
||||
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_LIGHTBLUE );
|
||||
mprintf( "Sys-menu ver." );
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
if( TRUE == Read_SystemMenuVersion(&s_major, &s_minor, &s_timestamp) ) {
|
||||
mprintf( "%d.%d", s_major, s_minor );
|
||||
mprintf( " (%08x)\n", s_timestamp );
|
||||
}
|
||||
else {
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||
mprintf( "read error!\n");
|
||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||
}
|
||||
mprintf( "\n");
|
||||
|
||||
|
||||
|
||||
// 不要:NAM の初期化
|
||||
// NAM_Init(&AllocForNAM, &FreeForNAM);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user