From 0deab366843208616d0b98dab94674a0882de472 Mon Sep 17 00:00:00 2001 From: yosiokat Date: Mon, 21 Jan 2008 06:13:21 +0000 Subject: [PATCH] =?UTF-8?q?HWInfoWriter=E3=81=AE=E9=8D=B5=E9=81=8B?= =?UTF-8?q?=E7=94=A8=E3=82=92=E6=95=B4=E7=90=86=E3=81=99=E3=82=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@494 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/buildtools/commondefs.firm | 2 +- build/buildtools/commondefs.sysmenu | 2 +- .../systemMenu_RED/HWInfoWriter/ARM9/Makefile | 15 +++++-- .../systemMenu_RED/HWInfoWriter/ARM9/main.rsf | 5 ++- .../HWInfoWriter/ARM9/src/HWInfoWriter.c | 42 ++++++++++++------ keys/{rsa/dummy => dummy/rsa}/private9_0.der | Bin keys/{rsa/dummy => dummy/rsa}/private9_0.pem | 0 .../dummy => dummy/rsa}/private_HWInfo.der | Bin .../dummy => dummy/rsa}/private_HWInfo.pem | 0 keys/{rsa/dummy => dummy/rsa}/private_gcd.der | Bin .../{rsa/dummy => dummy/rsa}/private_nand.der | Bin keys/{rsa/dummy => dummy/rsa}/private_nor.der | Bin .../dummy => dummy/rsa}/pubKey_HWInfo.der | Bin keys/{rsa/dummy => dummy/rsa}/pubkey9_0.der | Bin keys/{rsa/dummy => dummy/rsa}/pubkey9_0.pem | 0 .../dummy => dummy/rsa}/pubkey_HWInfo.pem | 0 keys/{rsa/dummy => dummy/rsa}/pubkey_gcd.der | Bin keys/{rsa/dummy => dummy/rsa}/pubkey_nand.der | Bin keys/{rsa/dummy => dummy/rsa}/pubkey_nor.der | Bin 19 files changed, 46 insertions(+), 20 deletions(-) rename keys/{rsa/dummy => dummy/rsa}/private9_0.der (100%) rename keys/{rsa/dummy => dummy/rsa}/private9_0.pem (100%) rename keys/{rsa/dummy => dummy/rsa}/private_HWInfo.der (100%) rename keys/{rsa/dummy => dummy/rsa}/private_HWInfo.pem (100%) rename keys/{rsa/dummy => dummy/rsa}/private_gcd.der (100%) rename keys/{rsa/dummy => dummy/rsa}/private_nand.der (100%) rename keys/{rsa/dummy => dummy/rsa}/private_nor.der (100%) rename keys/{rsa/dummy => dummy/rsa}/pubKey_HWInfo.der (100%) rename keys/{rsa/dummy => dummy/rsa}/pubkey9_0.der (100%) rename keys/{rsa/dummy => dummy/rsa}/pubkey9_0.pem (100%) rename keys/{rsa/dummy => dummy/rsa}/pubkey_HWInfo.pem (100%) rename keys/{rsa/dummy => dummy/rsa}/pubkey_gcd.der (100%) rename keys/{rsa/dummy => dummy/rsa}/pubkey_nand.der (100%) rename keys/{rsa/dummy => dummy/rsa}/pubkey_nor.der (100%) diff --git a/build/buildtools/commondefs.firm b/build/buildtools/commondefs.firm index 08da0997..7ca5d5d5 100644 --- a/build/buildtools/commondefs.firm +++ b/build/buildtools/commondefs.firm @@ -24,7 +24,7 @@ SPACE ?= $(EMPTY) $(EMPTY) ifndef TWL_KEYSDIR DUMMY_KEYS_SUFFIX = .dummykey endif -TWL_KEYSDIR ?= $(FIRM_ROOT)/keys/rsa/dummy +TWL_KEYSDIR ?= $(FIRM_ROOT)/keys/dummy TARGET_BIN ?= $(subst .,$(DUMMY_KEYS_SUFFIX).,$(TARGET_FIRM_BIN)) diff --git a/build/buildtools/commondefs.sysmenu b/build/buildtools/commondefs.sysmenu index 92ecc56a..2375d82d 100644 --- a/build/buildtools/commondefs.sysmenu +++ b/build/buildtools/commondefs.sysmenu @@ -23,7 +23,7 @@ NITRO_NO_STD_PCHDR = TRUE # EMPTY ?= SPACE ?= $(EMPTY) $(EMPTY) -TWL_KEYSDIR ?= $(SYSMENU_ROOT)/keys/rsa/dummy +TWL_KEYSDIR ?= $(SYSMENU_ROOT)/keys/dummy #---------------------------------------------------------------------------- # TWL-SYSTEM-MENU path settings diff --git a/build/systemMenu_RED/HWInfoWriter/ARM9/Makefile b/build/systemMenu_RED/HWInfoWriter/ARM9/Makefile index cabc4606..d40da71c 100644 --- a/build/systemMenu_RED/HWInfoWriter/ARM9/Makefile +++ b/build/systemMenu_RED/HWInfoWriter/ARM9/Makefile @@ -17,10 +17,11 @@ #---------------------------------------------------------------------------- SUBDIRS = \ -# ../../../libraries_sysmenu/sysmenu #---------------------------------------------------------------------------- +USE_PRODUCT_KEY = TRUE + TARGET_FIRM = SYSTEMMENU TARGET_PLATFORM = TWL TWL_ARCHGEN = LIMITED @@ -41,8 +42,16 @@ LINCLUDES = $(MISC_DIR)/include \ $(ROOT)/build/libraries/lcfg/ARM9.TWL/include LLIBRARIES = libacsign_enc$(TWL_LIBSUFFIX).a -MAKEROM_FLAGS += -DTITLEID_LO='$(TITLEID_LO)' -MAKETAD_FLAGS += -s +MAKEROM_FLAGS += -DTITLEID_LO='$(TITLEID_LO)' \ + -DHWINFO_PRIVKEY='private_HWInfo.der' +MAKETAD_FLAGS += -s + +ifdef USE_PRODUCT_KEY +MAKEROM_FLAGS += -DPRIVKEY_PATH='$(TWL_KEYSDIR)/rsa' +MACRO_FLAGS += -DUSE_PRODUCT_KEY +else +MAKEROM_FLAGS += -DPRIVKEY_PATH='../../../../keys/dummy/rsa' +endif include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs diff --git a/build/systemMenu_RED/HWInfoWriter/ARM9/main.rsf b/build/systemMenu_RED/HWInfoWriter/ARM9/main.rsf index 66c7df1e..378e391e 100644 --- a/build/systemMenu_RED/HWInfoWriter/ARM9/main.rsf +++ b/build/systemMenu_RED/HWInfoWriter/ARM9/main.rsf @@ -176,7 +176,8 @@ RomSpec HostRoot ../../data Root /data File NTR_IPL_font_m.NFTR - HostRoot ../../../../keys/HWInfo + HostRoot $(PRIVKEY_PATH) Root /key -# File privKeyHWInfo.der + File $(HWINFO_PRIVKEY) + } diff --git a/build/systemMenu_RED/HWInfoWriter/ARM9/src/HWInfoWriter.c b/build/systemMenu_RED/HWInfoWriter/ARM9/src/HWInfoWriter.c index 05b403d4..a8abf3d1 100644 --- a/build/systemMenu_RED/HWInfoWriter/ARM9/src/HWInfoWriter.c +++ b/build/systemMenu_RED/HWInfoWriter/ARM9/src/HWInfoWriter.c @@ -118,6 +118,15 @@ static const char *strRegion[] = { "KOREA", }; +static const char *strLauncherGameCode[] = { + "LNCJ", + "LNCE", + "LNCP", + "LNCO", + "LNCC", + "LNCK", +}; + //====================================================== // HW情報ライター //====================================================== @@ -125,6 +134,8 @@ static const char *strRegion[] = { // HW情報ライターの初期化 void HWInfoWriterInit( void ) { + u8 gameCode[ 5 ] = { 0, 0, 0, 0, 0 }; + GX_DispOff(); GXS_DispOff(); @@ -141,8 +152,10 @@ void HWInfoWriterInit( void ) ReadHWInfoFile(); // VerifyHWInfo(); OS_TPrintf( "region = %d\n", LCFG_THW_GetRegion() ); - PrintfSJISSub( 2 * 8, 18 * 8, TXT_COLOR_BLACK, "Region = %s", strRegion[ LCFG_THW_GetRegion() ] ); - PrintfSJISSub( 2 * 8, 20 * 8, TXT_COLOR_BLACK, "SerialNo = %s", LCFG_THW_GetSerialNoPtr() ); + PrintfSJISSub( 2 * 8, 16 * 8, TXT_COLOR_BLACK, "Region = %s", strRegion[ LCFG_THW_GetRegion() ] ); + PrintfSJISSub( 2 * 8, 18 * 8, TXT_COLOR_BLACK, "SerialNo = %s", LCFG_THW_GetSerialNoPtr() ); +// LCFG_THW_GetLauncherGameCode( gameCode ); +// PrintfSJISSub( 2 * 8, 20 * 8, TXT_COLOR_BLACK, "LauncherGameCode = %s", gameCode ); s_region_old = LCFG_THW_GetRegion(); s_csr = 0; DrawMenu( s_csr, &s_writerParam ); @@ -235,7 +248,7 @@ static void ReadPrivateKey( void ) OSTick start = OS_GetTick(); FS_InitFile( &file ); - if( !FS_OpenFileEx( &file, "rom:key/privKeyHWInfo.der", FS_FILEMODE_R ) ) { + if( !FS_OpenFileEx( &file, "rom:key/private_HWInfo.der", FS_FILEMODE_R ) ) { OS_TPrintf( "PrivateKey read failed.\n" ); }else { keyLength = FS_GetFileLength( &file ); @@ -257,14 +270,14 @@ static void ReadPrivateKey( void ) } OS_TPrintf( "PrivKey read time = %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) ); - if( s_pPrivKeyBuffer ) { - // 秘密鍵が有効なら、署名ありのアクセス - s_pReadSecureInfoFunc = LCFGi_THW_ReadSecureInfo; - }else { - // 秘密鍵が無効なら、署名なしのアクセス - s_pReadSecureInfoFunc = LCFGi_THW_ReadSecureInfo_NoCheck; - PutStringUTF16( 14 * 8, 0 * 8, TXT_COLOR_RED, (const u16 *)L"[No Signature MODE]" ); - } +#ifdef USE_PRODUCT_KEY + // 製品用秘密鍵が有効なら、署名ありのアクセス + s_pReadSecureInfoFunc = LCFGi_THW_ReadSecureInfo; +#else + // そうでないなら、署名なしのアクセス + s_pReadSecureInfoFunc = LCFGi_THW_ReadSecureInfo_NoCheck; + PutStringUTF16( 14 * 8, 0 * 8, TXT_COLOR_RED, (const u16 *)L"[No Signature MODE]" ); +#endif } @@ -327,8 +340,8 @@ static void WriteHWInfoFile( u8 region ) NNS_G2dCharCanvasClearArea( &gCanvas, TXT_COLOR_WHITE, MSG_X * 8 , MSG_Y * 8, ( 32 - MSG_X ) * 8, ( MSG_Y + 4 ) * 8 ); - PrintfSJISSub( 2 * 8, 18 * 8, TXT_COLOR_WHITE, "Region = %s", strRegion[ s_region_old ] ); - PrintfSJISSub( 2 * 8, 18 * 8, TXT_COLOR_BLACK, "Region = %s", strRegion[ LCFG_THW_GetRegion() ] ); + PrintfSJISSub( 2 * 8, 16 * 8, TXT_COLOR_WHITE, "Region = %s", strRegion[ s_region_old ] ); + PrintfSJISSub( 2 * 8, 16 * 8, TXT_COLOR_BLACK, "Region = %s", strRegion[ LCFG_THW_GetRegion() ] ); s_region_old = LCFG_THW_GetRegion(); } @@ -397,6 +410,9 @@ static BOOL WriteHWSecureInfoFile( u8 region ) LCFG_THW_SetSerialNo( serialNo ); } + // ランチャーゲームコード + LCFG_THW_SetLauncherGameCode( (const u8 *)strLauncherGameCode[ region ] ); + // ライト if( isWrite && !LCFGi_THW_WriteSecureInfo( s_pPrivKeyBuffer ) ) { diff --git a/keys/rsa/dummy/private9_0.der b/keys/dummy/rsa/private9_0.der similarity index 100% rename from keys/rsa/dummy/private9_0.der rename to keys/dummy/rsa/private9_0.der diff --git a/keys/rsa/dummy/private9_0.pem b/keys/dummy/rsa/private9_0.pem similarity index 100% rename from keys/rsa/dummy/private9_0.pem rename to keys/dummy/rsa/private9_0.pem diff --git a/keys/rsa/dummy/private_HWInfo.der b/keys/dummy/rsa/private_HWInfo.der similarity index 100% rename from keys/rsa/dummy/private_HWInfo.der rename to keys/dummy/rsa/private_HWInfo.der diff --git a/keys/rsa/dummy/private_HWInfo.pem b/keys/dummy/rsa/private_HWInfo.pem similarity index 100% rename from keys/rsa/dummy/private_HWInfo.pem rename to keys/dummy/rsa/private_HWInfo.pem diff --git a/keys/rsa/dummy/private_gcd.der b/keys/dummy/rsa/private_gcd.der similarity index 100% rename from keys/rsa/dummy/private_gcd.der rename to keys/dummy/rsa/private_gcd.der diff --git a/keys/rsa/dummy/private_nand.der b/keys/dummy/rsa/private_nand.der similarity index 100% rename from keys/rsa/dummy/private_nand.der rename to keys/dummy/rsa/private_nand.der diff --git a/keys/rsa/dummy/private_nor.der b/keys/dummy/rsa/private_nor.der similarity index 100% rename from keys/rsa/dummy/private_nor.der rename to keys/dummy/rsa/private_nor.der diff --git a/keys/rsa/dummy/pubKey_HWInfo.der b/keys/dummy/rsa/pubKey_HWInfo.der similarity index 100% rename from keys/rsa/dummy/pubKey_HWInfo.der rename to keys/dummy/rsa/pubKey_HWInfo.der diff --git a/keys/rsa/dummy/pubkey9_0.der b/keys/dummy/rsa/pubkey9_0.der similarity index 100% rename from keys/rsa/dummy/pubkey9_0.der rename to keys/dummy/rsa/pubkey9_0.der diff --git a/keys/rsa/dummy/pubkey9_0.pem b/keys/dummy/rsa/pubkey9_0.pem similarity index 100% rename from keys/rsa/dummy/pubkey9_0.pem rename to keys/dummy/rsa/pubkey9_0.pem diff --git a/keys/rsa/dummy/pubkey_HWInfo.pem b/keys/dummy/rsa/pubkey_HWInfo.pem similarity index 100% rename from keys/rsa/dummy/pubkey_HWInfo.pem rename to keys/dummy/rsa/pubkey_HWInfo.pem diff --git a/keys/rsa/dummy/pubkey_gcd.der b/keys/dummy/rsa/pubkey_gcd.der similarity index 100% rename from keys/rsa/dummy/pubkey_gcd.der rename to keys/dummy/rsa/pubkey_gcd.der diff --git a/keys/rsa/dummy/pubkey_nand.der b/keys/dummy/rsa/pubkey_nand.der similarity index 100% rename from keys/rsa/dummy/pubkey_nand.der rename to keys/dummy/rsa/pubkey_nand.der diff --git a/keys/rsa/dummy/pubkey_nor.der b/keys/dummy/rsa/pubkey_nor.der similarity index 100% rename from keys/rsa/dummy/pubkey_nor.der rename to keys/dummy/rsa/pubkey_nor.der