SDK rev.7025対応。

HWID署名を2048bitに変更したことに対応。
署名にacsignライブラリを使わず、SDKのcryptoライブラリを使用するように変更。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1792 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2008-07-04 09:53:39 +00:00
parent c45fa3c09e
commit 4731b2fe39
12 changed files with 77 additions and 67 deletions

View File

@ -47,10 +47,6 @@ SRCS = main.c HWInfoWriter.c hwi.c \
LINCLUDES = $(MISC_DIR)/include \ LINCLUDES = $(MISC_DIR)/include \
$(ROOT)/build/libraries/lcfg/ARM9.TWL/include $(ROOT)/build/libraries/lcfg/ARM9.TWL/include
SYSMENU_LIBS = \
libacsign$(TWL_LIBSUFFIX).a \
libacsign_enc$(TWL_LIBSUFFIX).a \
SDK_APPEND_LIBS = \ SDK_APPEND_LIBS = \
liblcfg$(TWL_LIBSUFFIX).a liblcfg$(TWL_LIBSUFFIX).a
@ -69,9 +65,11 @@ include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),) ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),)
ifdef FIRM_USE_PRODUCT_KEYS ifdef FIRM_USE_PRODUCT_KEYS
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' \
-DHWID_PRIVKEY='private_HWID.der'
else else
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' \
-DHWID_PRIVKEY='private_HWID_dev.der'
endif endif
endif endif
@ -82,8 +80,6 @@ MAKETAD_FLAGS += -s
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
GLIBRARIES := $(filter-out libcrypto$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
#LDIRT_CLEAN = #LDIRT_CLEAN =
#INSTALL_TARGETS = #INSTALL_TARGETS =
INSTALL_DIR = $(SDK_NMENU_DATADIR) INSTALL_DIR = $(SDK_NMENU_DATADIR)

View File

@ -202,5 +202,5 @@ RomSpec
File *.* File *.*
HostRoot $(PRIVKEY_PATH) HostRoot $(PRIVKEY_PATH)
Root /key Root /key
File $(HWINFO_PRIVKEY) File $(HWINFO_PRIVKEY) $(HWID_PRIVKEY)
} }

View File

