From 7e043ef0676557e198b101f8ab44d0adbf37dd99 Mon Sep 17 00:00:00 2001 From: nishikawa_takeshi Date: Thu, 19 Feb 2009 01:05:37 +0000 Subject: [PATCH] =?UTF-8?q?FakeRomHeader:=E7=BD=B2=E5=90=8D=E3=82=92?= =?UTF-8?q?=E3=81=9B=E3=81=9A=E3=81=ABCRC=E3=81=A0=E3=81=91=E3=81=A4?= =?UTF-8?q?=E3=81=91=E3=81=8B=E3=81=88=E3=82=8BNTR=E7=94=A8=E3=82=AA?= =?UTF-8?q?=E3=83=97=E3=82=B7=E3=83=A7=E3=83=B3(-N)=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=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@2746 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/tests/FakeRomHeader/main.c | 16 +++++++++++++--- tools/bin/FakeRomHeader.launcher.exe | Bin 107140 -> 107140 bytes tools/bin/FakeRomHeader.secure.exe | Bin 107140 -> 107140 bytes tools/bin/FakeRomHeader.sys.exe | Bin 107140 -> 107140 bytes tools/bin/FakeRomHeader.user.exe | Bin 107140 -> 107140 bytes 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/build/tests/FakeRomHeader/main.c b/build/tests/FakeRomHeader/main.c index a65a6549..d09d497f 100644 --- a/build/tests/FakeRomHeader/main.c +++ b/build/tests/FakeRomHeader/main.c @@ -67,6 +67,7 @@ typedef struct _SContext BOOL bCheckCard; int verNum; BOOL bMROM; + BOOL bNTR; FILE *ifp; FILE *ofp; @@ -112,6 +113,7 @@ void usage() printf( "-m : [Only NTR limited ROM] Rom speed type replace 1TROM from MROM.\n" ); printf( "-D : assert a disable flag of debugger alalysis.\n" ); printf( "-c : assert a check(inspection) card flag.\n" ); + printf( "-N : skip sign [using for NTR limited ROM]" ); printf( "-f : force to overwrite a output_file.\n" ); printf( "-----------------------------------------------------------------------------\n" ); } @@ -135,7 +137,7 @@ int main(int argc, char *argv[]) memset( &context, 0, sizeof(SContext) ); // オプション - while( (opt = getopt(argc, argv, "hpsdmv:Dcf")) >= 0 ) + while( (opt = getopt(argc, argv, "hpsdmv:DcfN")) >= 0 ) { switch( opt ) { @@ -173,10 +175,14 @@ int main(int argc, char *argv[]) context.bCheckCard = TRUE; break; + case 'N': + context.bNTR = TRUE; + break; + case 'f': bForceOverwrite = TRUE; break; - + default: // オプション引数が指定されていないときにも実行される usage(); fprintf( stdout, "error: illegal option\n" ); @@ -357,13 +363,17 @@ static BOOL iMain( SContext *pContext ) rh.s.header_crc16 = CalcCRC16( CRC16_INIT_VALUE, (u8*)&rh, CALC_CRC16_SIZE ); // 署名 - if( !(pContext->bMROM) ) // NTR専用オプションのときは署名しない + if( !(pContext->bMROM) && !(pContext->bNTR) ) // NTR専用オプションのときは署名しない { if( !SignRomHeader( &rh ) ) { return FALSE; } } + else + { + printf( "skip sign\n" ); + } // ファイルをコピる fseek( pContext->ifp, 0, SEEK_END ); diff --git a/tools/bin/FakeRomHeader.launcher.exe b/tools/bin/FakeRomHeader.launcher.exe index 5f3cee59d15cdf10c39ae25f982485c7083a9a4a..3533c69da94711fe7388c4b9bbecb4f45b02a21a 100755 GIT binary patch delta 6431 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 Hy%zd+m>wed diff --git a/tools/bin/FakeRomHeader.secure.exe b/tools/bin/FakeRomHeader.secure.exe index 326d59053fa13689a0fffa91e263ec1d0359d6cc..4110c7679c45fdf80e45f76a0d7c8b8ff7425f08 100755 GIT binary patch delta 6430 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 delta 6384 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 F^dIubBC`Mh diff --git a/tools/bin/FakeRomHeader.user.exe b/tools/bin/FakeRomHeader.user.exe index 7bca5e915ccd079e1f2de1edfb88cfef6bce5841..97e4c1dda4ad39b863e69d82684c0916ed0a0399 100755 GIT binary patch delta 6431 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