diff --git a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/Makefile b/build/systemMenu_tools/SystemLogReader/ARM9.TWL/Makefile index 8d107a66..e5def126 100644 --- a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/Makefile +++ b/build/systemMenu_tools/SystemLogReader/ARM9.TWL/Makefile @@ -46,7 +46,8 @@ ROM_SPEC = main.rsf TARGET_BIN = SystemLogReader.srl -LLIBRARIES += liberrorlog$(TWL_LIBSUFFIX).a +LLIBRARIES += liberrorlog$(TWL_LIBSUFFIX).a \ + liblcfg$(TWL_LIBSUFFIX).a include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs diff --git a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.dev.o b/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.dev.o index 49fa7b5f..56d447e4 100644 Binary files a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.dev.o and b/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.dev.o differ diff --git a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.prod.o b/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.prod.o index 48a18828..7d818096 100644 Binary files a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.prod.o and b/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.prod.o differ diff --git a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/src/main.c b/build/systemMenu_tools/SystemLogReader/ARM9.TWL/src/main.c index f92fa021..ceec4076 100644 --- a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/src/main.c +++ b/build/systemMenu_tools/SystemLogReader/ARM9.TWL/src/main.c @@ -21,6 +21,7 @@ #include "keypad.h" #include "font.h" #include "screen.h" +#include #define BUFSIZE 256 @@ -28,7 +29,7 @@ #define SCREEN_WIDTH 32 #define RESULT_LINE_OFFSET 6 -#define DST_LOGFILE_PATH "sdmc:/sysmenu.log" +#define DST_LOGFILE_PATH "sdmc:/" #define ERRORLOG_LOGFILE_PATH "nand:/sys/log/sysmenu.log" #define NAND_BLOCK_BYTE 0x200 @@ -96,8 +97,8 @@ TwlMain() ERRORLOG_Init( OS_AllocFromMain, OS_FreeToMain ); + resetConsoleFlag = TRUE; - OS_TPrintf( "boottype : %d\n", OS_GetBootType() ); drawMenu(); doProc(); @@ -165,7 +166,7 @@ static BOOL deleteLogfile( void ) static BOOL copyLogToSD( void ) { FSFile src, dst; - // 最悪で読み込んだサイズの倍の文字列になる可能性がある + // 書き込みサイズは、最悪で読み込んだサイズの倍のになる可能性がある BOOL result = TRUE; int idxlog; int sizelog; @@ -173,14 +174,33 @@ static BOOL copyLogToSD( void ) char winbuf[BUFSIZE*2 +1]; s32 readSize; s32 writeSize = 0; + char filename[BUFSIZE+1]; + u8 *lcfgbuf; + u8 serial[OS_TWL_HWINFO_SERIALNO_LEN_MAX]; + + buf[BUFSIZE] = '\0'; - buf[256] = '\0'; FS_InitFile( &dst ); + printConsole("Reading serial number..."); + lcfgbuf = OS_Alloc( LCFG_READ_TEMP ); + + if( LCFG_ReadTWLSettings( (u8 (*)[LCFG_READ_TEMP]) lcfgbuf ) && LCFG_ReadHWSecureInfo() ) + { + LCFG_THW_GetSerialNo( (u8*)serial ); + STD_TSNPrintf( filename , BUFSIZE, "sdmc:/%s.log", serial); + } + else + { + printConsoleErr( "failed to read Serial."); + return FALSE; + } + + // まずファイルを削除 - FS_DeleteFile( DST_LOGFILE_PATH ); + FS_DeleteFile( filename ); - if( ! FS_CreateFile( DST_LOGFILE_PATH, FS_PERMIT_R | FS_PERMIT_W ) ) + if( ! FS_CreateFile( filename, FS_PERMIT_R | FS_PERMIT_W ) ) { printConsoleErr( "Copy Failed." ); printConsoleErr( "func: FS_CreateFile" ); @@ -189,7 +209,7 @@ static BOOL copyLogToSD( void ) } // ファイル作成に成功 - if( !FS_OpenFileEx( &dst , DST_LOGFILE_PATH, FS_FILEMODE_RW )) + if( !FS_OpenFileEx( &dst , filename, FS_FILEMODE_RW )) { // 作成したファイルをopenできなかった場合 printConsoleErr( "Copy Failed." ); diff --git a/build/systemMenu_tools/SystemLogReader/make.rb b/build/systemMenu_tools/SystemLogReader/make.rb index b94b681c..c52e6a31 100755 --- a/build/systemMenu_tools/SystemLogReader/make.rb +++ b/build/systemMenu_tools/SystemLogReader/make.rb @@ -10,34 +10,37 @@ def putex(str) end -def buildgcd(buildtype, prodopt) +def buildgcd(buildtype, prodopt, shortbuild) puts "buildtype : #{buildtype}" + puts "**shortbuild**" if shortbuild - # build TwlIPL Root - Dir.chdir(ENV['TWL_IPL_RED_ROOT']) do - putex "make -f Makefile.full clean; " + - "makesp CYGPATH_NOCMD=TRUE -j 2 -f Makefile.full TWL_FINALROM=TRUE #{prodopt}" - end - - # build nandfirm - Dir.chdir(ENV['TWL_IPL_RED_ROOT'] + "/build/nandfirm/menu-launcher") do - putex "make clean; make TWL_FINALROM=TRUE #{prodopt}" - nandfirm = Dir.glob("menu_launcher*#{buildtype}.nand") - if nandfirm.none? - puts "build nandfirm failed." - exit - else - nandfirm = nandfirm[0] + unless shortbuild + # build TwlIPL Root + Dir.chdir(ENV['TWL_IPL_RED_ROOT']) do + putex "make -f Makefile.full clean; " + + "makesp CYGPATH_NOCMD=TRUE -j 2 -f Makefile.full TWL_FINALROM=TRUE #{prodopt}" end - - putex "$TWLSDK_ROOT/tools/bin/bin2obj.TWL.exe #{nandfirm} nandfirm.#{buildtype}.o " + - "-b nandfirm_begin -e nandfirm_end" - putex "cp nandfirm.#{buildtype}.o #{Rootdir}/ARM9.TWL/nandfirm/" + # build nandfirm + Dir.chdir(ENV['TWL_IPL_RED_ROOT'] + "/build/nandfirm/menu-launcher") do + putex "make clean; make TWL_FINALROM=TRUE #{prodopt}" + nandfirm = Dir.glob("menu_launcher*#{buildtype}.nand") + if nandfirm.none? + puts "build nandfirm failed." + exit + else + nandfirm = nandfirm[0] + end + + + putex "$TWLSDK_ROOT/tools/bin/bin2obj.TWL.exe #{nandfirm} nandfirm.#{buildtype}.o " + + "-b nandfirm_begin -e nandfirm_end" + putex "cp nandfirm.#{buildtype}.o #{Rootdir}/ARM9.TWL/nandfirm/" + end end # build systemlogreader - putex "make clean; make TWL_FINALROM=TRUE #{prodopt}" + putex "makesp CYGPATH_NOCMD=TRUE -j 2 clean; makesp CYGPATH_NOCMD=TRUE -j 2 TWL_FINALROM=TRUE #{prodopt}" Dir.chdir(Rootdir + "/ARM9.TWL/bin/ARM9-TS.LTD.thumb/Rom") do if buildtype == "dev" putex 'cp ./SystemLogReader.srl $TWL_IPL_RED_ROOT/build/gcdfirm/memory-launcher-writer/' @@ -64,15 +67,16 @@ end Rootdir = ENV['TWL_IPL_RED_ROOT'] + '/build/systemMenu_tools/SystemLogReader' prodopt = "" +shortbuild = false # default buildtype = dev -if ARGV.none? || ARGV[0] == 'dev' +if ARGV.none? || ARGV.include?('dev') build = ["dev"] opt = ["FIRM_USE_PRODUCT_KEYS="] -elsif ARGV[0] == "prod" +elsif ARGV.include?("prod") build = ["prod"] opt = ["FIRM_USE_PRODUCT_KEYS=TRUE"] -elsif ARGV[0] == "full" +elsif ARGV.include? "full" build = ["dev", "prod"] opt = ["FIRM_USE_PRODUCT_KEYS=", "FIRM_USE_PRODUCT_KEYS=TRUE"] else @@ -80,8 +84,12 @@ else exit end -p build.zip(opt) -build.zip(opt).each do |b,op| - buildgcd(b,op) +if ARGV.include? "short" + shortbuild = true +end + +p build.zip(opt) +build.zip(opt).each do |b,op| + buildgcd(b,op,shortbuild) end