@ -16,6 +16,7 @@
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
#include <twl.h> #include <twl.h>
#include <nitro/crypto.h>
#include <sysmenu.h> #include <sysmenu.h>
#include <sysmenu/acsign.h> #include <sysmenu/acsign.h>
#include <sysmenu/namut.h> #include <sysmenu/namut.h>
@ -26,8 +27,10 @@
// define data------------------------------------------ // define data------------------------------------------
#ifdef FIRM_USE_PRODUCT_KEYS // 鍵選択スイッチ #ifdef FIRM_USE_PRODUCT_KEYS // 鍵選択スイッチ
#define HWINFO_PRIVKEY_PATH "rom:key/private_HWInfo.der" // 製品用秘密鍵 #define HWINFO_PRIVKEY_PATH "rom:key/private_HWInfo.der" // 製品用秘密鍵
#define HWID_PRIVKEY_PATH "rom:key/private_HWID.der"
#else #else
#define HWINFO_PRIVKEY_PATH "rom:key/private_HWInfo_dev.der" // 開発用秘密鍵 #define HWINFO_PRIVKEY_PATH "rom:key/private_HWInfo_dev.der" // 開発用秘密鍵
#define HWID_PRIVKEY_PATH "rom:key/private_HWID_dev.der"
#endif #endif
// extern data------------------------------------------ // extern data------------------------------------------
@ -37,9 +40,10 @@ const LCFGTWLHWNormalInfo *LCFG_THW_GetNormalInfo( void );
const LCFGTWLHWSecureInfo *LCFG_THW_GetSecureInfo( void ); const LCFGTWLHWSecureInfo *LCFG_THW_GetSecureInfo( void );
// function's prototype declaration--------------------- // function's prototype declaration---------------------
static HwiInitResult ReadPrivateKey( void ); static HwiInitResult ReadPrivateKey( void **ppBuffer, u32 *pKeyFileLen, char *pPath );
static void VerifyHWInfo( void ); static void VerifyHWInfo( void );
static BOOL VerifyData( const u8 *pTgt, const u8 *pOrg, u32 len ); static BOOL VerifyData( const u8 *pTgt, const u8 *pOrg, u32 len );
static BOOL CheckHWID_Signature( BOOL isPrintf );
static BOOL ReadHWInfoFile( void ); static BOOL ReadHWInfoFile( void );
static BOOL ReadTWLSettings( void ); static BOOL ReadTWLSettings( void );
static u8 HWIi_CalcCheckCode(u8 src[8]); static u8 HWIi_CalcCheckCode(u8 src[8]);
@ -47,7 +51,10 @@ static u8 HWIi_CalcCheckCode(u8 src[8]);
// global variable ------------------------------------- // global variable -------------------------------------
// static variable ------------------------------------- // static variable -------------------------------------
static u8 *s_pPrivKeyBuffer = NULL; static void *s_pPrivKeyBuffer = NULL;
static void *s_pPrivKeyBufferHWID = NULL;
static u32 s_privKeyBufferLen;
static u32 s_privKeyBufferLenHWID;
static void *(*spAlloc)( u32 length ); static void *(*spAlloc)( u32 length );
static void (*spFree)( void *ptr ); static void (*spFree)( void *ptr );
@ -111,20 +118,16 @@ HwiInitResult HWI_Init( void *(*pAlloc)( u32 ), void (*pFree)( void * ) )
spAlloc = pAlloc; spAlloc = pAlloc;
spFree = pFree; spFree = pFree;
ACSign_SetAllocFunc( pAlloc, pFree ); CRYPTO_SetMemAllocator( pAlloc, pFree, NULL );
result = ReadPrivateKey();
result = ReadPrivateKey( &s_pPrivKeyBuffer, &s_privKeyBufferLen, HWINFO_PRIVKEY_PATH );
if( result != HWI_INIT_SUCCESS_NO_SIGNATRUE_MODE ) {
result = ReadPrivateKey( &s_pPrivKeyBufferHWID, &s_privKeyBufferLenHWID, HWID_PRIVKEY_PATH );
}
ReadHWInfoFile(); ReadHWInfoFile();
// VerifyHWInfo(); // VerifyHWInfo();
if( 1 ) { (void)CheckHWID_Signature( TRUE );
u8 sign[ RSA_KEY_LENGTH ];
if( !LCFG_ReadHWID_Signature( sign ) ||
!LCFG_CheckHWID_Signature( sign )
) {
OS_TPrintf( "HWID Signature check failed.\n" );
}else {
OS_TPrintf( "HWID Signature check succeeded.\n" );
}
}
// ※LanguageBitmapを判定で使用するので、必ずReadHWInfoの後で実行する必要がある。 // ※LanguageBitmapを判定で使用するので、必ずReadHWInfoの後で実行する必要がある。
ReadTWLSettings(); ReadTWLSettings();
@ -157,24 +160,23 @@ static BOOL ReadTWLSettings( void )
} }
// 秘密鍵のリード // 秘密鍵のリード
HwiInitResult ReadPrivateKey( void ) static HwiInitResult ReadPrivateKey( void **ppBuffer, u32 *pKeyFileLen, char *pPath )
{ {
BOOL result = FALSE; BOOL result = FALSE;
u32 keyLength;
FSFile file; FSFile file;
OSTick start = OS_GetTick(); OSTick start = OS_GetTick();
FS_InitFile( &file ); FS_InitFile( &file );
if( !FS_OpenFileEx( &file, HWINFO_PRIVKEY_PATH, FS_FILEMODE_R ) ) if( !FS_OpenFileEx( &file, pPath, FS_FILEMODE_R ) )
{ {
OS_TPrintf( "PrivateKey read failed.\n" ); OS_TPrintf( "PrivateKey read failed.\n" );
} }
else else
{ {
keyLength = FS_GetFileLength( &file ); *pKeyFileLen = FS_GetFileLength( &file );
if( keyLength > 0 ) { if( *pKeyFileLen > 0 ) {
s_pPrivKeyBuffer = spAlloc( keyLength ); *ppBuffer = spAlloc( *pKeyFileLen );
if( FS_ReadFile( &file, s_pPrivKeyBuffer, (s32)keyLength ) == keyLength ) { if( FS_ReadFile( &file, *ppBuffer, (s32)*pKeyFileLen ) == *pKeyFileLen ) {
OS_TPrintf( "PrivateKey read succeeded.\n" ); OS_TPrintf( "PrivateKey read succeeded.\n" );
result = TRUE; result = TRUE;
}else { }else {
@ -184,9 +186,9 @@ HwiInitResult ReadPrivateKey( void )
FS_CloseFile( &file ); FS_CloseFile( &file );
} }
if( !result && s_pPrivKeyBuffer ) { if( !result && *ppBuffer ) {
spFree( s_pPrivKeyBuffer ); spFree( *ppBuffer );
s_pPrivKeyBuffer = NULL; *ppBuffer = NULL;
} }
// OS_TPrintf( "PrivKey read time = %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) ); // OS_TPrintf( "PrivKey read time = %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
@ -241,6 +243,7 @@ static void VerifyHWInfo( void )
} }
} }
// メモリ上のデータベリファイ // メモリ上のデータベリファイ
static BOOL VerifyData( const u8 *pTgt, const u8 *pOrg, u32 len ) static BOOL VerifyData( const u8 *pTgt, const u8 *pOrg, u32 len )
{ {
@ -252,6 +255,23 @@ static BOOL VerifyData( const u8 *pTgt, const u8 *pOrg, u32 len )
return TRUE; return TRUE;
} }
// HWID<49><44>¼ÌŠm”F
static BOOL CheckHWID_Signature( BOOL isPrintf )
{
u8 sign[ LCFG_TWL_HWID_SIGN_LENGTH ];
if( !LCFG_ReadHWID_Signature( sign ) ||
!LCFG_CheckHWID_Signature( sign )
) {
if( isPrintf ) OS_TPrintf( "HWID Signature check failed.\n" );
return FALSE;
}else {
if( isPrintf ) OS_TPrintf( "HWID Signature check succeeded.\n" );
return TRUE;
}
}
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: HWI_ModifyLanguage Name: HWI_ModifyLanguage
@ -530,7 +550,7 @@ BOOL HWI_WriteHWSecureInfoFile( u8 region, const u8 *pSerialNo, BOOL isDisableWi
// ライト // ライト
if( isWrite && if( isWrite &&
!LCFGi_THW_WriteSecureInfo( s_pPrivKeyBuffer ) ) { !LCFGi_THW_WriteSecureInfo( s_pPrivKeyBuffer, s_privKeyBufferLen ) ) {
isWrite = FALSE; isWrite = FALSE;
OS_TPrintf( "HW Secure Info Write failed.\n" ); OS_TPrintf( "HW Secure Info Write failed.\n" );
} }
@ -552,13 +572,14 @@ BOOL HWI_WriteHWSecureInfoFile( u8 region, const u8 *pSerialNo, BOOL isDisableWi
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
BOOL HWI_WriteHWIDSignFile( void ) BOOL HWI_WriteHWIDSignFile( void )
{ {
BOOL retval; BOOL retval = TRUE;
(void)FS_DeleteFile( (char *)LCFG_TWL_HWID_SIGN_PATH ); (void)FS_DeleteFile( (char *)LCFG_TWL_HWID_SIGN_PATH );
if( !FS_CreateFile( LCFG_TWL_HWID_SIGN_PATH, FS_PERMIT_R | FS_PERMIT_W ) ) { if( !FS_CreateFile( LCFG_TWL_HWID_SIGN_PATH, FS_PERMIT_R | FS_PERMIT_W ) ) {
OS_TPrintf( "file create error. %s\n", LCFG_TWL_HWID_SIGN_PATH ); OS_TPrintf( "file create error. %s\n", LCFG_TWL_HWID_SIGN_PATH );
} }
retval = LCFG_WriteHWID_Signature( s_pPrivKeyBuffer ); retval &= LCFG_WriteHWID_Signature( s_pPrivKeyBufferHWID, s_privKeyBufferLenHWID );
retval &= CheckHWID_Signature( FALSE );
if( !retval ) { if( !retval ) {
OS_TPrintf( "HWID Signature Write failed.\n" ); OS_TPrintf( "HWID Signature Write failed.\n" );
} }

View File

@ -65,9 +65,11 @@ include $(TWLSDK_ROOT)/build/buildtools/commondefs.gx.demolib
ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),) ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),)
ifdef FIRM_USE_PRODUCT_KEYS ifdef FIRM_USE_PRODUCT_KEYS
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' \
-DHWID_PRIVKEY='private_HWID.der'
else else
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' \
-DHWID_PRIVKEY='private_HWID_dev.der'
endif endif
endif endif
@ -76,7 +78,6 @@ MAKEROM_FLAGS += -DTITLEID_LO='$(TITLEID_LO)' \
MAKETAD_FLAGS += -s MAKETAD_FLAGS += -s
SYSMENU_LIBS = \ SYSMENU_LIBS = \
libacsign$(TWL_LIBSUFFIX).a \
libnamut$(TWL_LIBSUFFIX).a libnamut$(TWL_LIBSUFFIX).a
SDK_APPEND_LIBS = \ SDK_APPEND_LIBS = \
@ -92,8 +93,6 @@ LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
GLIBRARIES := $(filter-out libcrypto$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
#LDIRT_CLEAN = #LDIRT_CLEAN =
#INSTALL_TARGETS = #INSTALL_TARGETS =
INSTALL_DIR = $(SDK_NMENU_DATADIR) INSTALL_DIR = $(SDK_NMENU_DATADIR)

View File

@ -220,5 +220,5 @@ RomSpec
Segment ALL Segment ALL
HostRoot $(PRIVKEY_PATH) HostRoot $(PRIVKEY_PATH)
Root /key Root /key
File $(HWINFO_PRIVKEY) File $(HWINFO_PRIVKEY) $(HWID_PRIVKEY)
} }

View File

@ -114,9 +114,11 @@ include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),) ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),)
ifdef FIRM_USE_PRODUCT_KEYS ifdef FIRM_USE_PRODUCT_KEYS
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' \
-DHWID_PRIVKEY='private_HWID.der'
else else
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' \
-DHWID_PRIVKEY='private_HWID_dev.der'
endif endif
endif endif
@ -128,8 +130,6 @@ MAKEROM_FLAGS += -DTITLEID_LO='$(TITLEID_LO)' \
MAKETAD_FLAGS += -s MAKETAD_FLAGS += -s
SYSMENU_LIBS = \ SYSMENU_LIBS = \
libacsign$(TWL_LIBSUFFIX).a \
libacsign_enc$(TWL_LIBSUFFIX).a \
libnamut$(TWL_LIBSUFFIX).a libnamut$(TWL_LIBSUFFIX).a
SDK_APPEND_LIBS = \ SDK_APPEND_LIBS = \
@ -144,8 +144,6 @@ LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
GLIBRARIES := $(filter-out libcrypto$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
# インストール設定 # インストール設定
ifeq ($(TWL_BUILD_TYPE),FINALROM) ifeq ($(TWL_BUILD_TYPE),FINALROM)
INSTALL_DIR = $(ROOT)/bin/ARM9-TS/Rom INSTALL_DIR = $(ROOT)/bin/ARM9-TS/Rom

View File

@ -223,5 +223,5 @@ RomSpec
File *.* File *.*
HostRoot $(PRIVKEY_PATH) HostRoot $(PRIVKEY_PATH)
Root /key Root /key
File $(HWINFO_PRIVKEY) File $(HWINFO_PRIVKEY) $(HWID_PRIVKEY)
} }

