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@453 7061adef-622a-194b-ae81-725974e89856
This commit is contained in:
parent
c7cbb30fd1
commit
1ea3c3845a
@ -18,7 +18,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
SUBDIRS = make_tad_table my_armadillo.TWL copy_org copy_dst auto_preinst_rom
|
SUBDIRS = make_tad_table my_armadillo.TWL copy_org copy_dst auto_preinst_rom
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
||||||
|
|||||||
@ -28,7 +28,7 @@ SRCS = main.c key.c font.c text.c mprintf.c logprintf.c \
|
|||||||
myfilename.c menu_version.c \
|
myfilename.c menu_version.c \
|
||||||
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
||||||
myimport.c pre_install.c \
|
myimport.c pre_install.c \
|
||||||
my_rsa_sign.c my_aes.c my_sha.c my_sign.c
|
my_rsa_sign.c my_aes.c my_sha.c my_sign.c my_keys.c hatamotolib.cpp
|
||||||
|
|
||||||
# my_rsa.c
|
# my_rsa.c
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ ES_ROOT = $(ES_LATEST)
|
|||||||
BSAFE_DIR = $(TWLSDK_ROOT)/build/libraries/crypto/common/mes
|
BSAFE_DIR = $(TWLSDK_ROOT)/build/libraries/crypto/common/mes
|
||||||
|
|
||||||
|
|
||||||
LINCLUDES = ../common/src ../copy_dst/src \
|
LINCLUDES = ../common/src \
|
||||||
$(TWLSDK_ROOT)/build/libraries/lcfg/ARM9.TWL/include \
|
$(TWLSDK_ROOT)/build/libraries/lcfg/ARM9.TWL/include \
|
||||||
$(TWLSDK_ROOT)/build/libraries/nam/ARM9.TWL/include \
|
$(TWLSDK_ROOT)/build/libraries/nam/ARM9.TWL/include \
|
||||||
$(TWLSDK_ROOT)/build/libraries/ese/common/include \
|
$(TWLSDK_ROOT)/build/libraries/ese/common/include \
|
||||||
|
|||||||
@ -32,6 +32,7 @@
|
|||||||
#include "wcm_control.h"
|
#include "wcm_control.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define HATAMOTO_LIB 1
|
||||||
|
|
||||||
#define THREAD_COMMAND_INSTALL_APP 1
|
#define THREAD_COMMAND_INSTALL_APP 1
|
||||||
#define THREAD_COMMAND_INSTALL_TICKET 2
|
#define THREAD_COMMAND_INSTALL_TICKET 2
|
||||||
@ -264,7 +265,7 @@ static BOOL LoadWlanConfig(void)
|
|||||||
|
|
||||||
void TwlMain(void)
|
void TwlMain(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i,n;
|
||||||
void* newArenaLo;
|
void* newArenaLo;
|
||||||
u8 macAddress[6];
|
u8 macAddress[6];
|
||||||
ESError es_error_code;
|
ESError es_error_code;
|
||||||
@ -486,6 +487,27 @@ OS_TPrintf("%s %s %d\n", __FILE__,__FUNCTION__,__LINE__ );
|
|||||||
else if ( keyData & PAD_BUTTON_SELECT ) {
|
else if ( keyData & PAD_BUTTON_SELECT ) {
|
||||||
(void)start_my_thread(THREAD_COMMAND_DOWNLOAD_APP);
|
(void)start_my_thread(THREAD_COMMAND_DOWNLOAD_APP);
|
||||||
}
|
}
|
||||||
|
else if ( keyData & PAD_KEY_RIGHT ) {
|
||||||
|
n = m_get_display_offset_x(tc[0]);
|
||||||
|
n++;
|
||||||
|
m_set_display_offset_x(tc[0], n);
|
||||||
|
}
|
||||||
|
else if ( keyData & PAD_KEY_LEFT ) {
|
||||||
|
n = m_get_display_offset_x(tc[0]);
|
||||||
|
n--;
|
||||||
|
m_set_display_offset_x(tc[0], n);
|
||||||
|
}
|
||||||
|
else if ( keyData & PAD_KEY_UP ) {
|
||||||
|
n = m_get_display_offset_y(tc[0]);
|
||||||
|
n++;
|
||||||
|
m_set_display_offset_y(tc[0], n);
|
||||||
|
}
|
||||||
|
else if ( keyData & PAD_KEY_DOWN ) {
|
||||||
|
n = m_get_display_offset_y(tc[0]);
|
||||||
|
n--;
|
||||||
|
m_set_display_offset_y(tc[0], n);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
mfprintf(tc[1], "\fAuto Pre-install Tool\n");
|
mfprintf(tc[1], "\fAuto Pre-install Tool\n");
|
||||||
|
|
||||||
@ -592,7 +614,7 @@ OS_TPrintf("%s %s %d\n", __FILE__,__FUNCTION__,__LINE__ );
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
static MY_USER_APP_TID title_id_buf_ptr[] = {
|
static MY_USER_APP_TID title_id_buf_ptr[] = {
|
||||||
{0x000300044b47554a, 2, FALSE },
|
{0x000300044b47554a, 2, FALSE },
|
||||||
{0x000300044b32444a, 2, FALSE },
|
{0x000300044b32444a, 2, FALSE },
|
||||||
@ -610,6 +632,11 @@ static MY_USER_APP_TID title_id_buf_ptr[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static int title_id_count = sizeof(title_id_buf_ptr)/sizeof(MY_USER_APP_TID);
|
static int title_id_count = sizeof(title_id_buf_ptr)/sizeof(MY_USER_APP_TID);
|
||||||
|
#else
|
||||||
|
static MY_USER_APP_TID *title_id_buf_ptr;
|
||||||
|
static int title_id_count = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef HATAMOTO_LIB
|
#ifdef HATAMOTO_LIB
|
||||||
static void ec_download_func(void)
|
static void ec_download_func(void)
|
||||||
@ -629,6 +656,7 @@ static void ec_download_func(void)
|
|||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
|
||||||
|
#if 0
|
||||||
SetupShopTitleId(); /* エラーはない */
|
SetupShopTitleId(); /* エラーはない */
|
||||||
|
|
||||||
// ?:ユーザ設定がされていないと接続できないので適当に設定
|
// ?:ユーザ設定がされていないと接続できないので適当に設定
|
||||||
@ -639,7 +667,7 @@ static void ec_download_func(void)
|
|||||||
ret_flag = FALSE;
|
ret_flag = FALSE;
|
||||||
goto end_log_e;
|
goto end_log_e;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
// 必須:ネットワークへの接続
|
// 必須:ネットワークへの接続
|
||||||
if( 0 != NcStart(SITEDEFS_DEFAULTCLASS) ) {
|
if( 0 != NcStart(SITEDEFS_DEFAULTCLASS) ) {
|
||||||
mprintf("%s failed NcStart\n", __FUNCTION__);
|
mprintf("%s failed NcStart\n", __FUNCTION__);
|
||||||
@ -660,6 +688,7 @@ static void ec_download_func(void)
|
|||||||
/******** NHTTP & NSSLにつないだ *************/
|
/******** NHTTP & NSSLにつないだ *************/
|
||||||
// 必須:EC の初期化
|
// 必須:EC の初期化
|
||||||
mprintf("-setup EC\n");
|
mprintf("-setup EC\n");
|
||||||
|
|
||||||
if( FALSE == SetupEC() ) {
|
if( FALSE == SetupEC() ) {
|
||||||
ret_flag = FALSE;
|
ret_flag = FALSE;
|
||||||
mprintf(" %s failed SetupEC\n", __FUNCTION__);
|
mprintf(" %s failed SetupEC\n", __FUNCTION__);
|
||||||
@ -823,6 +852,13 @@ static void MyThreadProc(void *arg)
|
|||||||
break;
|
break;
|
||||||
case THREAD_COMMAND_DOWNLOAD_APP:
|
case THREAD_COMMAND_DOWNLOAD_APP:
|
||||||
#ifdef HATAMOTO_LIB
|
#ifdef HATAMOTO_LIB
|
||||||
|
SetupShopTitleId(); /* ƒGƒ‰<C692>[‚͂Ȃ¢ */
|
||||||
|
if( FALSE == SetupVerData() ) {
|
||||||
|
mprintf("%s failed SetupVerData\n", __FUNCTION__);
|
||||||
|
}
|
||||||
|
(void)SetupEC_pre();
|
||||||
|
pre_install_eticket_only_process( NULL, development_console_flag ,
|
||||||
|
&title_id_buf_ptr,&title_id_count);
|
||||||
ec_download_func();
|
ec_download_func();
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -981,6 +981,27 @@ static void AppErrorReport(const char *path, char *msg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void AppErrorReport2(const char *path, char *msg, char *msg2)
|
||||||
|
{
|
||||||
|
char game_code[5];
|
||||||
|
char *dir_name1 = "nand:/shared2";
|
||||||
|
char *dir_name2 = "nand2:/photo";
|
||||||
|
if( !STD_StrNCmp( path, dir_name1 , STD_StrLen(dir_name1) ) ) {
|
||||||
|
(void)Error_Report_Printf(" Shared:%s %s\n", msg, msg2);
|
||||||
|
}
|
||||||
|
else if( !STD_StrNCmp( path, dir_name2 , STD_StrLen(dir_name2) ) ) {
|
||||||
|
(void)Error_Report_Printf(" Photo :%s %s\n", msg, msg2);
|
||||||
|
}
|
||||||
|
else if( TRUE == GetAppGameCode(path, game_code, NULL ) ) {
|
||||||
|
(void)Error_Report_Printf(" [%s]:%s %s\n", game_code, msg, msg2);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
(void)Error_Report_Printf(" [????]:%s %s\n path=%s\n",msg, msg2, path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static u64 GetTitleIdFromSrcPath(char path[])
|
static u64 GetTitleIdFromSrcPath(char path[])
|
||||||
{
|
{
|
||||||
u64 tid = 0;
|
u64 tid = 0;
|
||||||
@ -1407,8 +1428,10 @@ BOOL RestoreDirEntryList( char *path , char *log_file_name, int *list_count, int
|
|||||||
FSFile log_fd_real;
|
FSFile log_fd_real;
|
||||||
FSFile *log_fd;
|
FSFile *log_fd;
|
||||||
BOOL log_active = FALSE;
|
BOOL log_active = FALSE;
|
||||||
|
#if 0
|
||||||
|
int slen;
|
||||||
|
char *sfile_name;
|
||||||
|
#endif
|
||||||
|
|
||||||
log_fd = &log_fd_real;
|
log_fd = &log_fd_real;
|
||||||
log_active = Log_File_Open( log_fd, log_file_name );
|
log_active = Log_File_Open( log_fd, log_file_name );
|
||||||
@ -1556,7 +1579,21 @@ BOOL RestoreDirEntryList( char *path , char *log_file_name, int *list_count, int
|
|||||||
/* ファイルでもディレクトリでもどっちでもここを通る */
|
/* ファイルでもディレクトリでもどっちでもここを通る */
|
||||||
if( copy_error_flag == FALSE ) {
|
if( copy_error_flag == FALSE ) {
|
||||||
(*error_count)++;
|
(*error_count)++;
|
||||||
|
// miya 20091113
|
||||||
|
#if 0
|
||||||
|
slen = STD_StrLen(list_temp.src_path);
|
||||||
|
while( slen > 0 ) {
|
||||||
|
slen--;
|
||||||
|
if( list_temp.src_path[slen] == '/' ) {
|
||||||
|
slen++;
|
||||||
|
sfile_name = &(list_temp.src_path[slen]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AppErrorReport2(list_temp.src_path, "copy file failed ",sfile_name);
|
||||||
|
#else
|
||||||
AppErrorReport(list_temp.src_path, "copy file failed");
|
AppErrorReport(list_temp.src_path, "copy file failed");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
(*list_count)++;
|
(*list_count)++;
|
||||||
@ -1615,6 +1652,8 @@ BOOL RestoreDirEntryList_System_And_InstallSuccessApp(char *path , char *log_fil
|
|||||||
BOOL log_active = FALSE;
|
BOOL log_active = FALSE;
|
||||||
u64 tid;
|
u64 tid;
|
||||||
char game_code_buf[5];
|
char game_code_buf[5];
|
||||||
|
int slen;
|
||||||
|
char *sfile_name;
|
||||||
|
|
||||||
log_fd = &log_fd_real;
|
log_fd = &log_fd_real;
|
||||||
log_active = Log_File_Open( log_fd, log_file_name );
|
log_active = Log_File_Open( log_fd, log_file_name );
|
||||||
@ -1726,6 +1765,7 @@ BOOL RestoreDirEntryList_System_And_InstallSuccessApp(char *path , char *log_fil
|
|||||||
if( !STD_StrCmp( list_temp.src_path, "nand:" ) ) {
|
if( !STD_StrCmp( list_temp.src_path, "nand:" ) ) {
|
||||||
/* nandのルートディレクトリはスルーする。 */
|
/* nandのルートディレクトリはスルーする。 */
|
||||||
OS_TPrintf("nand: root detect \n");
|
OS_TPrintf("nand: root detect \n");
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
@ -1734,7 +1774,7 @@ BOOL RestoreDirEntryList_System_And_InstallSuccessApp(char *path , char *log_fil
|
|||||||
(TRUE == CheckInstallSuccessApp(list_temp.src_path, title_id_buf, title_id_count)) ) {
|
(TRUE == CheckInstallSuccessApp(list_temp.src_path, title_id_buf, title_id_count)) ) {
|
||||||
|
|
||||||
/* 一応拡張子(*.sav)もチェックしといたほうがいいか? */
|
/* 一応拡張子(*.sav)もチェックしといたほうがいいか? */
|
||||||
miya_log_fprintf(log_fd, "backup %s\n",list_temp.src_path);
|
miya_log_fprintf(log_fd, "backup 1 %s\n",list_temp.src_path);
|
||||||
|
|
||||||
tid = GetTitleIdFromSrcPath( list_temp.src_path );
|
tid = GetTitleIdFromSrcPath( list_temp.src_path );
|
||||||
(void)my_fs_Tid_To_GameCode(tid, game_code_buf);
|
(void)my_fs_Tid_To_GameCode(tid, game_code_buf);
|
||||||
@ -1786,8 +1826,11 @@ BOOL RestoreDirEntryList_System_And_InstallSuccessApp(char *path , char *log_fil
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
miya_log_fprintf(log_fd, "backup 2 %s\n",list_temp.src_path);
|
||||||
|
|
||||||
/* インストール失敗アプリの場合。 */
|
/* インストール失敗アプリの場合。 */
|
||||||
if( 2 == CheckInstallSuccessAppEx(list_temp.src_path, title_id_buf, title_id_count) ) {
|
if( 2 == CheckInstallSuccessAppEx(list_temp.src_path, title_id_buf, title_id_count) ) {
|
||||||
|
|
||||||
tid = GetTitleIdFromSrcPath( list_temp.src_path );
|
tid = GetTitleIdFromSrcPath( list_temp.src_path );
|
||||||
(void)my_fs_Tid_To_GameCode(tid, game_code_buf);
|
(void)my_fs_Tid_To_GameCode(tid, game_code_buf);
|
||||||
|
|
||||||
@ -1809,12 +1852,26 @@ BOOL RestoreDirEntryList_System_And_InstallSuccessApp(char *path , char *log_fil
|
|||||||
|
|
||||||
if( copy_error_flag == FALSE ) {
|
if( copy_error_flag == FALSE ) {
|
||||||
(*error_count)++;
|
(*error_count)++;
|
||||||
|
// miya 20091113
|
||||||
|
#if 1
|
||||||
|
slen = STD_StrLen(list_temp.src_path);
|
||||||
|
while( slen > 0 ) {
|
||||||
|
slen--;
|
||||||
|
if( list_temp.src_path[slen] == '/' ) {
|
||||||
|
slen++;
|
||||||
|
sfile_name = &(list_temp.src_path[slen]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AppErrorReport2(list_temp.src_path, "copy failed ",sfile_name);
|
||||||
|
#else
|
||||||
AppErrorReport(list_temp.src_path, "copy file failed");
|
AppErrorReport(list_temp.src_path, "copy file failed");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
miya_log_fprintf(log_fd, "%s Read entry count %d error count %d\n",__FUNCTION__ , *list_count, *error_count );
|
miya_log_fprintf(log_fd, "Read entry count %d error count %d\n", *list_count, *error_count );
|
||||||
|
|
||||||
#ifdef ATTRIBUTE_BACK
|
#ifdef ATTRIBUTE_BACK
|
||||||
/* add_entry_list( &readonly_list_head, &list_temp );
|
/* add_entry_list( &readonly_list_head, &list_temp );
|
||||||
でリストにしたエントリーのアトリビュートを逆順で元に戻す。*/
|
でリストにしたエントリーのアトリビュートを逆順で元に戻す。*/
|
||||||
@ -2636,7 +2693,46 @@ BOOL CheckShopRecord(FSFile *log_fd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//static BOOL
|
BOOL CheckDevDotKP(FSFile *log_fd)
|
||||||
|
{
|
||||||
|
FSFile f;
|
||||||
|
BOOL ret_flag = TRUE;
|
||||||
|
BOOL bSuccess;
|
||||||
|
char path[64];
|
||||||
|
s32 readSize = 0;
|
||||||
|
/* "nand:/sys/log/shop.log */
|
||||||
|
miya_log_fprintf(log_fd, "%s START\n", __FUNCTION__);
|
||||||
|
|
||||||
|
FS_InitFile(&f);
|
||||||
|
STD_StrCpy(path, "nand:/sys/dev.kp");
|
||||||
|
|
||||||
|
/*
|
||||||
|
shop.logは
|
||||||
|
本体設定初期化では消さない。
|
||||||
|
ショップの履歴消去では消す。
|
||||||
|
当然、ショップに再接続したら作られる。
|
||||||
|
*/
|
||||||
|
|
||||||
|
bSuccess = FS_OpenFileEx(&f, path, (FS_FILEMODE_R));
|
||||||
|
if( ! bSuccess ) {
|
||||||
|
if( FS_RESULT_NO_ENTRY == FS_GetArchiveResultCode(path) ) {
|
||||||
|
/* キーペアファイルがない */
|
||||||
|
/* Shopログファイルがない */
|
||||||
|
ret_flag = FALSE;
|
||||||
|
// miya_log_fprintf(log_fd, "No key pair file\n");
|
||||||
|
miya_log_fprintf(log_fd, "No shop log file\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
(void)FS_CloseFile(&f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
miya_log_fprintf(log_fd, "%s END\n\n", __FUNCTION__);
|
||||||
|
|
||||||
|
return ret_flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static BOOL myCleanDirectory(char *path, FSFile *log_fd, int level)
|
static BOOL myCleanDirectory(char *path, FSFile *log_fd, int level)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -67,6 +67,7 @@ void write_debug_data(void);
|
|||||||
BOOL SDCardValidation(void);
|
BOOL SDCardValidation(void);
|
||||||
BOOL TWLCardValidation(void);
|
BOOL TWLCardValidation(void);
|
||||||
BOOL CheckShopRecord(FSFile *log_fd);
|
BOOL CheckShopRecord(FSFile *log_fd);
|
||||||
|
BOOL CheckDevDotKP(FSFile *log_fd);
|
||||||
|
|
||||||
BOOL CleanSDCardFiles(char *log_file_name);
|
BOOL CleanSDCardFiles(char *log_file_name);
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
#define _MY_DATA_H_
|
#define _MY_DATA_H_
|
||||||
|
|
||||||
|
|
||||||
#define MY_DATA_VERSION_MAJOR 1
|
#define MY_DATA_VERSION_MAJOR 2
|
||||||
#define MY_DATA_VERSION_MINOR 9
|
#define MY_DATA_VERSION_MINOR 0
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 version_major;
|
u8 version_major;
|
||||||
@ -18,7 +18,7 @@ typedef struct {
|
|||||||
BOOL wireless_lan_param_flag;
|
BOOL wireless_lan_param_flag;
|
||||||
BOOL user_settings_flag;
|
BOOL user_settings_flag;
|
||||||
BOOL shop_record_flag;
|
BOOL shop_record_flag;
|
||||||
// int num_of_user_download_app;
|
BOOL dev_dot_kp_flag;
|
||||||
int num_of_user_app;
|
int num_of_user_app;
|
||||||
int num_of_user_pre_installed_app;
|
int num_of_user_pre_installed_app;
|
||||||
int num_of_user_pre_installed_eticket_only;
|
int num_of_user_pre_installed_eticket_only;
|
||||||
@ -39,7 +39,7 @@ typedef struct {
|
|||||||
char bmsDeviceId[32];
|
char bmsDeviceId[32];
|
||||||
s32 volume;
|
s32 volume;
|
||||||
s32 backlight_brightness;
|
s32 backlight_brightness;
|
||||||
u32 reserve[256];
|
u32 reserve[128];
|
||||||
} MyData;
|
} MyData;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -138,6 +138,60 @@ static void ReportLastErrorPath(const char *path)
|
|||||||
static u8 my_nor_buf[NVRAM_PERSONAL_DATA_SIZE] ATTRIBUTE_ALIGN(32);
|
static u8 my_nor_buf[NVRAM_PERSONAL_DATA_SIZE] ATTRIBUTE_ALIGN(32);
|
||||||
static u8 work_content[NCFG_CHECKCONFIGEX_WORK_SIZE];
|
static u8 work_content[NCFG_CHECKCONFIGEX_WORK_SIZE];
|
||||||
|
|
||||||
|
|
||||||
|
BOOL nvram_get(u8 buf[0xa00])
|
||||||
|
{
|
||||||
|
BOOL ret_flag = TRUE;
|
||||||
|
u32 offset;
|
||||||
|
|
||||||
|
if( TRUE != my_nvram_read( NVRAM_PERSONAL_DATA_OFFSET , sizeof(u16), (void* )&offset) ) {
|
||||||
|
OS_TPrintf( "nvram error: %s %s %d\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
}
|
||||||
|
|
||||||
|
if( offset == 0 ) {
|
||||||
|
OS_TPrintf( "nvram error: offset = 0x%02x\n", offset);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
offset *= 8;
|
||||||
|
offset -= 0xA00;
|
||||||
|
|
||||||
|
if( TRUE != my_nvram_read( offset , NVRAM_PERSONAL_DATA_SIZE, (void* )buf) ) {
|
||||||
|
OS_TPrintf( "nvram error: %s %s %d\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
return ret_flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL nvram_set(u8 buf[0xa00])
|
||||||
|
{
|
||||||
|
BOOL ret_flag = TRUE;
|
||||||
|
u32 offset;
|
||||||
|
|
||||||
|
if( TRUE != my_nvram_read( NVRAM_PERSONAL_DATA_OFFSET , sizeof(u16), (void* )&offset) ) {
|
||||||
|
OS_TPrintf( "nvram error: %s %s %d\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
OS_TPrintf( "nvram success: offset = 0x%02x\n", offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
if( offset == 0 ) {
|
||||||
|
OS_TPrintf( "nvram error: offset = 0x%02x\n", offset);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* offset‚̃`ƒFƒbƒN‚Í<E2809A>H */
|
||||||
|
offset *= 8;
|
||||||
|
offset -= 0xA00;
|
||||||
|
if( TRUE != my_nvram_write( offset , /* size */ NVRAM_PERSONAL_DATA_SIZE, (void* )buf) ) {
|
||||||
|
ret_flag = FALSE;
|
||||||
|
OS_TPrintf( "nvram write error: %s %s %d\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
}
|
||||||
|
return ret_flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL nvram_backup(char *path)
|
BOOL nvram_backup(char *path)
|
||||||
{
|
{
|
||||||
BOOL bSuccess;
|
BOOL bSuccess;
|
||||||
@ -216,6 +270,8 @@ typedef struct tagDWCWiFiInfo {
|
|||||||
u16 randomHistory; // —<><E28094>”—š—ð
|
u16 randomHistory; // —<><E28094>”—š—ð
|
||||||
} DWCWiFiInfo;
|
} DWCWiFiInfo;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BOOL nvram_restore(char *path)
|
BOOL nvram_restore(char *path)
|
||||||
{
|
{
|
||||||
BOOL bSuccess;
|
BOOL bSuccess;
|
||||||
|
|||||||
@ -8,6 +8,8 @@ extern "C" {
|
|||||||
// BOOL my_nvram_read( u32 offset, u32 size, void *buf);
|
// BOOL my_nvram_read( u32 offset, u32 size, void *buf);
|
||||||
BOOL nvram_backup(char *path);
|
BOOL nvram_backup(char *path);
|
||||||
BOOL nvram_restore(char *path);
|
BOOL nvram_restore(char *path);
|
||||||
|
BOOL nvram_get(u8 buf[0xa00]);
|
||||||
|
BOOL nvram_set(u8 buf[0xa00]);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@ -851,6 +851,100 @@ BOOL pre_install_debug(FSFile *log_fd, BOOL development_version_flag )
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOL pre_install_eticket_only_process( FSFile *log_fd, BOOL development_version_flag ,
|
||||||
|
MY_USER_APP_TID **tid_buf, int *tid_count)
|
||||||
|
{
|
||||||
|
BOOL ret_flag = TRUE;
|
||||||
|
char *tad_file_name;
|
||||||
|
PRE_INSTALL_FILE *temp_list;
|
||||||
|
u64 tid;
|
||||||
|
char game_code_buf[5];
|
||||||
|
int count = 0;
|
||||||
|
// int i;
|
||||||
|
MY_USER_APP_TID *temp_tid;
|
||||||
|
|
||||||
|
if( development_version_flag ) {
|
||||||
|
(void)pre_install_load_file(PRE_INSTALL_TABLE_DEV_FILE_SD, log_fd, TRUE);
|
||||||
|
(void)pre_install_load_file(PRE_INSTALL_TABLE_DEV_FILE_NAND, log_fd, FALSE);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
(void)pre_install_load_file(PRE_INSTALL_TABLE_FILE_SD, log_fd, TRUE);
|
||||||
|
(void)pre_install_load_file(PRE_INSTALL_TABLE_FILE_NAND, log_fd, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if( pre_install_file_list == NULL) {
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
for( temp_list = pre_install_file_list ; temp_list != NULL ; temp_list = temp_list->next ) {
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
*tid_count = count;
|
||||||
|
if( count > 0 ) {
|
||||||
|
temp_tid = (MY_USER_APP_TID *)OS_Alloc(count * sizeof(MY_USER_APP_TID));
|
||||||
|
*tid_buf = temp_tid;
|
||||||
|
if( *tid_buf == NULL) {
|
||||||
|
mprintf("alloc error.\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
for( temp_list = pre_install_file_list ; temp_list != NULL ; temp_list = temp_list->next ) {
|
||||||
|
tid = temp_list->tid;
|
||||||
|
(void)my_fs_Tid_To_GameCode(tid, game_code_buf);
|
||||||
|
mprintf(" TO %08X %08X [%s] ", (u32)(tid >> 32), (u32)tid, game_code_buf);
|
||||||
|
temp_tid->tid = tid;
|
||||||
|
temp_tid->is_personalized = 1;
|
||||||
|
temp_tid->version = 0;
|
||||||
|
temp_tid->common_and_download = 0;
|
||||||
|
temp_tid->install_success_flag = FALSE;
|
||||||
|
|
||||||
|
tad_file_name = temp_list->file_name;
|
||||||
|
if( tad_file_name ) {
|
||||||
|
if( !STD_StrNCmp( temp_list->file_name, "sdmc:" , STD_StrLen("sdmc:")) ) {
|
||||||
|
ret_flag = my_NAM_ImportTadTicketOnly_sign( tad_file_name );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ret_flag = my_NAM_ImportTadTicketOnly( tad_file_name );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( FALSE == ret_flag ) {
|
||||||
|
/* error チケットインストール失敗? */
|
||||||
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_RED ); /* green */
|
||||||
|
mprintf("NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
miya_log_fprintf(log_fd, "error: import tid=0x%08x%08x %s\n",
|
||||||
|
(u32)(tid >> 32) , (u32)(tid & 0xffffffff), tad_file_name);
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
miya_log_fprintf(log_fd, "OK.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
|
mprintf("OK.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* error ROMにファイルがない */
|
||||||
|
miya_log_fprintf(log_fd, "NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_RED ); /* green */
|
||||||
|
mprintf("NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
mprintf("No file\n");
|
||||||
|
miya_log_fprintf(log_fd, "error: no file\n");
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
temp_tid++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end:
|
||||||
|
|
||||||
|
(void)pre_install_discard_list();
|
||||||
|
return ret_flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL pre_install_process( FSFile *log_fd, MY_USER_APP_TID *title_id_buf_ptr, int title_id_count,
|
BOOL pre_install_process( FSFile *log_fd, MY_USER_APP_TID *title_id_buf_ptr, int title_id_count,
|
||||||
MY_USER_ETICKET_TID *ticket_id_array, int ticket_id_count, BOOL development_version_flag )
|
MY_USER_ETICKET_TID *ticket_id_array, int ticket_id_count, BOOL development_version_flag )
|
||||||
{
|
{
|
||||||
@ -968,7 +1062,7 @@ BOOL pre_install_process( FSFile *log_fd, MY_USER_APP_TID *title_id_buf_ptr, int
|
|||||||
}
|
}
|
||||||
|
|
||||||
if( ret_flag == TRUE ) {
|
if( ret_flag == TRUE ) {
|
||||||
title_id_buf_ptr[i].common_and_download = 1; /* あとでダウンロードするようにチェックをつける。 */
|
title_id_buf_ptr[i].common_and_download = TRUE; /* あとでダウンロードするようにチェックをつける。 */
|
||||||
miya_log_fprintf(log_fd, "OK.\n");
|
miya_log_fprintf(log_fd, "OK.\n");
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
mprintf("OK.\n");
|
mprintf("OK.\n");
|
||||||
|
|||||||
@ -19,6 +19,9 @@ BOOL pre_install_Cleanup_User_Titles( FSFile *log_fd );
|
|||||||
BOOL pre_install_process( FSFile *log_fd, MY_USER_APP_TID *title_id_buf_ptr, int tile_id_count,
|
BOOL pre_install_process( FSFile *log_fd, MY_USER_APP_TID *title_id_buf_ptr, int tile_id_count,
|
||||||
MY_USER_ETICKET_TID *ticket_id_array, int ticket_id_count ,BOOL development_version_flag );
|
MY_USER_ETICKET_TID *ticket_id_array, int ticket_id_count ,BOOL development_version_flag );
|
||||||
|
|
||||||
|
BOOL pre_install_eticket_only_process( FSFile *log_fd, BOOL development_version_flag,
|
||||||
|
MY_USER_APP_TID **tid_buf, int *tid_count);
|
||||||
|
|
||||||
BOOL pre_install_check_download_or_pre_install(u64 tid, int *flag, u8 *es_ver, u16 *ticket_ver, FSFile *log_fd);
|
BOOL pre_install_check_download_or_pre_install(u64 tid, int *flag, u8 *es_ver, u16 *ticket_ver, FSFile *log_fd);
|
||||||
BOOL pre_install_get_version(u64 tid, u16 *version);
|
BOOL pre_install_get_version(u64 tid, u16 *version);
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,7 @@ SRCS = main.c mfiler.c key.c font.c text.c mprintf.c logprintf.c \
|
|||||||
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
||||||
mynuc.c nuc_error_msg.c stream.c myfilename.c menu_version.c \
|
mynuc.c nuc_error_msg.c stream.c myfilename.c menu_version.c \
|
||||||
ntp.c myimport.c pre_install.c \
|
ntp.c myimport.c pre_install.c \
|
||||||
my_rsa_sign.c my_aes.c my_sha.c my_sign.c my_keys.c
|
my_rsa_sign.c my_aes.c my_sha.c my_sign.c my_keys.c wifi_cfg.c
|
||||||
|
|
||||||
|
|
||||||
TARGET_BIN = copy_dst.srl
|
TARGET_BIN = copy_dst.srl
|
||||||
@ -162,6 +162,8 @@ $(TARGET_AUTOBOOT): ./bin/$(TWL_BUILDTYPE)/$(TARGET_BIN)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
do-build: $(TARGETS) $(TARGET_AUTOBOOT)
|
do-build: $(TARGETS) $(TARGET_AUTOBOOT)
|
||||||
|
|
||||||
|
|
||||||
@ -170,6 +172,7 @@ $(BINDIR)/$(TARGET_BIN_BASENAME).$(TWL_ELF_EXT): MakefileTad.inc MakefileTadDev.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
include $(TWLWIFI_ROOT)/build/buildtools/modulerules
|
include $(TWLWIFI_ROOT)/build/buildtools/modulerules
|
||||||
|
|||||||
331
build/tools/sctools/copy_dst/copy_dst_china.rsf
Normal file
331
build/tools/sctools/copy_dst/copy_dst_china.rsf
Normal file
@ -0,0 +1,331 @@
|
|||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - include
|
||||||
|
# File: ROM-TS.rsf
|
||||||
|
#
|
||||||
|
# Copyright 2007-2008 Nintendo. All rights reserved.
|
||||||
|
#
|
||||||
|
# These coded insructions, statements, and computer programs contain
|
||||||
|
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
# Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
# not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
# in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
#
|
||||||
|
# $Date:: 2008-09-26#$
|
||||||
|
# $Rev: 8709 $
|
||||||
|
# $Author: hatamoto_minoru $
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# TWL ROM SPEC FILE
|
||||||
|
#
|
||||||
|
|
||||||
|
Arm9
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM9:r).TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||||
|
Elf "$(MAKEROM_ARM9:r).tef"
|
||||||
|
}
|
||||||
|
|
||||||
|
Arm7
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM7_BASE:r).TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||||
|
Elf "$(MAKEROM_ARM7_BASE:r).tef"
|
||||||
|
}
|
||||||
|
|
||||||
|
Arm9.Ltd
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM9:r).TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||||
|
}
|
||||||
|
|
||||||
|
Arm7.Ltd
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM7_BASE:r).TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||||
|
}
|
||||||
|
|
||||||
|
Property
|
||||||
|
{
|
||||||
|
###
|
||||||
|
### Settings for FinalROM
|
||||||
|
###
|
||||||
|
#### BEGIN
|
||||||
|
#
|
||||||
|
# TITLE NAME: Your product name within 12bytes
|
||||||
|
#
|
||||||
|
#TitleName "MY APP NAME"
|
||||||
|
|
||||||
|
#
|
||||||
|
# MAKER CODE: Your company ID# in 2 ascii words
|
||||||
|
# issued by NINTENDO
|
||||||
|
#
|
||||||
|
MakerCode 01
|
||||||
|
|
||||||
|
#
|
||||||
|
# REMASTER VERSION: Mastering version
|
||||||
|
#
|
||||||
|
#RemasterVersion 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM SPEED TYPE: [MROM/1TROM/UNDEFINED]
|
||||||
|
#
|
||||||
|
RomSpeedType $(MAKEROM_ROMSPEED)
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM SIZE: in bit [64M/128M/256M/512M/1G/2G/4G]
|
||||||
|
#
|
||||||
|
#RomSize 256M
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM PADDING: TRUE if finalrom
|
||||||
|
#
|
||||||
|
#RomFootPadding TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM HEADER TEMPLATE: Provided to every product by NINTENDO
|
||||||
|
#
|
||||||
|
#RomHeaderTemplate ./etc/rom_header.template.sbin
|
||||||
|
|
||||||
|
#
|
||||||
|
# BANNER FILE: generated from Banner Spec File
|
||||||
|
#
|
||||||
|
BannerFile "banner/banner.bnr"
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Permit LandingNormalJump: for TWL "ApplicationJump" function [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#PermitLandingNormalJump FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Permit LandingTmpJump: for TWL "ApplicationJump" function [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#PermitLandingTmpJump FALSE
|
||||||
|
|
||||||
|
###
|
||||||
|
### Setting for TWL
|
||||||
|
###
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM HEADER Ltd: Provided to every product by NINTENDO
|
||||||
|
#
|
||||||
|
RomHeaderLtd $(TWLSDK_ROOT)/tools/bin/rom_header.LTD.sbin
|
||||||
|
|
||||||
|
#
|
||||||
|
# Digest parameters:
|
||||||
|
#
|
||||||
|
DigestParam 1024 32
|
||||||
|
|
||||||
|
#
|
||||||
|
# WRAM mapping: [MAP_BB_HYB/MAP_BB_LTD/MAP_TS_HYB/MAP_TS_LTD
|
||||||
|
# MAP2_BB_HYB/MAP2_BB_LTD/MAP2_TS_HYB/MAP2_TS_LTD]
|
||||||
|
# don't have to edit
|
||||||
|
#
|
||||||
|
WramMapping MAP_TS_SCR
|
||||||
|
|
||||||
|
#
|
||||||
|
# CardRegion: card region [Japan/America/Europe/Australia/China/Korea]
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
CardRegion China
|
||||||
|
|
||||||
|
ForChina TRUE
|
||||||
|
|
||||||
|
# CardRegion All
|
||||||
|
|
||||||
|
#
|
||||||
|
# CommonClientKey: launcher deliver common client Key [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
CommonClientKey TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# HwAESSlotA_SSLClientCert: launcher deliver HW AES slot A setting [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
HwAESSlotA_SSLClientCert TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# HwAESSlotB: launcher deliver HW AES slot B setting [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
HwAESSlotB TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# HwAESSlotB for Sign JPEG for Launcher: launcher deliver HW AES slot B setting for Sign JPEG for Launcher [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#HwAESSlotB_SignJPEGForLauncher FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# HwAESSlotB for Sign JPEG for User: launcher deliver HW AES slot B setting for Sign JPEG for User [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#HwAESSlotB_SignJPEGForUser FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# HwAESSlotC: launcher deliver HW AES slot C setting [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#HwAESSlotC FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# SDCardAccess: sd card access control [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
SDCardAccess ReadWrite
|
||||||
|
|
||||||
|
#
|
||||||
|
# NANDAccess: NAND access control [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
NANDAccess TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Codec mode:
|
||||||
|
# don't have to edit
|
||||||
|
#
|
||||||
|
CodecMode $(MAKEROM_CODEC_MODE)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Disp WiFiConnection Icon for Launcher [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#WiFiConnectionIcon FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Disp DSWireless Icon for Launcher [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#DSWirelessIcon FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Disable debug [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
DisableDebug FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Agree EULA [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#AgreeEULA FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Agree EULA version [1 - 255]
|
||||||
|
#
|
||||||
|
#AgreeEULAVersion 1
|
||||||
|
|
||||||
|
###
|
||||||
|
#### END
|
||||||
|
}
|
||||||
|
|
||||||
|
AppendProperty
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Publisher : "Nintendo"
|
||||||
|
# don't have to edit
|
||||||
|
#Publisher Nintendo
|
||||||
|
|
||||||
|
#
|
||||||
|
# Application type : [USER/SYSTEM]
|
||||||
|
# don't have to edit
|
||||||
|
AppType System
|
||||||
|
|
||||||
|
#
|
||||||
|
# launch title on the launcher : [TRUE/FALSE]
|
||||||
|
# don't have to edit
|
||||||
|
#Launch TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Boot allowed Media: [GameCard]
|
||||||
|
#
|
||||||
|
Media GameCard
|
||||||
|
|
||||||
|
#
|
||||||
|
# Data only title : [TRUE/FALSE]
|
||||||
|
# don't have to edit
|
||||||
|
#DataOnly FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Secure title : [TRUE/FALSE]
|
||||||
|
# don't have to edit
|
||||||
|
Secure TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# InitialCode : Your InitialCode in 4 ascii words
|
||||||
|
#
|
||||||
|
#InitialCode ABCJ
|
||||||
|
|
||||||
|
#
|
||||||
|
# Public save data size: [0-/0K-/0M-]
|
||||||
|
#
|
||||||
|
#PublicSaveDataSize 0K
|
||||||
|
|
||||||
|
#
|
||||||
|
# Private save data size: [0-/0K-/0M-]
|
||||||
|
#
|
||||||
|
#PrivateSaveDataSize 0K
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable SubBannerFile: [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#SubBannerFile FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Game card power on: [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
GameCardOn FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Game card transferd to nitro mode: [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#GameCardNitroMode FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Shared2 file size: [DISABLE/0-4194304/0K-4096K/0M-4M]
|
||||||
|
#
|
||||||
|
#Shared2File0Size Disable
|
||||||
|
#Shared2File1Size Disable
|
||||||
|
#Shared2File2Size Disable
|
||||||
|
#Shared2File3Size Disable
|
||||||
|
#Shared2File4Size Disable
|
||||||
|
#Shared2File5Size Disable
|
||||||
|
}
|
||||||
|
|
||||||
|
RomSpec
|
||||||
|
{
|
||||||
|
Offset 0x00000000
|
||||||
|
Segment ALL
|
||||||
|
HostRoot $(MAKEROM_ROMROOT)
|
||||||
|
Root /
|
||||||
|
File $(MAKEROM_ROMFILES)
|
||||||
|
}
|
||||||
|
|
||||||
|
Rating
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Permited age to play for each rating organization
|
||||||
|
#
|
||||||
|
# Supported organization
|
||||||
|
# - CERO (OGN0) : for Japan
|
||||||
|
# - ESRB (OGN1) : for North America
|
||||||
|
# - BBFC (OGN2) : obsolete organization
|
||||||
|
# - USK (OGN3) : for German
|
||||||
|
# - PEGI_GEN (OGN4) : for Europe
|
||||||
|
# - PEGI_FINLAND (OGN5) : obsolete organization
|
||||||
|
# - PEGI_PRT (OGN6) : for Portugal
|
||||||
|
# - PEGI_BBFC (OGN7) : for UK
|
||||||
|
# - OFLC (OGN8) : for Australia and NewZealand
|
||||||
|
# - GRB (OGN9) : for Korea
|
||||||
|
# - OGN10 : reserved
|
||||||
|
# - OGN11 : reserved
|
||||||
|
# - OGN12 : reserved
|
||||||
|
# - OGN13 : reserved
|
||||||
|
# - OGN14 : reserved
|
||||||
|
# - OGN15 : reserved
|
||||||
|
#
|
||||||
|
# Available age [ 0 - 31 / PENDING / FREE ]
|
||||||
|
|
||||||
|
# CERO FREE
|
||||||
|
# ESRB FREE
|
||||||
|
# USK FREE
|
||||||
|
# PEGI_GEN FREE
|
||||||
|
# PEGI_PRT FREE
|
||||||
|
# PEGI_BBFC FREE
|
||||||
|
# OFLC FREE
|
||||||
|
# GRB FREE
|
||||||
|
}
|
||||||
@ -58,6 +58,7 @@
|
|||||||
#include "myimport.h"
|
#include "myimport.h"
|
||||||
#include "pre_install.h"
|
#include "pre_install.h"
|
||||||
|
|
||||||
|
#include "wifi_cfg.h"
|
||||||
|
|
||||||
#include <twl/ltdmain_begin.h>
|
#include <twl/ltdmain_begin.h>
|
||||||
|
|
||||||
@ -71,6 +72,7 @@
|
|||||||
#define THREAD_COMMAND_WIFI_FUNCTION 2
|
#define THREAD_COMMAND_WIFI_FUNCTION 2
|
||||||
#define THREAD_COMMAND_USERDATA_AND_WIFI_FUNCTION 3
|
#define THREAD_COMMAND_USERDATA_AND_WIFI_FUNCTION 3
|
||||||
#define THREAD_COMMAND_REBOOT_FUNCTION 4
|
#define THREAD_COMMAND_REBOOT_FUNCTION 4
|
||||||
|
#define THREAD_COMMAND_RESTORE_SAVEDATA_FUNCTION 5
|
||||||
|
|
||||||
|
|
||||||
#define FREE_REG_POWERON_REBOOT 0x00
|
#define FREE_REG_POWERON_REBOOT 0x00
|
||||||
@ -80,6 +82,7 @@
|
|||||||
|
|
||||||
static BOOL only_wifi_config_data_trans_flag = FALSE;
|
static BOOL only_wifi_config_data_trans_flag = FALSE;
|
||||||
static BOOL user_and_wifi_config_data_trans_flag = FALSE;
|
static BOOL user_and_wifi_config_data_trans_flag = FALSE;
|
||||||
|
static BOOL only_restore_savedata_flag = FALSE;
|
||||||
static BOOL no_network_flag = FALSE;
|
static BOOL no_network_flag = FALSE;
|
||||||
static BOOL completed_flag = FALSE;
|
static BOOL completed_flag = FALSE;
|
||||||
static FSEventHook sSDHook;
|
static FSEventHook sSDHook;
|
||||||
@ -163,7 +166,7 @@ static int vram_num_sub = 0;
|
|||||||
static LCFGTWLHWNormalInfo hwn_info;
|
static LCFGTWLHWNormalInfo hwn_info;
|
||||||
static LCFGTWLHWSecureInfo hws_info;
|
static LCFGTWLHWSecureInfo hws_info;
|
||||||
|
|
||||||
#define MY_STACK_SIZE (1024*64) /* でかいほうがいい */
|
#define MY_STACK_SIZE (1024*128) /* でかいほうがいい */
|
||||||
//#define MY_THREAD_PRIO 20
|
//#define MY_THREAD_PRIO 20
|
||||||
|
|
||||||
#define MY_THREAD_PRIO 10
|
#define MY_THREAD_PRIO 10
|
||||||
@ -635,19 +638,15 @@ static BOOL RestoreFromSDCard6(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* この関数は機能詰めすぎ。バラした方がいい。 */
|
||||||
static BOOL RestoreFromSDCard7(void)
|
static BOOL RestoreFromSDCard7(void)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
ECError rv;
|
|
||||||
BOOL ret_flag = TRUE;
|
BOOL ret_flag = TRUE;
|
||||||
FSFile *log_fd;
|
FSFile *log_fd = NULL;
|
||||||
int ec_download_ret;
|
u64 tid;
|
||||||
char game_code_buf[5];
|
char game_code_buf[5];
|
||||||
int is_personalized;
|
int is_personalized;
|
||||||
u64 tid;
|
int i;
|
||||||
MY_USER_ETICKET_TID *eticket_only_id_buf = NULL;
|
|
||||||
int num_of_eticket_only_titles = 0;
|
|
||||||
|
|
||||||
title_id_count = 0;
|
title_id_count = 0;
|
||||||
if( title_id_buf_ptr != NULL ) {
|
if( title_id_buf_ptr != NULL ) {
|
||||||
@ -655,14 +654,6 @@ static BOOL RestoreFromSDCard7(void)
|
|||||||
title_id_buf_ptr = NULL;
|
title_id_buf_ptr = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
title_id_count = 0;
|
|
||||||
rv = EC_ERROR_OK;
|
|
||||||
|
|
||||||
/* hws_info.serialNoは戻せない */
|
|
||||||
|
|
||||||
log_fd = hatamotolib_log_start( MyFile_GetEcDownloadLogFileName() );
|
|
||||||
|
|
||||||
|
|
||||||
if( mydata.num_of_user_app > 0 ) {
|
if( mydata.num_of_user_app > 0 ) {
|
||||||
miya_log_fprintf(log_fd,"User title list loading\n");
|
miya_log_fprintf(log_fd,"User title list loading\n");
|
||||||
mprintf("User title list load ");
|
mprintf("User title list load ");
|
||||||
@ -709,7 +700,88 @@ static BOOL RestoreFromSDCard7(void)
|
|||||||
miya_log_fprintf(log_fd,"Original user app. list saving failed\n");
|
miya_log_fprintf(log_fd,"Original user app. list saving failed\n");
|
||||||
mprintf("Original user app. list saving failed\n");
|
mprintf("Original user app. list saving failed\n");
|
||||||
}
|
}
|
||||||
|
return ret_flag;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static BOOL RestoreFromSDCard8(void)
|
||||||
|
{
|
||||||
|
ECError rv;
|
||||||
|
BOOL ret_flag = TRUE;
|
||||||
|
FSFile *log_fd;
|
||||||
|
int ec_download_ret;
|
||||||
|
#if 0
|
||||||
|
char game_code_buf[5];
|
||||||
|
u64 tid;
|
||||||
|
int i;
|
||||||
|
int is_personalized;
|
||||||
|
#endif
|
||||||
|
MY_USER_ETICKET_TID *eticket_only_id_buf = NULL;
|
||||||
|
int num_of_eticket_only_titles = 0;
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
title_id_count = 0;
|
||||||
|
if( title_id_buf_ptr != NULL ) {
|
||||||
|
OS_Free( title_id_buf_ptr );
|
||||||
|
title_id_buf_ptr = NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
rv = EC_ERROR_OK;
|
||||||
|
|
||||||
|
/* hws_info.serialNoは戻せない */
|
||||||
|
|
||||||
|
log_fd = hatamotolib_log_start( MyFile_GetEcDownloadLogFileName() );
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
if( mydata.num_of_user_app > 0 ) {
|
||||||
|
miya_log_fprintf(log_fd,"User title list loading\n");
|
||||||
|
mprintf("User title list load ");
|
||||||
|
if( TRUE == UserTitleIDLoad( MyFile_GetUserTitleIDFileName(), &title_id_buf_ptr,
|
||||||
|
&title_id_count, MyFile_GetUserTitleIDRestoreLogFileName()) ) {
|
||||||
|
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
|
mprintf("OK.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
for( i = 0; i < title_id_count ; i++ ) {
|
||||||
|
/*
|
||||||
|
インストール成功フラグの初期化
|
||||||
|
とりあえず全部失敗状態にする。
|
||||||
|
*/
|
||||||
|
title_id_buf_ptr[i].install_success_flag = FALSE;
|
||||||
|
tid = title_id_buf_ptr[i].tid;
|
||||||
|
is_personalized = title_id_buf_ptr[i].is_personalized;
|
||||||
|
|
||||||
|
(void)my_fs_Tid_To_GameCode(tid, game_code_buf);
|
||||||
|
mprintf(" id %08X %08X [%s] ", (u32)(tid >> 32), (u32)tid, game_code_buf);
|
||||||
|
if( is_personalized == 1 ) {
|
||||||
|
mprintf("Pre\n"); /* プリインストール物 */
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mprintf("Dwn\n"); /* ダウンロード物 */
|
||||||
|
}
|
||||||
|
|
||||||
|
miya_log_fprintf(log_fd," id %08X %08X [%s] %c\n", (u32)(tid >> 32), (u32)tid, game_code_buf,
|
||||||
|
(is_personalized == 1)? 'P':'D');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ret_flag = FALSE;
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
|
mprintf("NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( mydata.num_of_user_app == 0 ) {
|
||||||
|
miya_log_fprintf(log_fd,"Original device has no user app.\n");
|
||||||
|
mprintf("Original device has no user download app.\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
miya_log_fprintf(log_fd,"Original user app. list saving failed\n");
|
||||||
|
mprintf("Original user app. list saving failed\n");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* miya 2009/5/8
|
/* miya 2009/5/8
|
||||||
ここで書き込み側に入ってるプリンインストールものを全部消す!
|
ここで書き込み側に入ってるプリンインストールものを全部消す!
|
||||||
@ -783,9 +855,9 @@ static BOOL RestoreFromSDCard7(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if( no_network_flag == TRUE ) {
|
if( no_network_flag == TRUE ) {
|
||||||
miya_log_fprintf(log_fd,"no network flag ON\n");
|
miya_log_fprintf(log_fd,"no network flag ON\n");
|
||||||
|
|
||||||
goto network_connection_end;
|
goto network_connection_end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -793,9 +865,10 @@ static BOOL RestoreFromSDCard7(void)
|
|||||||
/* ネットワークにつながなくていいか? */
|
/* ネットワークにつながなくていいか? */
|
||||||
miya_log_fprintf(log_fd,"no shop record \n");
|
miya_log_fprintf(log_fd,"no shop record \n");
|
||||||
mprintf(" (--no shop record--)\n");
|
mprintf(" (--no shop record--)\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
network_connetion_start:
|
||||||
|
|
||||||
|
|
||||||
miya_log_fprintf(log_fd,"EC download\n");
|
miya_log_fprintf(log_fd,"EC download\n");
|
||||||
@ -857,8 +930,6 @@ static BOOL RestoreFromSDCard7(void)
|
|||||||
// 不要:セーブデータ領域を作成
|
// 不要:セーブデータ領域を作成
|
||||||
// NAM_Init を忘れてた
|
// NAM_Init を忘れてた
|
||||||
|
|
||||||
// SetupTitlesDataFile((NAMTitleId *)title_id_buf_ptr , (u32)title_id_count);
|
|
||||||
|
|
||||||
SetupTitlesDataFile((MY_USER_APP_TID *)title_id_buf_ptr , (u32)title_id_count);
|
SetupTitlesDataFile((MY_USER_APP_TID *)title_id_buf_ptr , (u32)title_id_count);
|
||||||
|
|
||||||
end_ec_f:
|
end_ec_f:
|
||||||
@ -919,7 +990,7 @@ static BOOL RestoreFromSDCard7(void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static BOOL RestoreFromSDCard8(void)
|
static BOOL RestoreFromSDCard9(void)
|
||||||
{
|
{
|
||||||
int list_count;
|
int list_count;
|
||||||
int error_count;
|
int error_count;
|
||||||
@ -965,8 +1036,57 @@ static BOOL RestoreFromSDCard8(void)
|
|||||||
return ret_flag;
|
return ret_flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BOOL RestoreFromSDCard10(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
BOOL first_check = FALSE;
|
||||||
|
u64 tid;
|
||||||
|
char game_code_buf[5];
|
||||||
|
BOOL ret_flag = TRUE;
|
||||||
|
|
||||||
static BOOL RestoreFromSDCard9(void)
|
if( mydata.shop_record_flag == FALSE ) {
|
||||||
|
for( i = 0; i < title_id_count ; i++ ) {
|
||||||
|
if( title_id_buf_ptr[i].common_and_download == TRUE ) {
|
||||||
|
/* あとでダウンロードするようにチェックをつけたやつ */
|
||||||
|
if( first_check == FALSE ) {
|
||||||
|
first_check = TRUE;
|
||||||
|
mprintf("\n");
|
||||||
|
if( mydata.dev_dot_kp_flag == TRUE ) {
|
||||||
|
/* net.log はないけど、dev.kp はある。 */
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_PINK );
|
||||||
|
text_blink_current_line(tc[0]);
|
||||||
|
mprintf("User network account\n");
|
||||||
|
text_blink_current_line(tc[0]);
|
||||||
|
mprintf(" has been deleted!\n");
|
||||||
|
mprintf("\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_YELLOW );
|
||||||
|
mprintf("Please update\n the following apps in the SD card\n");
|
||||||
|
mprintf(" OR, download from the Internet.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_YELLOW );
|
||||||
|
mprintf("Please update\n the following apps in the SD card.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tid = title_id_buf_ptr[i].tid;
|
||||||
|
(void)my_fs_Tid_To_GameCode(tid, game_code_buf);
|
||||||
|
mprintf(" id %08X %08X [%s]\n", (u32)(tid >> 32), (u32)tid, game_code_buf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( first_check == TRUE) {
|
||||||
|
mprintf("\n");
|
||||||
|
ret_flag = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret_flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static BOOL RestoreFromSDCard11(void)
|
||||||
{
|
{
|
||||||
if( title_id_buf_ptr != NULL ) {
|
if( title_id_buf_ptr != NULL ) {
|
||||||
OS_Free( title_id_buf_ptr );
|
OS_Free( title_id_buf_ptr );
|
||||||
@ -977,6 +1097,8 @@ static BOOL RestoreFromSDCard9(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef BOOL (*function_ptr)(void);
|
typedef BOOL (*function_ptr)(void);
|
||||||
|
|
||||||
static function_ptr function_table[] =
|
static function_ptr function_table[] =
|
||||||
@ -990,10 +1112,13 @@ static function_ptr function_table[] =
|
|||||||
RestoreFromSDCard7,
|
RestoreFromSDCard7,
|
||||||
RestoreFromSDCard8,
|
RestoreFromSDCard8,
|
||||||
RestoreFromSDCard9,
|
RestoreFromSDCard9,
|
||||||
|
RestoreFromSDCard10,
|
||||||
|
RestoreFromSDCard11,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int function_table_max = sizeof(function_table) / sizeof(*function_table);
|
static int function_table_max = sizeof(function_table) / sizeof(*function_table);
|
||||||
static int function_counter = 0;
|
static int function_counter = 0;
|
||||||
|
static int current_function_table_max = sizeof(function_table) / sizeof(*function_table);
|
||||||
|
|
||||||
|
|
||||||
static void MyThreadProc(void *arg)
|
static void MyThreadProc(void *arg)
|
||||||
@ -1003,6 +1128,7 @@ static void MyThreadProc(void *arg)
|
|||||||
BOOL flag;
|
BOOL flag;
|
||||||
BOOL twl_card_validation_flag;
|
BOOL twl_card_validation_flag;
|
||||||
u32 command;
|
u32 command;
|
||||||
|
int i;
|
||||||
|
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
|
||||||
@ -1016,6 +1142,7 @@ static void MyThreadProc(void *arg)
|
|||||||
switch( command ) {
|
switch( command ) {
|
||||||
case THREAD_COMMAND_FULL_FUNCTION:
|
case THREAD_COMMAND_FULL_FUNCTION:
|
||||||
|
|
||||||
|
current_function_table_max = function_table_max;
|
||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
|
||||||
if( miya_debug_level == 1 || ( my_fs_get_print_debug_flag() == TRUE )) {
|
if( miya_debug_level == 1 || ( my_fs_get_print_debug_flag() == TRUE )) {
|
||||||
@ -1035,7 +1162,7 @@ static void MyThreadProc(void *arg)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case THREAD_COMMAND_WIFI_FUNCTION:
|
case THREAD_COMMAND_WIFI_FUNCTION:
|
||||||
function_table_max = 1;
|
current_function_table_max = 1;
|
||||||
function_counter = 0;
|
function_counter = 0;
|
||||||
if( FALSE == RestoreFromSDCard3() ) {
|
if( FALSE == RestoreFromSDCard3() ) {
|
||||||
flag = FALSE;
|
flag = FALSE;
|
||||||
@ -1043,7 +1170,7 @@ static void MyThreadProc(void *arg)
|
|||||||
function_counter++;
|
function_counter++;
|
||||||
break;
|
break;
|
||||||
case THREAD_COMMAND_USERDATA_AND_WIFI_FUNCTION:
|
case THREAD_COMMAND_USERDATA_AND_WIFI_FUNCTION:
|
||||||
function_table_max = 2;
|
current_function_table_max = 2;
|
||||||
function_counter = 0;
|
function_counter = 0;
|
||||||
if( FALSE == RestoreFromSDCard4() ) {
|
if( FALSE == RestoreFromSDCard4() ) {
|
||||||
flag = FALSE;
|
flag = FALSE;
|
||||||
@ -1060,9 +1187,32 @@ static void MyThreadProc(void *arg)
|
|||||||
MCU_SetFreeRegister( FREE_REG_POWERON_REBOOT );
|
MCU_SetFreeRegister( FREE_REG_POWERON_REBOOT );
|
||||||
PM_ReadyToExit();
|
PM_ReadyToExit();
|
||||||
OS_Sleep(100000);
|
OS_Sleep(100000);
|
||||||
|
break;
|
||||||
|
case THREAD_COMMAND_RESTORE_SAVEDATA_FUNCTION:
|
||||||
|
current_function_table_max = 3;
|
||||||
|
function_counter = 0;
|
||||||
|
|
||||||
|
if( FALSE == RestoreFromSDCard7() ) {
|
||||||
|
flag = FALSE;
|
||||||
|
}
|
||||||
|
function_counter++;
|
||||||
|
|
||||||
|
for( i = 0 ; i < title_id_count ; i++ ) {
|
||||||
|
title_id_buf_ptr[i].install_success_flag = TRUE;
|
||||||
|
}
|
||||||
|
if( FALSE == RestoreFromSDCard9() ) {
|
||||||
|
flag = FALSE;
|
||||||
|
}
|
||||||
|
function_counter++;
|
||||||
|
|
||||||
|
if( FALSE == RestoreFromSDCard11() ) {
|
||||||
|
flag = FALSE;
|
||||||
|
}
|
||||||
|
function_counter++;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
function_table_max = 0;
|
current_function_table_max = 0;
|
||||||
function_counter = 0;
|
function_counter = 0;
|
||||||
flag = FALSE;
|
flag = FALSE;
|
||||||
mprintf("%s unknown command!\n",__FUNCTION__);
|
mprintf("%s unknown command!\n",__FUNCTION__);
|
||||||
@ -1198,10 +1348,8 @@ static void MyThreadProcNuc(void *arg)
|
|||||||
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
RTC_NTP_SYNC();
|
RTC_NTP_SYNC();
|
||||||
|
|
||||||
|
|
||||||
/* NSSL_Init()呼んではダメ! */
|
/* NSSL_Init()呼んではダメ! */
|
||||||
log_fd = my_nuc_log_start( MyFile_GetNupLogFileName() );
|
log_fd = my_nuc_log_start( MyFile_GetNupLogFileName() );
|
||||||
ret_flag = my_numc_proc();
|
ret_flag = my_numc_proc();
|
||||||
@ -1314,11 +1462,25 @@ void TwlMain(void)
|
|||||||
u16 BatterylevelBuf = 0;
|
u16 BatterylevelBuf = 0;
|
||||||
BOOL isAcConnectedBuf = FALSE;
|
BOOL isAcConnectedBuf = FALSE;
|
||||||
|
|
||||||
|
u32 IPADDR;
|
||||||
|
u32 NETMASK;
|
||||||
|
u32 GATEWAY;
|
||||||
|
u32 DNS1;
|
||||||
|
u32 DNS2;
|
||||||
|
|
||||||
#ifdef CHINA_LIMITED
|
#ifdef CHINA_LIMITED
|
||||||
BOOL isIgnoreKeyInput = FALSE;
|
BOOL isIgnoreKeyInput = FALSE;
|
||||||
|
static const char *isbn[4] = { "000-0-000000-00-0", "000-0000-000", "0000", "000" };
|
||||||
|
// static const char *isbn[4] = { "978-7-900381-62-7", "025-2004-017", "2005", "065" };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CHINA_LIMITED
|
||||||
|
OS_InitChina(isbn, OS_CHINA_ISBN_NO_DISP);
|
||||||
|
#else
|
||||||
OS_Init();
|
OS_Init();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
OS_InitThread();
|
OS_InitThread();
|
||||||
|
|
||||||
OS_InitTick();
|
OS_InitTick();
|
||||||
@ -1656,6 +1818,7 @@ void TwlMain(void)
|
|||||||
Gfx_Set_BG1_line_Color(1, 2, (u16)M_TEXT_COLOR_ORANGE);
|
Gfx_Set_BG1_line_Color(1, 2, (u16)M_TEXT_COLOR_ORANGE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
while( 1 ) {
|
while( 1 ) {
|
||||||
Gfx_Render( vram_num_main , vram_num_sub );
|
Gfx_Render( vram_num_main , vram_num_sub );
|
||||||
OS_WaitVBlankIntr();
|
OS_WaitVBlankIntr();
|
||||||
@ -1715,7 +1878,7 @@ void TwlMain(void)
|
|||||||
mydata.wireless_lan_param_flag = TRUE;
|
mydata.wireless_lan_param_flag = TRUE;
|
||||||
vram_num_sub = 0;
|
vram_num_sub = 0;
|
||||||
MydataLoadDecrypt_message_flag = TRUE;
|
MydataLoadDecrypt_message_flag = TRUE;
|
||||||
MydataLoadDecrypt_dir_flag = TRUE;
|
// MydataLoadDecrypt_dir_flag = TRUE;
|
||||||
MydataLoadDecrypt_success_flag = TRUE;
|
MydataLoadDecrypt_success_flag = TRUE;
|
||||||
|
|
||||||
start_my_thread( THREAD_COMMAND_WIFI_FUNCTION );
|
start_my_thread( THREAD_COMMAND_WIFI_FUNCTION );
|
||||||
@ -1726,11 +1889,19 @@ void TwlMain(void)
|
|||||||
mydata.wireless_lan_param_flag = TRUE;
|
mydata.wireless_lan_param_flag = TRUE;
|
||||||
vram_num_sub = 0;
|
vram_num_sub = 0;
|
||||||
MydataLoadDecrypt_message_flag = TRUE;
|
MydataLoadDecrypt_message_flag = TRUE;
|
||||||
MydataLoadDecrypt_dir_flag = TRUE;
|
// MydataLoadDecrypt_dir_flag = TRUE;
|
||||||
MydataLoadDecrypt_success_flag = TRUE;
|
MydataLoadDecrypt_success_flag = TRUE;
|
||||||
|
|
||||||
start_my_thread( THREAD_COMMAND_USERDATA_AND_WIFI_FUNCTION );
|
start_my_thread( THREAD_COMMAND_USERDATA_AND_WIFI_FUNCTION );
|
||||||
}
|
}
|
||||||
|
else if( only_restore_savedata_flag == TRUE ) {
|
||||||
|
vram_num_sub = 0;
|
||||||
|
MydataLoadDecrypt_success_flag = MydataLoadDecrypt( MyFile_GetGlobalInformationFileName(),
|
||||||
|
&mydata, sizeof(MyData), NULL);
|
||||||
|
if(TRUE == MydataLoadDecrypt_success_flag ) {
|
||||||
|
start_my_thread( THREAD_COMMAND_RESTORE_SAVEDATA_FUNCTION );
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
mprintf("Personal data. restore ");
|
mprintf("Personal data. restore ");
|
||||||
MydataLoadDecrypt_success_flag = MydataLoadDecrypt( MyFile_GetGlobalInformationFileName(),
|
MydataLoadDecrypt_success_flag = MydataLoadDecrypt( MyFile_GetGlobalInformationFileName(),
|
||||||
@ -1864,15 +2035,211 @@ void TwlMain(void)
|
|||||||
mprintf("debug level %d\n", miya_debug_level );
|
mprintf("debug level %d\n", miya_debug_level );
|
||||||
}
|
}
|
||||||
else if ( keyData & PAD_BUTTON_X ) {
|
else if ( keyData & PAD_BUTTON_X ) {
|
||||||
if( TRUE == reboot_flag ) {
|
if( FALSE == reboot_flag ) {
|
||||||
|
//miya 20091116
|
||||||
|
|
||||||
|
int slot_no = 0;
|
||||||
|
char *ssid_str;
|
||||||
|
u8 key_bin_buf[0x40];
|
||||||
|
int key_bin_len;
|
||||||
|
int wlan_mode;
|
||||||
|
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
|
||||||
|
mprintf("-wlan settings read ");
|
||||||
|
if( TRUE == wifi_config_nvram_get() ) {
|
||||||
|
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], M_TEXT_COLOR_RED );
|
||||||
|
mprintf("NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
mprintf("-Wireless AP conf. load ");
|
||||||
|
if( FALSE == LoadWlanConfigFile("sdmc:/wlan_cfg.txt") ) {
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_RED );
|
||||||
|
mprintf("NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_GREEN ); /* green */
|
||||||
|
mprintf("OK.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
|
||||||
|
// wifi_config_print();
|
||||||
|
if( FALSE == wifi_config_clear_slot(slot_no) ) {
|
||||||
|
OS_TPrintf("Error: wifi_config_clear_slot\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_BLUE );
|
||||||
|
|
||||||
|
ssid_str = GetWlanSSID();
|
||||||
|
if( ssid_str ) {
|
||||||
|
mprintf(" ssid = %s\n",ssid_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
if( FALSE == wifi_config_set_ssid(slot_no, ssid_str, STD_StrLen(ssid_str) ) ) {
|
||||||
|
OS_TPrintf("Error: wifi_config_set_ssid\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
mprintf(" MODE = ");
|
||||||
|
wlan_mode = GetWlanMode();
|
||||||
|
switch( wlan_mode ) {
|
||||||
|
case WCM_WEPMODE_NONE:
|
||||||
|
mprintf("NONE\n");
|
||||||
|
break;
|
||||||
|
case WM_WEPMODE_40BIT:
|
||||||
|
mprintf("WEP40\n");
|
||||||
|
break;
|
||||||
|
case WM_WEPMODE_104BIT:
|
||||||
|
mprintf("WEP104\n");
|
||||||
|
break;
|
||||||
|
case WM_WEPMODE_128BIT:
|
||||||
|
mprintf("WEP128\n");
|
||||||
|
break;
|
||||||
|
case WCM_WEPMODE_WPA_TKIP:
|
||||||
|
mprintf("WPA-TKIP\n");
|
||||||
|
break;
|
||||||
|
case WCM_WEPMODE_WPA2_TKIP:
|
||||||
|
mprintf("WPA2-TKIP\n");
|
||||||
|
break;
|
||||||
|
case WCM_WEPMODE_WPA_AES:
|
||||||
|
mprintf("WPA-AES\n");
|
||||||
|
break;
|
||||||
|
case WCM_WEPMODE_WPA2_AES :
|
||||||
|
mprintf("WPA2-AES\n");
|
||||||
|
break;
|
||||||
|
defalut:
|
||||||
|
mprintf("Unknow mode..\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch( wlan_mode ) {
|
||||||
|
case WM_WEPMODE_40BIT:
|
||||||
|
case WM_WEPMODE_104BIT:
|
||||||
|
case WM_WEPMODE_128BIT:
|
||||||
|
if( TRUE == GetKeyModeStr() ) {
|
||||||
|
if( FALSE == wifi_config_set_wep_key_str(slot_no, wlan_mode, GetWlanKEYSTR() )) {
|
||||||
|
mprintf("Error: wifi_config_wep_key_str\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mprintf(" key = %s\n", GetWlanKEYSTR());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
key_bin_len = GetWlanKEYBIN(key_bin_buf);
|
||||||
|
if( FALSE == wifi_config_set_wep_key_bin(slot_no, wlan_mode, key_bin_buf, key_bin_len)){
|
||||||
|
mprintf("Error: wifi_config_wep_key_bin\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case WCM_WEPMODE_WPA_TKIP:
|
||||||
|
case WCM_WEPMODE_WPA2_TKIP:
|
||||||
|
case WCM_WEPMODE_WPA_AES:
|
||||||
|
case WCM_WEPMODE_WPA2_AES:
|
||||||
|
if( TRUE == GetKeyModeStr() ) {
|
||||||
|
if( FALSE == wifi_config_set_wpa_key_str(slot_no, wlan_mode, GetWlanKEYSTR() )) {
|
||||||
|
mprintf("Error: wifi_config_wpa_key_str\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mprintf(" key = %s\n", GetWlanKEYSTR());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
key_bin_len = GetWlanKEYBIN(key_bin_buf);
|
||||||
|
if( FALSE == wifi_config_set_wpa_key_bin(slot_no, wlan_mode, key_bin_buf, key_bin_len)){
|
||||||
|
mprintf("Error: wifi_config_wpa_key_bin\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// SSID:
|
||||||
|
// MODE:"WPA2-AES"
|
||||||
|
// KEY-STR:
|
||||||
|
// DHCP:"ON"
|
||||||
|
// DNS auto
|
||||||
|
// IP auto
|
||||||
|
|
||||||
|
|
||||||
|
if( TRUE == GetDhcpMODE() ) {
|
||||||
|
mprintf(" DHCP client\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
IPADDR = GetIPAddr();
|
||||||
|
NETMASK = GetNetmask();
|
||||||
|
GATEWAY = GetGateway();
|
||||||
|
|
||||||
|
|
||||||
|
if( FALSE == wifi_config_set_ip_addr(slot_no, IPADDR) ) {
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mprintf(" IPADDR %3d.%3d.%3d.%3d\n", (u32)((IPADDR >> 24) & 0xff),(u32)((IPADDR >> 16) & 0xff),
|
||||||
|
(u32)((IPADDR >> 8) & 0xff),(u32)(IPADDR & 0xff) );
|
||||||
|
}
|
||||||
|
if( FALSE == wifi_config_set_netmask(slot_no, NETMASK) ) {
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mprintf(" NETMASK %3d.%3d.%3d.%3d\n", (u32)((NETMASK >> 24) & 0xff),(u32)((NETMASK >> 16) & 0xff),
|
||||||
|
(u32)((NETMASK >> 8) & 0xff),(u32)(NETMASK & 0xff) );
|
||||||
|
}
|
||||||
|
if( FALSE == wifi_config_set_gateway(slot_no, GATEWAY) ) {
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mprintf(" GATEWAY %3d.%3d.%3d.%3d\n", (u32)((GATEWAY >> 24) & 0xff),(u32)((GATEWAY >> 16) & 0xff),
|
||||||
|
(u32)((GATEWAY >> 8) & 0xff),(u32)(GATEWAY & 0xff) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DNS1 = GetDNS1();
|
||||||
|
DNS2 = GetDNS2();
|
||||||
|
|
||||||
|
if( FALSE == wifi_config_set_dns(slot_no, 0, DNS1) ) {
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mprintf(" DNS1 %3d.%3d.%3d.%3d\n", (u32)((DNS1 >> 24) & 0xff),(u32)((DNS1 >> 16) & 0xff),
|
||||||
|
(u32)((DNS1 >> 8) & 0xff),(u32)(DNS1 & 0xff) );
|
||||||
|
}
|
||||||
|
if( FALSE == wifi_config_set_dns(slot_no, 1, DNS2) ) {
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mprintf(" DNS2 %3d.%3d.%3d.%3d\n", (u32)((DNS2 >> 24) & 0xff),(u32)((DNS2 >> 16) & 0xff),
|
||||||
|
(u32)((DNS2 >> 8) & 0xff),(u32)(DNS2 & 0xff) );
|
||||||
|
}
|
||||||
|
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
|
||||||
|
// wifi_config_print();
|
||||||
|
|
||||||
|
mprintf("-wlan settings write ");
|
||||||
|
if( TRUE == wifi_config_nvram_set() ) {
|
||||||
|
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], M_TEXT_COLOR_RED );
|
||||||
|
mprintf("NG.\n");
|
||||||
|
m_set_palette(tc[0], M_TEXT_COLOR_WHITE );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
no_network_flag = FALSE;
|
no_network_flag = FALSE;
|
||||||
only_wifi_config_data_trans_flag = FALSE;
|
only_wifi_config_data_trans_flag = FALSE;
|
||||||
user_and_wifi_config_data_trans_flag = FALSE;
|
user_and_wifi_config_data_trans_flag = FALSE;
|
||||||
|
only_restore_savedata_flag = FALSE;
|
||||||
Miya_debug_OFF();
|
Miya_debug_OFF();
|
||||||
my_fs_print_debug_OFF();
|
my_fs_print_debug_OFF();
|
||||||
|
|
||||||
select_mode++;
|
select_mode++;
|
||||||
select_mode %= 6;
|
select_mode %= 7;
|
||||||
switch( select_mode ) {
|
switch( select_mode ) {
|
||||||
case 0:
|
case 0:
|
||||||
/* restore mode : default */
|
/* restore mode : default */
|
||||||
@ -1892,6 +2259,9 @@ void TwlMain(void)
|
|||||||
case 5:
|
case 5:
|
||||||
my_fs_print_debug_ON();
|
my_fs_print_debug_ON();
|
||||||
break;
|
break;
|
||||||
|
case 6:
|
||||||
|
only_restore_savedata_flag = TRUE;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2059,7 +2429,8 @@ void TwlMain(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if( FALSE == reboot_flag ) {
|
if( FALSE == reboot_flag ) {
|
||||||
mfprintf(tc[1], "press Y button to RESTORE mode\n");
|
mfprintf(tc[1], "press Y to RESTORE mode\n");
|
||||||
|
mfprintf(tc[1], "press X to OVERWRITE the Net setting\n");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
switch( select_mode ) {
|
switch( select_mode ) {
|
||||||
@ -2087,6 +2458,10 @@ void TwlMain(void)
|
|||||||
m_set_palette(tc[1], M_TEXT_COLOR_YELLOW ); /* red */
|
m_set_palette(tc[1], M_TEXT_COLOR_YELLOW ); /* red */
|
||||||
mfprintf(tc[1],"-- debug mode --\n");
|
mfprintf(tc[1],"-- debug mode --\n");
|
||||||
break;
|
break;
|
||||||
|
case 6:
|
||||||
|
m_set_palette(tc[1], M_TEXT_COLOR_YELLOW ); /* red */
|
||||||
|
mfprintf(tc[1],"-- savedata restore mode --\n");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2095,7 +2470,7 @@ void TwlMain(void)
|
|||||||
|
|
||||||
mfprintf(tc[1],"\n");
|
mfprintf(tc[1],"\n");
|
||||||
|
|
||||||
mfprintf(tc[1], "function no.%d/%d\n", function_counter, function_table_max);
|
mfprintf(tc[1], "function no.%d/%d\n", function_counter, current_function_table_max);
|
||||||
|
|
||||||
mfprintf(tc[2],"\f");
|
mfprintf(tc[2],"\f");
|
||||||
|
|
||||||
|
|||||||
@ -1105,6 +1105,7 @@ void TwlMain(void)
|
|||||||
OS_TPrintf("DeviceID: %s\n", mydata.bmsDeviceId);
|
OS_TPrintf("DeviceID: %s\n", mydata.bmsDeviceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mydata.dev_dot_kp_flag = CheckDevDotKP( NULL );
|
||||||
|
|
||||||
/* NAM の初期化 */
|
/* NAM の初期化 */
|
||||||
NAM_Init(&AllocForNAM, &FreeForNAM);
|
NAM_Init(&AllocForNAM, &FreeForNAM);
|
||||||
|
|||||||
@ -5,15 +5,11 @@
|
|||||||
table_file.txt –¼‘OŒÅ’è
|
table_file.txt –¼‘OŒÅ’è
|
||||||
|
|
||||||
makesdtd.exe -indir [inputdir] -odir sdtads
|
makesdtd.exe -indir [inputdir] -odir sdtads
|
||||||
makesdtd.exe -indir test-tad -odir sdtads
|
makesdtd.exe [-c] -indir test-tad -odir sdtads
|
||||||
|
|
||||||
|
openssl genrsa -out tad1024china.der 1024 -outform DER
|
||||||
|
|
||||||
|
rsa_keysrcgen.exe -in tad1024china.der
|
||||||
|
|
||||||
openssl genrsa -out tad1024miya.der 1024 -outform DER
|
|
||||||
|
|
||||||
|
|
||||||
rsa_keysrcgen.exe -in tad1024miya.der
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -678,6 +674,7 @@ int main(int argc, char **argv)
|
|||||||
BOOL write_file_flag = FALSE;
|
BOOL write_file_flag = FALSE;
|
||||||
BOOL write_dir_flag = FALSE;
|
BOOL write_dir_flag = FALSE;
|
||||||
BOOL dir_read_flag = FALSE;
|
BOOL dir_read_flag = FALSE;
|
||||||
|
BOOL china_flag = FALSE;
|
||||||
|
|
||||||
char *prog;
|
char *prog;
|
||||||
int badops = 0;
|
int badops = 0;
|
||||||
@ -710,24 +707,7 @@ int main(int argc, char **argv)
|
|||||||
argv++;
|
argv++;
|
||||||
|
|
||||||
|
|
||||||
// printf("d = %s\n", prog);
|
|
||||||
|
|
||||||
|
|
||||||
// strcpy(key_file_path, ".\\");
|
|
||||||
strcat(key_file_path, prog);
|
|
||||||
|
|
||||||
len = strlen(key_file_path);
|
|
||||||
for( pos = len - 1 ; pos > 0 ; pos--) {
|
|
||||||
if( key_file_path[pos] == '\\' ) {
|
|
||||||
strcpy( &(key_file_path[pos]), "\\tad1024.der");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
printf("key_file_path = %s\n",key_file_path );
|
|
||||||
|
|
||||||
|
|
||||||
while (argc >= 1) {
|
while (argc >= 1) {
|
||||||
if (strcmp(*argv,"-indir") == 0 && !dir_read_flag ) {
|
if (strcmp(*argv,"-indir") == 0 && !dir_read_flag ) {
|
||||||
if (--argc < 1) {
|
if (--argc < 1) {
|
||||||
@ -746,6 +726,9 @@ int main(int argc, char **argv)
|
|||||||
else if (strcmp(*argv,"-d") == 0 ) {
|
else if (strcmp(*argv,"-d") == 0 ) {
|
||||||
debug_print_flag = TRUE;
|
debug_print_flag = TRUE;
|
||||||
}
|
}
|
||||||
|
else if (strcmp(*argv,"-c") == 0 ) {
|
||||||
|
china_flag = TRUE;
|
||||||
|
}
|
||||||
else if ( !read_file_flag ) {
|
else if ( !read_file_flag ) {
|
||||||
infile = *argv;
|
infile = *argv;
|
||||||
read_file_flag = TRUE;
|
read_file_flag = TRUE;
|
||||||
@ -761,11 +744,30 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
if (badops) {
|
if (badops) {
|
||||||
bad:
|
bad:
|
||||||
fprintf(stderr, "%s -indir dirname -odir dirname\n",prog);
|
fprintf(stderr, "%s [-c] -indir dirname -odir dirname\n",prog);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// printf("d = %s\n", prog);
|
||||||
|
// strcpy(key_file_path, ".\\");
|
||||||
|
strcat(key_file_path, prog);
|
||||||
|
len = strlen(key_file_path);
|
||||||
|
for( pos = len - 1 ; pos > 0 ; pos--) {
|
||||||
|
if( key_file_path[pos] == '\\' ) {
|
||||||
|
if( china_flag == TRUE ) {
|
||||||
|
strcpy( &(key_file_path[pos]), "\\tad1024china.der");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
strcpy( &(key_file_path[pos]), "\\tad1024.der");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("key_file_path = %s\n",key_file_path );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if( debug_print_flag ) {
|
if( debug_print_flag ) {
|
||||||
printf("dir name = %s\n", indir_name);
|
printf("dir name = %s\n", indir_name);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user