From de01bc383338d2d57e3b81ae02ae7bbb3bae614b Mon Sep 17 00:00:00 2001 From: yoshida_teruhisa Date: Tue, 8 Jul 2008 07:34:04 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E9=96=A2=E4=BF=82=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= 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@1817 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/systemMenu_RED/sysmenuVersion/Makefile | 17 +- .../sysmenuVersion/SysmenuVersion.dat | Bin 256 -> 6852 bytes .../archive_data/NintendoCA-G2.der | Bin 0 -> 1173 bytes .../archive_data/TWL-NUP-Dev-1-cert.bin | Bin 0 -> 1326 bytes .../archive_data/TWL-Shop-Dev-1-cert.bin | Bin 0 -> 1327 bytes .../archive_data/twl-nup-dev-1-prvkey.bin | Bin 0 -> 1225 bytes .../archive_data/twl-shop-dev-1-prvkey.bin | Bin 0 -> 1225 bytes tools/bin/genVersion.plx | 217 ++++++++++-------- 8 files changed, 132 insertions(+), 102 deletions(-) create mode 100644 build/systemMenu_RED/sysmenuVersion/archive_data/NintendoCA-G2.der create mode 100644 build/systemMenu_RED/sysmenuVersion/archive_data/TWL-NUP-Dev-1-cert.bin create mode 100644 build/systemMenu_RED/sysmenuVersion/archive_data/TWL-Shop-Dev-1-cert.bin create mode 100644 build/systemMenu_RED/sysmenuVersion/archive_data/twl-nup-dev-1-prvkey.bin create mode 100644 build/systemMenu_RED/sysmenuVersion/archive_data/twl-shop-dev-1-prvkey.bin diff --git a/build/systemMenu_RED/sysmenuVersion/Makefile b/build/systemMenu_RED/sysmenuVersion/Makefile index abaaeed2..1e2c1848 100644 --- a/build/systemMenu_RED/sysmenuVersion/Makefile +++ b/build/systemMenu_RED/sysmenuVersion/Makefile @@ -17,23 +17,36 @@ #---------------------------------------------------------------------------- # バージョンファイルとTADを生成する -# WL_IPL_RED_PRIVATE_ROOTが設定されていない場合は +# TWL_IPL_RED_PRIVATE_ROOTが設定されていない場合は # 既存のバージョンファイルからTADのみ生成する +# 現在、製品版の証明書を含んだものは生成しない + TARGET_FIRM = SYSTEMMENU include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs include ./commondefs.sysmenuVersion +# タイムスタンプ VER_TIMESTAMP = 08062300 # システムメニューバージョン +STR_VERSION = 0.1A MAJOR_VERSION = 0 MINOR_VERSION = 1 # ユーザー領域サイズ(=128MB) USER_AREA_SIZE = 134217728 +# NUPホストネーム +NUP_HOSTNAME = nus.shop.wii.com:443 + +# EULAのURL +EULA_URL = https://cfh-test.t.app.nintendowifi.net/eula/ + +GEN_VERSION_PARAM = $(VER_TIMESTAMP) $(STR_VERSION) $(MAJOR_VERSION) $(MINOR_VERSION) \ + $(USER_AREA_SIZE) $(NUP_HOSTNAME) $(EULA_URL) + GEN_VERSION_FILE = $(SYSMENU_TOOLSDIR)/bin/genVersion.plx VERSION_TAD = HNLA.tad @@ -55,7 +68,7 @@ include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules do-build : $(VERSION_TAD) $(VERSION_DAT): ./Makefile ./commondefs.sysmenuVersion - $(GEN_VERSION_FILE) $(VER_TIMESTAMP) $(MAJOR_VERSION) $(MINOR_VERSION) $(USER_AREA_SIZE) + $(GEN_VERSION_FILE) $(GEN_VERSION_PARAM) $(VERSION_TAD) : $(SYSMENU_VERSION_FILE) $(MAKETAD) $(call empath,$<) $(SYSMENU_VERSION_MAKETAD_OPTION) -o $@ diff --git a/build/systemMenu_RED/sysmenuVersion/SysmenuVersion.dat b/build/systemMenu_RED/sysmenuVersion/SysmenuVersion.dat index 3d03c038e3f3656bb76959256d66d40885086546..dce5cefecaa96cfb729709453f64d011c72865a0 100644 GIT binary patch literal 6852 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 a{@-I_o4F%+k?6B`<#C_hPlHQRfdK&6$47zy diff --git a/build/systemMenu_RED/sysmenuVersion/archive_data/NintendoCA-G2.der b/build/systemMenu_RED/sysmenuVersion/archive_data/NintendoCA-G2.der new file mode 100644 index 0000000000000000000000000000000000000000..56696aa8a1563731d6d4beaa5ef1406117ba4581 GIT binary patch literal 1173 zcmXqLVwq^r#9X<6nTe5!iILHOmyJ`a&7D}zDfL_=-^PB!LH7B*p~&|pJh z13?gnLzpW(u{a|$FTEr`&rs1o9wf*mEa8`#SCX2SlCO}Trr?;HT9lcbsNk8GtOqlM zTbRi+*ih0y9HgFESOBix*-=4P!QIGE$v^?_08U0R;p9Yzy!=GHJgB*P$@#eka^k!O z76xVpCWhw5mL`@_;=Cr7hDJsfhDHWJ5H%>>+{CDa9JGwA49rc8{0s(7j9g4jjEoF( zGtD%%G$+M<+49ff{T&u_BZfJZ-s?dL0+zAtnJyue_wB6S!BI` z4qHG)#IvOx`<3<6HD7oH_lstlu6zHiVDg&X-+V9bU;UEbX2UmwOY>CCltN3V7puy* zt%)f4wp>(vy~dRV{;wLem_EF&+J4u*F;`r&GjXc*e}1=u<+G9(F)1kCUUNZr+1iJ6gsadG2EgT{9TvcSY4%f}+dA~J3H!ugFc#V1n)n(Md8$+d5PXe?;Z zxDO<+%+k2cpmB2pRy7M7r!Q%oG8hvAFs==FK<*c2VKrc8Wc-huDu5Xdm?{_KG z&p#yfmHFg`zQ8M)*Vzx|h)>F%ym0Hs^@e;e8iJ>`U(bKkt>ShiytN{sxH5=WE=ERt zXW6kYuM>P~-nHC*c`dzGDtIj|4j9Fj8;e7u1 z&6(O4K8Z28EH}v)7Vk4(HEX)&{f7D5&eU#vKJS0vS-m%WQ$G})J(%)bCn96H+{ci& z&!_KtWA`@W+1L1|?aDldewfB)Og-=Wi9yh%VDt9PQ~t!PIC#Ntw)Z0o@w6Ge_emiJzx~NXrj!__USjP Mw9Ea=PI|5Y0H-0Kr2qf` literal 0 HcmV?d00001 diff --git a/build/systemMenu_RED/sysmenuVersion/archive_data/TWL-NUP-Dev-1-cert.bin b/build/systemMenu_RED/sysmenuVersion/archive_data/TWL-NUP-Dev-1-cert.bin new file mode 100644 index 0000000000000000000000000000000000000000..560fcb572eb4582c8ab4e59d7b4bd11aef80de83 GIT binary patch literal 1326 zcmV+}1=0EtlZm9^_|1(=Jd619Jiu(11rQ(+RLCrBs3(d#SIZ0W?pYuCKzkvgL{oh- zo~V>>D;flm_11M>5n0#>4%gN@9^|WiuSQtAP;~F%zWa}5dOUpvy5pxrH5Gs>>5L=K z)RQo(6U<`s4BU5af-`!TC2ZdG&e)aU2}rmui`0=zSuL)e>zS#ohAA?Jtbl_4<)jS) z|7%evER=5riAju2HqGY5kvAH+_J7=Nx6S|`Vn%jzqE!gkqyFD6W6^w=sY z6a_4;-o_Kix!eNeaEX?wOcF)tzG|M=alOsvA;&^qupTtAF2Ys&0aN`>LiD${DC@!1Q(6)5 zYMYBj2IN0O@XSxzp;bP3GHlvWqvYa57zB%eR3mB=D3Xrsz zbXzQKj5Lfa>XX}60Nl&QE?KLqRbH3TWjBqWWF!Te53F79+9Uq=>!r}6eD$VjI|Q{( z?lxRsfz#npA_$9ut-MnWuk&c5I8S-^K+RI;JOt8INmI$9Uq zJv!Dv`B%EmCB}~wqZXhC1+EQwzvQZhEd;{8#_d>=B!n~fiRDIngwQ;JjP(6#IK6@2 zMuc{#nh(P=IfdU(2U3E!Y14(oIE8|^7Hz;6H|v%q#*CaaB};qCT^})zO|v_y?V`eD z&$PduP)1@cERB{KBvi zaw9CgCv83(Ny+dQmOV&cfZG=3O-nu(m&tWVT_$iIcXr2V0bn>Fklu4-Xys1mInx_< kYhHbZo3*;)cH4jHuDX4DYYDt>TN4LK=Ui7BAw2M&&?e@bOaK4? literal 0 HcmV?d00001 diff --git a/build/systemMenu_RED/sysmenuVersion/archive_data/TWL-Shop-Dev-1-cert.bin b/build/systemMenu_RED/sysmenuVersion/archive_data/TWL-Shop-Dev-1-cert.bin new file mode 100644 index 0000000000000000000000000000000000000000..57e61f06ee40fb8db2ed7b7bb36ac7c0deeb3953 GIT binary patch literal 1327 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 literal 0 HcmV?d00001 diff --git a/build/systemMenu_RED/sysmenuVersion/archive_data/twl-shop-dev-1-prvkey.bin b/build/systemMenu_RED/sysmenuVersion/archive_data/twl-shop-dev-1-prvkey.bin new file mode 100644 index 0000000000000000000000000000000000000000..177cd9257bfabf6633a4338c442e3c77044d4406 GIT binary patch literal 1225 zcmV;)1UCB+lZXq`d(M4nK8X1gQ`>lBvDu&3g8E1^T{EP86D|~=F=#I*&dy)u;^~r@ zO|a>Z@ly;4Ep>z=>{_CW*3SIO>M@44z>BHJNj1`v6Ad}yqcVC zGy#&FDuw)hH~`3YLf17U10D{dYs)E<$Er~kx2V_3abev`1OJQ0{^KcH=Deiy?tRoP zOgV4!;5C{@Bjm)b%yfA5q-4*NdqP&&JhIGulu4kf&8TG3&H<6zalOycuAGflYdu|F zHzF4z5jN)CeaN2_eSd3I|K4G(f3!_W8)&Hxs@sGB_T}C zpOAa>k{J6G_5_vOspY#?!sSNa%ZhGBV*z3Th(&a{1;#j&c=-4s%Jrbw2Naq87;IrB`wPZhyB2p&3-^rx z5$qzn+Jo`>&RrY#3{&=HuMlKU|S12T?fmu0C@pN5IE2H`qHb!n;MW+khk>Q#36;L&8f0k3M@}8Pf#=M zv=|G0lNN`%$IJYJyy@Wx7Yx744HV!-244b?RPW1Z8B2j}fBly4yjj z8+F+kyN~NI=An>YNrm=6l~E&CA!zr2;thksxb&Ery1V1KQG|BJ!A6Hc5tkY1`JW6A zkc^q#?bx1sS2mwSzx6^uSDXbpTp3cYWaNz$Agk@Dx6Mlb+V`b%x*HNWf^;X#>;p(R zuj7p=O6ozuZ&&m~thxD5nMy4`gIM#Poi-+di97ZFJcTXLPMKtmhdZ(vt&eg?t*#x# ntzc}f6E5_8FGz6k+jJfr3BLVh3A}Gx69-A>Tvr+)Jn)})kV|LQ literal 0 HcmV?d00001 diff --git a/tools/bin/genVersion.plx b/tools/bin/genVersion.plx index 71a7fd13..a3cdfab2 100644 --- a/tools/bin/genVersion.plx +++ b/tools/bin/genVersion.plx @@ -6,117 +6,51 @@ # generate SystemMenu Version Data # # [[ FILE FORMAT ]] -# security code (128 bytes) : RSA signature of Version Data # -# Header ( 96 bytes) -# TimeStamp ( 4 bytes) : date %y%m%d%H -# Version ( 4 bytes) : 0.0 ~ 65535.65535 -# UserAreaSize ( 4 bytes) : Size of UserArea -# Data1Offset ( 4 bytes) : File offset of Data1 -# Data1Size ( 4 bytes) : Size of Data1 -# padding ( 12 bytes) : -# Data1Hash ( 20 bytes) : SHA1 digest of Data1 -# padding ( 44 bytes) : -# -# Data1 (flexible length) : -# padding ( 32 bytes) : -# -# note: each section image is aligned to 32 bytes. +# Security code (128 bytes) : RSA signature of Header +# Header + Data : NitroSystemArchive Format # ###################################################################### use POSIX 'strftime'; use File::Basename; -if ($#ARGV < 3) { - printf STDOUT ("Usage: %s [genVersion] timestamp majorVersion minorVersion userAreaSize\n", $0); +if ($#ARGV < 6) { + printf STDOUT ("Usage: %s [genVersion] timestamp strVersion majorVersion minorVersion userAreaSize NUPHostName EULAURL\n", $0); exit(-1); } -my $outFile = "SysmenuVersion.dat"; -my $data1File = "data1.bin"; -my $headerFile = "header.bin"; -my $digestFile = "digest.bin"; -my $tmpFile = "tmp.bin"; -my $signFile = "sign.bin"; +# アーカイブにまとめるデータファイル +my $dataDir = "archive_data"; +my $versionFile = "$dataDir/version.bin"; +my $timeStampFile = "$dataDir/time_stamp.bin"; +my $userAreaSizeFile = "$dataDir/user_area_size.bin"; +my $nupHostFile = "$dataDir/nup_host.bin"; +my $urlEULAFile = "$dataDir/eula_url.bin"; + +# 証明書および鍵はIPL_privateで作成したものをそのまま使うのでここでは作成しない +#my $cert4SSLClientFile = "$dataDir/cert4ssl"; +#my $privKeyCert4SSLClientFile = "$dataDir/priv_key_cert4ssl"; +#my $rootCACert4SSLFile1 = "$dataDir/root_ca_cert4ssl1"; +#my $rootCACert4SSLFile2 = "$dataDir/root_ca_cert4ssl2"; +#my $rootCACert4SSLFile3 = "$dataDir/root_ca_cert4ssl3"; +#my $rootCACert4SSLFile4 = "$dataDir/root_ca_cert4ssl4"; +#my $rootCACert4SSLFile5 = "$dataDir/root_ca_cert4ssl5"; +#my $rootCACert4SSLFile6 = "$dataDir/root_ca_cert4ssl6"; + +# 出力ファイル +my $outFile = "SysmenuVersion.dat"; + +# 中間ファイル +my $archiveFile = "archive.narc"; +my $digestFile = "digest.bin"; +my $signFile = "sign.bin"; # 後始末 sub deleteTemp { - system ("rm -f $tmpFile"); system ("rm -f $digestFile"); - system ("rm -f $data1File"); - system ("rm -f $headerFile"); system ("rm -f $signFile"); -} - -my $signSize = 0x80; -my $headerSize = 0x80; -my $data1Len = 0x20; - -# Data1情報の出力 -{ - open DATA1, ">$data1File" or die "File Open Error.\n"; - binmode DATA1; - - # ダミーデータの出力 - syswrite( DATA1, pack( "x$data1Len") ); - - close DATA1; -} - -# ヘッダ情報の出力 -{ - # timestampLen = 0x08; - # elementNumLen = 0x02; - my $pad1Len = 0x0c; - my $pad2Len = 0x2c; - my $data1Off = $signSize + $headerSize; - my $sha1Len = 0x14; - - open HEADER, ">$headerFile" or die "File Open Error.\n"; - binmode HEADER; - -# my $timestamp = strftime "%y%m%d%H", localtime; - my $timestamp = $ARGV[ 0 ]; - my $ver = ( ( $ARGV[ 1 ] & 0xffff ) << 16 ) | ($ARGV[ 2 ] & 0xffff); - my $userAreaSize = $ARGV[ 3 ]; - - # タイムスタンプの出力 - printf "timestamp = %s\n", $timestamp; - syswrite( HEADER, pack( "N", unpack( "L", pack( "H8", $timestamp ) ) ) ); - - # バージョンの出力 - printf "version = %d.%d\n", ($ver >> 16), ($ver & 0xffff); - syswrite( HEADER, pack( "L", $ver ) ); - - # ユーザ領域サイズの出力 - printf "userAreaSize = $userAreaSize\n"; - syswrite( HEADER, pack( "L", $userAreaSize ) ); - # Data1オフセットの出力 - printf "data1Offset = $data1Off\n"; - syswrite( HEADER, pack( "L", $data1Off ) ); - # Data1サイズの出力 - printf "data1Size = $data1Len\n"; - syswrite( HEADER, pack( "L", $data1Len ) ); - - # パディング1の出力 - syswrite( HEADER, pack( "x$pad1Len") ); - - # Data1ハッシュの出力 - { - my $digest; - system ("openssl dgst -sha1 -binary -out $digestFile $data1File"); - open DIGEST, $digestFile or die "File Open Error.\n"; - binmode DIGEST; - sysread( DIGEST, $digest, $sha1Len ); - close DIGEST; - syswrite( HEADER, $digest, $sha1Len ); - } - - # パディング2の出力 - syswrite( HEADER, pack( "x$pad2Len") ); - - close HEADER; + system ("rm -f $archiveFile"); } # 環境変数サーチ @@ -126,14 +60,97 @@ foreach ( sort keys ( %ENV ) ){ } } if (!$KEYROOT) { - deleteTemp(); die "No TWL_IPL_RED_PRIVATE_ROOT is found.\n"; } +my $TWLIPLRED_ROOT; + +# 環境変数のキーにTWL_IPL_RED_ROOTがあるか +if (exists($ENV{"TWL_IPL_RED_ROOT"}) ){ + $TWLIPLRED_ROOT = $ENV{"TWL_IPL_RED_ROOT"}; +}else +{ + die "No TWL_IPL_RED_ROOT is found.\n"; +} + +# バージョンの出力 +{ + open VERSION, ">$versionFile" or die "File Open Error.\n"; + binmode VERSION; +# my $ver = ( ( $ARGV[ 1 ] & 0xffff ) << 16 ) | ($ARGV[ 2 ] & 0xffff); +# printf "version = %d.%d\n", ($ver >> 16), ($ver & 0xffff); +# syswrite( VERSION, pack( "L", $ver ) ); + printf "version = %s\n", $ARGV[1]; + syswrite( VERSION, pack( "a*x", $ARGV[1]) ); + close VERSION; +} + +# タイムスタンプの出力 +{ + open TIMESTAMP, ">$timeStampFile" or die "File Open Error.\n"; + binmode TIMESTAMP; +# my $timestamp = strftime "%y%m%d%H", localtime; + my $timestamp = $ARGV[ 0 ]; + printf "timestamp = %s\n", $timestamp; + syswrite( TIMESTAMP, pack( "N", unpack( "L", pack( "H8", $timestamp ) ) ) ); + close TIMESTAMP; +} + +# ユーザエリアサイズの出力 +{ + open USERAREA, ">$userAreaSizeFile" or die "File Open Error.\n"; + binmode USERAREA; + my $userAreaSize = $ARGV[ 4 ]; + printf "userAreaSize = $userAreaSize\n"; + syswrite( USERAREA, pack( "L", $userAreaSize ) ); + close USERAREA; +} + +# NUP_HOSTNAMEの出力 +{ + open NUPHOSTNAME, ">$nupHostFile" or die "File Open Error.\n"; + binmode NUPHOSTNAME; + my $nupHostName = $ARGV[ 5 ]; + printf "NUPHostName = $nupHostName\n"; + syswrite( NUPHOSTNAME, pack( "a*x", $nupHostName ) ); + close NUPHOSTNAME; +} + +# EULA_URLの出力 +{ + open EULAURL, ">$urlEULAFile" or die "File Open Error.\n"; + binmode EULAURL; + my $urlEULA = $ARGV[ 6 ]; + printf "EULAURL = $urlEULA\n"; + syswrite( EULAURL, pack( "a*x", $urlEULA ) ); + close EULAURL; +} + +my $TWLSYSTEM_ROOT; + +# 環境変数のキーにTWLSYSTEM_ROOTがあるか +if (exists($ENV{"TWLSYSTEM_ROOT"}) ){ + $TWLSYSTEM_ROOT = $ENV{"TWLSYSTEM_ROOT"}; +}else +{ + deleteTemp(); + die "No TWLSYSTEM_ROOT is found.\n"; +} + +# アーカイブ作成 +{ + system ( "$TWLSYSTEM_ROOT/tools/bin/nnsarc.exe -c $archiveFile $dataDir -s -E .svn" ); +} + +# アーカイブのハッシュの出力 +{ + my $digest; + system ("openssl dgst -sha1 -binary -out $digestFile $archiveFile"); +} + # 署名付加 { - system ( "openssl rsautl -sign -in $headerFile -inkey $KEYROOT/keys/rsa/private_sharedFont.der -keyform DER -out $signFile" ); - system ( "cat $signFile $headerFile >$tmpFile" ); - system ( "cat $tmpFile $data1File > $outFile" ); + system ( "openssl rsautl -sign -in $digestFile -inkey $KEYROOT/keys/rsa/private_sharedFont.der -keyform DER -out $signFile" ); + system ( "cat $signFile $archiveFile >$outFile" ); deleteTemp(); }