View File

@ -98,9 +98,11 @@ include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),) ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),)
ifdef FIRM_USE_PRODUCT_KEYS ifdef FIRM_USE_PRODUCT_KEYS
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' \
-DHWID_PRIVKEY='private_HWID.der'
else else
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' \
-DHWID_PRIVKEY='private_HWID_dev.der'
endif endif
endif endif
@ -112,8 +114,6 @@ MAKEROM_FLAGS += -DTITLEID_LO='$(TITLEID_LO)' \
MAKETAD_FLAGS += -s MAKETAD_FLAGS += -s
SYSMENU_LIBS = \ SYSMENU_LIBS = \
libacsign$(TWL_LIBSUFFIX).a \
libacsign_enc$(TWL_LIBSUFFIX).a \
libnamut$(TWL_LIBSUFFIX).a libnamut$(TWL_LIBSUFFIX).a
SDK_APPEND_LIBS = \ SDK_APPEND_LIBS = \
@ -128,8 +128,6 @@ LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
GLIBRARIES := $(filter-out libcrypto$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
#LDIRT_CLEAN = #LDIRT_CLEAN =
#INSTALL_TARGETS = #INSTALL_TARGETS =
#INSTALL_DIR = $(SDK_NMENU_DATADIR) #INSTALL_DIR = $(SDK_NMENU_DATADIR)

View File

@ -93,9 +93,11 @@ include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),) ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),)
ifdef FIRM_USE_PRODUCT_KEYS ifdef FIRM_USE_PRODUCT_KEYS
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' \
-DHWID_PRIVKEY='private_HWID.der'
else else
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' \
-DHWID_PRIVKEY='private_HWID_dev.der'
endif endif
endif endif
@ -107,8 +109,6 @@ MAKEROM_FLAGS += -DTITLEID_LO='$(TITLEID_LO)' \
MAKETAD_FLAGS += -s MAKETAD_FLAGS += -s
SYSMENU_LIBS = \ SYSMENU_LIBS = \
libacsign$(TWL_LIBSUFFIX).a \
libacsign_enc$(TWL_LIBSUFFIX).a \
libnamut$(TWL_LIBSUFFIX).a libnamut$(TWL_LIBSUFFIX).a
SDK_APPEND_LIBS = \ SDK_APPEND_LIBS = \
@ -123,8 +123,6 @@ LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
GLIBRARIES := $(filter-out libcrypto$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
#LDIRT_CLEAN = #LDIRT_CLEAN =
#INSTALL_TARGETS = #INSTALL_TARGETS =
INSTALL_DIR = $(SDK_NMENU_DATADIR) INSTALL_DIR = $(SDK_NMENU_DATADIR)

View File

@ -228,5 +228,5 @@ RomSpec
File *.* File *.*
HostRoot $(PRIVKEY_PATH) HostRoot $(PRIVKEY_PATH)
Root /key Root /key
File $(HWINFO_PRIVKEY) File $(HWINFO_PRIVKEY) $(HWID_PRIVKEY)
} }

View File

@ -75,9 +75,11 @@ include $(TWLSDK_ROOT)/build/buildtools/commondefs.gx.demolib
ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),) ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),)
ifdef FIRM_USE_PRODUCT_KEYS ifdef FIRM_USE_PRODUCT_KEYS
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo.der' \
-DHWID_PRIVKEY='private_HWID.der'
else else
MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' MAKEROM_FLAGS += -DHWINFO_PRIVKEY='private_HWInfo_dev.der' \
-DHWID_PRIVKEY='private_HWID_dev.der'
endif endif
endif endif
@ -113,8 +115,6 @@ LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
GLIBRARIES := $(filter-out libcrypto$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
#LDIRT_CLEAN = #LDIRT_CLEAN =
#INSTALL_TARGETS = #INSTALL_TARGETS =
INSTALL_DIR = $(SDK_NMENU_DATADIR) INSTALL_DIR = $(SDK_NMENU_DATADIR)

View File

@ -225,7 +225,7 @@ RomSpec
File *.* File *.*
HostRoot $(PRIVKEY_PATH) HostRoot $(PRIVKEY_PATH)
Root /key Root /key
File $(HWINFO_PRIVKEY) File $(HWINFO_PRIVKEY) $(HWID_PRIVKEY)
HostRoot $(TWL_IPL_RED_ROOT)/build/systemMenu_tools/NandInitializerRed/data HostRoot $(TWL_IPL_RED_ROOT)/build/systemMenu_tools/NandInitializerRed/data
Root /data Root /data
File TWLFontTable.dat File TWLFontTable.dat