mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
(佐々木@PSEG1)全てのリージョンを一括でビルドするように変更
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2247 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
5d209a4387
commit
ed5d107ec8
@ -35,7 +35,7 @@ TWL_ARCHGEN = LIMITED
|
|||||||
TITLEID_LO = 0SUA
|
TITLEID_LO = 0SUA
|
||||||
#TARGET_TAD =
|
#TARGET_TAD =
|
||||||
|
|
||||||
TARGET_BIN = CustomSystemUpdater.srl
|
TARGET_BIN = CustomSystemUpdater_$(SYSM_REGION).srl
|
||||||
LCFILE_SPEC = ARM9-TS.lsf
|
LCFILE_SPEC = ARM9-TS.lsf
|
||||||
ROM_SPEC = main.rsf
|
ROM_SPEC = main.rsf
|
||||||
|
|
||||||
@ -113,6 +113,7 @@ MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
|
|||||||
#LDIRT_CLEAN =
|
#LDIRT_CLEAN =
|
||||||
#INSTALL_TARGETS =
|
#INSTALL_TARGETS =
|
||||||
INSTALL_DIR = $(SDK_NMENU_DATADIR)
|
INSTALL_DIR = $(SDK_NMENU_DATADIR)
|
||||||
|
#INSTALL_DIR = $(TWL_IPL_RED_ROOT)/build/tests/CustomSystemUpdater/bin
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@ -220,9 +220,9 @@ RomSpec
|
|||||||
{
|
{
|
||||||
Offset 0x00000000
|
Offset 0x00000000
|
||||||
Segment ALL
|
Segment ALL
|
||||||
HostRoot ../data
|
HostRoot ../data/test_forcsu/euro
|
||||||
Root /data
|
Root /data
|
||||||
File hnaj-v0.tad hnbj-v0.tad hnca-v0.tad hnda-v0.tad hnea-v0.tad hnfj-v0.tad HNGJ-261.tad hnha-v0.tad hnij-v0.tad hnjj-v0.tad hnkj-v0.tad hnla-v0.tad TWLFontTable.dat nandfirm_rcplus.nand
|
File hnap-v0.tad hnbp-v0.tad hnca-v0.tad hnda-v0.tad hnea-v0.tad hnfp-v0.tad hnha-v0.tad hnip-v0.tad hnjp-v0.tad hnkp-v0.tad hnla-v0.tad TWLFontTable.dat nandfirm_rcplus.nand
|
||||||
HostRoot $(PRIVKEY_PATH)
|
HostRoot $(PRIVKEY_PATH)
|
||||||
Root /key
|
Root /key
|
||||||
File $(HWINFO_PRIVKEY) $(HWID_PRIVKEY)
|
File $(HWINFO_PRIVKEY) $(HWID_PRIVKEY)
|
||||||
|
|||||||
@ -71,17 +71,16 @@ typedef struct _CopyFileList
|
|||||||
|
|
||||||
static const char* ImportTadFileList[] =
|
static const char* ImportTadFileList[] =
|
||||||
{
|
{
|
||||||
"rom:/data/hnaj-v0.tad",
|
"rom:/data/hnap-v0.tad",
|
||||||
"rom:/data/hnbj-v0.tad",
|
"rom:/data/hnbp-v0.tad",
|
||||||
"rom:/data/hnca-v0.tad",
|
"rom:/data/hnca-v0.tad",
|
||||||
"rom:/data/hnda-v0.tad",
|
"rom:/data/hnda-v0.tad",
|
||||||
"rom:/data/hnea-v0.tad",
|
"rom:/data/hnea-v0.tad",
|
||||||
"rom:/data/hnfj-v0.tad",
|
"rom:/data/hnfp-v0.tad",
|
||||||
"rom:/data/HNGJ-261.tad",
|
|
||||||
"rom:/data/hnha-v0.tad",
|
"rom:/data/hnha-v0.tad",
|
||||||
"rom:/data/hnij-v0.tad",
|
"rom:/data/hnip-v0.tad",
|
||||||
"rom:/data/hnjj-v0.tad",
|
"rom:/data/hnjp-v0.tad",
|
||||||
"rom:/data/hnkj-v0.tad",
|
"rom:/data/hnkp-v0.tad",
|
||||||
"rom:/data/hnla-v0.tad",
|
"rom:/data/hnla-v0.tad",
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@ -16,6 +16,7 @@
|
|||||||
# $Author$
|
# $Author$
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
TARGET_FIRM = SYSTEMMENU
|
TARGET_FIRM = SYSTEMMENU
|
||||||
|
|
||||||
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
||||||
@ -29,6 +30,12 @@ DS_HASH_TABLE = $(TWL_IPL_RED_ROOT)/build/systemMenu_RED/DSHashTable
|
|||||||
SHARED_FONT_DIR = $(TWL_IPL_RED_ROOT)/build/systemMenu_RED/sharedFont
|
SHARED_FONT_DIR = $(TWL_IPL_RED_ROOT)/build/systemMenu_RED/sharedFont
|
||||||
NANDFIRM_DIR = $(TWL_IPL_RED_ROOT)/build/nandfirm/menu-launcher
|
NANDFIRM_DIR = $(TWL_IPL_RED_ROOT)/build/nandfirm/menu-launcher
|
||||||
|
|
||||||
|
# リージョンが指定されてなかったら日本
|
||||||
|
ifeq ($(REGION),)
|
||||||
|
REGION = JPN
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
# 既存データを使用する場合はTRUEを指定
|
# 既存データを使用する場合はTRUEを指定
|
||||||
SKIP_CREATE_DATA = TRUE
|
SKIP_CREATE_DATA = TRUE
|
||||||
|
|
||||||
@ -49,6 +56,9 @@ SUBDIRS = banner \
|
|||||||
ARM9.TWL
|
ARM9.TWL
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# CustomRegion
|
||||||
|
export SYSM_REGION = $(REGION)
|
||||||
|
|
||||||
# COMPILE SWITCH for build SystemMenu
|
# COMPILE SWITCH for build SystemMenu
|
||||||
|
|
||||||
export SYSM_UPDATER_RELEASE = TRUE
|
export SYSM_UPDATER_RELEASE = TRUE
|
||||||
|
|||||||
@ -31,6 +31,13 @@ REGION = {
|
|||||||
"USA" => "OS_TWL_REGION_AUSTRALIA",
|
"USA" => "OS_TWL_REGION_AUSTRALIA",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
REGION_PATH = {
|
||||||
|
"JPN" => "jp",
|
||||||
|
"EUR" => "euro",
|
||||||
|
"AUS" => "aus",
|
||||||
|
"USA" => "usa",
|
||||||
|
}
|
||||||
|
|
||||||
# デフォルト設定の作成
|
# デフォルト設定の作成
|
||||||
def make_default_config
|
def make_default_config
|
||||||
config = {
|
config = {
|
||||||
@ -66,13 +73,6 @@ def write_config(filename, data)
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# ファイル内の文字列を置き換える
|
|
||||||
#def replace_data(filename, mark, data)
|
|
||||||
#file = File.read(filename)
|
|
||||||
#file.sub(/%#{mark}%/, data)
|
|
||||||
#end
|
|
||||||
|
|
||||||
# データ内の文字列を置き換える
|
# データ内の文字列を置き換える
|
||||||
def replace_data(src, mark, data)
|
def replace_data(src, mark, data)
|
||||||
while src.index(/%#{mark}%/) != nil do
|
while src.index(/%#{mark}%/) != nil do
|
||||||
@ -96,6 +96,7 @@ def make_rsf(config)
|
|||||||
tadlist << config[:FontFile] << config[:NandFirm]
|
tadlist << config[:FontFile] << config[:NandFirm]
|
||||||
tadlist = tadlist.join(" ")
|
tadlist = tadlist.join(" ")
|
||||||
src = File.read(config[:TemplatePath] + "/" + config[:RSF])
|
src = File.read(config[:TemplatePath] + "/" + config[:RSF])
|
||||||
|
src = replace_data(src, "datapath", config[:DataPath])
|
||||||
write_data(config[:TargetPath] + "/" + config[:RSF], replace_data(src, "filelist", tadlist))
|
write_data(config[:TargetPath] + "/" + config[:RSF], replace_data(src, "filelist", tadlist))
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -118,7 +119,7 @@ def make_main(config)
|
|||||||
write_data(config[:TargetPath] + "/" + config[:SRC], mod)
|
write_data(config[:TargetPath] + "/" + config[:SRC], mod)
|
||||||
end
|
end
|
||||||
|
|
||||||
# SystemUpdaterの設定を変更する
|
# SystemUpdaterを作成する
|
||||||
def make_updater(filename)
|
def make_updater(filename)
|
||||||
config = read_config(filename)
|
config = read_config(filename)
|
||||||
make_rsf(config)
|
make_rsf(config)
|
||||||
@ -126,7 +127,7 @@ def make_updater(filename)
|
|||||||
end
|
end
|
||||||
|
|
||||||
# ディレクトリ内のtadを検索
|
# ディレクトリ内のtadを検索
|
||||||
def pickup_tad(target_dir, name)
|
def pickup_files(target_dir, name)
|
||||||
Dir.glob(target_dir + name)
|
Dir.glob(target_dir + name)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -148,32 +149,31 @@ when "default" then
|
|||||||
make_default_config
|
make_default_config
|
||||||
make_updater(DEFAULT_CONFIG)
|
make_updater(DEFAULT_CONFIG)
|
||||||
when "custom" then
|
when "custom" then
|
||||||
# カスタム設定で作成
|
if ARGV.size < 3
|
||||||
# 指定したコンフィグファイルをベースに
|
p "Usage: sumaker custom target_dir region"
|
||||||
# dataディレクトリ内のtadを追加する
|
exit
|
||||||
config = ""
|
|
||||||
if ARGV.size == 1
|
|
||||||
# コンフィグファイルが指定されてない場合config_baseをベースに
|
|
||||||
config = "custom_base.yaml"
|
|
||||||
else
|
|
||||||
config = ARGV[1]
|
|
||||||
end
|
end
|
||||||
|
# カスタム設定で作成
|
||||||
|
config = "custom_base.yaml"
|
||||||
|
region = ARGV[2]
|
||||||
|
|
||||||
# ベースコンフィグに、dataディレクトリ内のtadとnandを追加
|
# ベースコンフィグに、dataディレクトリ内のtadとnandを追加
|
||||||
config = read_config(config)
|
config = read_config(config)
|
||||||
if config[:TadFiles] == nil
|
if config[:TadFiles] == nil
|
||||||
config[:TadFiles] = []
|
config[:TadFiles] = []
|
||||||
end
|
end
|
||||||
tads = pickup_tad(config[:DataPath], "/*.tad")
|
|
||||||
nand = pickup_tad(config[:DataPath], "/*.nand")
|
config[:DataPath] += "/#{ARGV[1]}/#{REGION_PATH[region]}"
|
||||||
font = pickup_tad(config[:DataPath], "/*.dat")
|
config[:Region] = region
|
||||||
|
tads = pickup_files(config[:DataPath], "/*.tad")
|
||||||
|
nand = pickup_files(config[:DataPath], "/*.nand")
|
||||||
|
font = pickup_files(config[:DataPath], "/*.dat")
|
||||||
if nand.size > 0
|
if nand.size > 0
|
||||||
config[:NandFirm] = nand[0].slice(FILE_MATCH)
|
config[:NandFirm] = nand[0].slice(FILE_MATCH)
|
||||||
end
|
end
|
||||||
if font.size > 0
|
if font.size > 0
|
||||||
config[:FontFile] = font[0].slice(FILE_MATCH)
|
config[:FontFile] = font[0].slice(FILE_MATCH)
|
||||||
end
|
end
|
||||||
p tads
|
|
||||||
for tad in tads do
|
for tad in tads do
|
||||||
tad = tad.slice(FILE_MATCH)
|
tad = tad.slice(FILE_MATCH)
|
||||||
config[:TadFiles] << tad
|
config[:TadFiles] << tad
|
||||||
|
|||||||
@ -220,7 +220,7 @@ RomSpec
|
|||||||
{
|
{
|
||||||
Offset 0x00000000
|
Offset 0x00000000
|
||||||
Segment ALL
|
Segment ALL
|
||||||
HostRoot ../data
|
HostRoot ../%datapath%
|
||||||
Root /data
|
Root /data
|
||||||
File %filelist%
|
File %filelist%
|
||||||
HostRoot $(PRIVKEY_PATH)
|
HostRoot $(PRIVKEY_PATH)
|
||||||
|
|||||||
46
build/tests/CustomSystemUpdater/work/cls.sh
Executable file
46
build/tests/CustomSystemUpdater/work/cls.sh
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#! bash -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - tools
|
||||||
|
# File: conv2svnDir.sh
|
||||||
|
#
|
||||||
|
# Copyright 2007 Nintendo. All rights reserved.
|
||||||
|
#
|
||||||
|
# These coded instructions, statements, and computer programs contain
|
||||||
|
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
# Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
# not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
# in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
#
|
||||||
|
# $Date:: $
|
||||||
|
# $Rev$
|
||||||
|
# $Author$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
move_data_to_tmp() {
|
||||||
|
tmp=tmp/$1
|
||||||
|
install -d $tmp
|
||||||
|
for src in `find $1 -name v*`
|
||||||
|
do
|
||||||
|
mv $src $tmp
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
do_cls() {
|
||||||
|
tmp=tmp/$1
|
||||||
|
for target in `find $tmp -name v*`
|
||||||
|
do
|
||||||
|
cp -rp $target $1
|
||||||
|
echo "$target"
|
||||||
|
genLic $1
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
for app in `find . -maxdepth 1 -mindepth 1 -type d`
|
||||||
|
do
|
||||||
|
name=`echo "$app" | cut -c 3-`
|
||||||
|
move_data_to_tmp $name
|
||||||
|
do_cls $name
|
||||||
|
done
|
||||||
|
|
||||||
|
rm -rf tmp
|
||||||
134
build/tests/CustomSystemUpdater/work/mkcls.py
Normal file
134
build/tests/CustomSystemUpdater/work/mkcls.py
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding:utf-8 -*-
|
||||||
|
|
||||||
|
import sys, os, struct
|
||||||
|
import string, random
|
||||||
|
import re, shutil, binascii
|
||||||
|
|
||||||
|
def roundup(val, align):
|
||||||
|
return int((val+align-1)/align)*align
|
||||||
|
|
||||||
|
def randstr(n):
|
||||||
|
words = ''.join([string.digits,string.letters,'.','+'])
|
||||||
|
return ''.join(random.choice(words) for i in xrange(n))
|
||||||
|
|
||||||
|
def main():
|
||||||
|
try:
|
||||||
|
tadfile = sys.argv[1]
|
||||||
|
except:
|
||||||
|
print '%s : please specfy the tad file' % (sys.argv[0])
|
||||||
|
exit(-1)
|
||||||
|
|
||||||
|
#--- parse *.tad
|
||||||
|
fin = open(tadfile, 'rb')
|
||||||
|
try:
|
||||||
|
tadData = fin.read()
|
||||||
|
except:
|
||||||
|
fin.close()
|
||||||
|
start, end = 0, struct.calcsize('>l2sh6l')
|
||||||
|
(hdrSize, tadType, tadVersion, certSize, crlSize, ticketSize, tmdSize,
|
||||||
|
contentSize, metaSize) = struct.unpack('>l2sh6l', tadData[start:end])
|
||||||
|
certOffset = roundup(hdrSize, 64)
|
||||||
|
crlOffset = roundup(certOffset + certSize, 64)
|
||||||
|
ticketOffset = roundup(crlOffset + crlSize, 64)
|
||||||
|
tmdOffset = roundup(ticketOffset + ticketSize, 64)
|
||||||
|
contentOffset = roundup(tmdOffset + tmdSize, 64)
|
||||||
|
metaOffset = roundup(contentOffset + contentSize, 64)
|
||||||
|
fileSize = roundup(metaOffset + metaSize, 64)
|
||||||
|
|
||||||
|
#print '-'*20+'\n'
|
||||||
|
#print ' hdrSize %s\n' % hdrSize,
|
||||||
|
#print ' tadType %s\n' % tadType,
|
||||||
|
#print ' tadVersion, %s\n' % tadVersion,
|
||||||
|
#print ' certSize, %s\n' % certSize,
|
||||||
|
#print ' crlSize, %s\n' % crlSize,
|
||||||
|
#print ' ticketSize, %s\n' % ticketSize,
|
||||||
|
#print ' tmdSize, %s\n' % tmdSize,
|
||||||
|
#print ' contentSize, %s\n' % contentSize,
|
||||||
|
#print ' metaSize %s'
|
||||||
|
#print '\n'+'-'*20
|
||||||
|
#open("cert.bin", 'wb').write(tadData[certOffset:certOffset+certSize])
|
||||||
|
#open("crl.bin", 'wb').write(tadData[crlOffset:crlOffset+crlSize])
|
||||||
|
#open("ticket.bin", 'wb').write(tadData[ticketOffset:ticketOffset+ticketSize])
|
||||||
|
#open("tmd.bin", 'wb').write(tadData[tmdOffset:tmdOffset+tmdSize])
|
||||||
|
#open("content.bin", 'wb').write(tadData[contentOffset:contentOffset+contentSize])
|
||||||
|
#open("meta.bin", 'wb').write(tadData[metaOffset:metaOffset+metaSize])
|
||||||
|
|
||||||
|
#--- parse TMD
|
||||||
|
tmd = tadData[tmdOffset:tmdOffset+tmdSize]
|
||||||
|
|
||||||
|
#--- RSA2048 signature
|
||||||
|
(sigB, sigE) = (0, struct.calcsize('>i256s60s64s'))
|
||||||
|
(IOSCCertSigType, IOSCRsaSig2048, IOSCSigDummy, IOSCName)\
|
||||||
|
= struct.unpack('>i256s60s64s', tmd[sigB:sigE])
|
||||||
|
|
||||||
|
#print "=== RSA2048 signature ==============="
|
||||||
|
#print "IOSCCertSigType : %x" % IOSCCertSigType
|
||||||
|
#print "IOSCRsaSig2048 : %s" % IOSCRsaSig2048
|
||||||
|
#print "IOSCSigDummy : %s" % IOSCSigDummy
|
||||||
|
#print "IOSCName : %s" % IOSCName
|
||||||
|
|
||||||
|
#--- ESTitleMetaHeader
|
||||||
|
(tmhB, tmhE) = (sigE, sigE+struct.calcsize('>4B5iH62si3H'))
|
||||||
|
(version,
|
||||||
|
caCrlVersion,
|
||||||
|
signerCrlVersion,
|
||||||
|
dummy,
|
||||||
|
sysVersion_H,
|
||||||
|
sysVersion_L,
|
||||||
|
titleId_H,
|
||||||
|
titleId_L,
|
||||||
|
titleType,
|
||||||
|
groupID,
|
||||||
|
reserved,
|
||||||
|
accessRights,
|
||||||
|
titleVersion,
|
||||||
|
numContents,
|
||||||
|
bootIndex) = struct.unpack('>4B5iH62si3H',tmd[tmhB:tmhE])
|
||||||
|
|
||||||
|
print "=== ESTitleMetaHeader ==============="
|
||||||
|
#print ('version : %d ') % version
|
||||||
|
#print ('caCrlVersion : %d ') % caCrlVersion
|
||||||
|
#print ('signerCrlVersion : %d ') % signerCrlVersion
|
||||||
|
#print ('dummy : %s ') % dummy
|
||||||
|
#print ('sysVersion_H : %x ') % sysVersion_H
|
||||||
|
#print ('sysVersion_L : %x ') % sysVersion_L
|
||||||
|
print ('titleId_H : %08x ') % titleId_H
|
||||||
|
print ('titleId_L : %08x ') % titleId_L
|
||||||
|
#print ('titleType : %x ') % titleType
|
||||||
|
print ('groupID : %x ') % groupID
|
||||||
|
#print ('reserved[62] : %s ') % reserved
|
||||||
|
#print ('accessRights : %d ') % accessRights
|
||||||
|
print ('titleVersion : %d ') % titleVersion
|
||||||
|
#print ('numContents : %d ') % numContents
|
||||||
|
#print ('bootIndex : %d ') % bootIndex
|
||||||
|
|
||||||
|
#--- make directory for cls
|
||||||
|
tadpath = os.path.dirname(tadfile)
|
||||||
|
gamecode = binascii.unhexlify('%x'%titleId_L)
|
||||||
|
#clsdir = ''.join([tadpath,'/',gamecode])
|
||||||
|
clsdir = ''.join(['./',gamecode])
|
||||||
|
try:
|
||||||
|
os.mkdir(clsdir)
|
||||||
|
except:
|
||||||
|
print '%s : can not create dir %s' % (sys.argv[0],clsdir)
|
||||||
|
|
||||||
|
#--- write properties
|
||||||
|
properties = open(''.join([clsdir,'/properties']),'w')
|
||||||
|
properties.write('TITLE_ID\t\t\t\t%08x%08x\n' % (titleId_H, titleId_L))
|
||||||
|
properties.write('TITLE_NAME\t\t\t\t%s\n' % gamecode)
|
||||||
|
properties.write('TITLE_TYPE\t\t\t\t%s\n' % 'TWL_SYS')
|
||||||
|
properties.write('PASSWORD\t\t\t\t%s\n' % randstr(64))
|
||||||
|
properties.write('ALLOW_COMMON_TICKET\t\t%s\n' % '1')
|
||||||
|
|
||||||
|
#--- make version dir
|
||||||
|
verdir = ''.join([clsdir,'/v',str(titleVersion)])
|
||||||
|
try:
|
||||||
|
os.mkdir(verdir)
|
||||||
|
except:
|
||||||
|
print '%s : can not create dir %s' % (sys.argv[0],verdir)
|
||||||
|
else:
|
||||||
|
shutil.copy(tadfile,verdir)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.exit(main() or 0)
|
||||||
48
build/tests/CustomSystemUpdater/work/tocls.sh
Executable file
48
build/tests/CustomSystemUpdater/work/tocls.sh
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#! bash -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - tools
|
||||||
|
# File: conv2svnDir.sh
|
||||||
|
#
|
||||||
|
# Copyright 2007 Nintendo. All rights reserved.
|
||||||
|
#
|
||||||
|
# These coded instructions, statements, and computer programs contain
|
||||||
|
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
# Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
# not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
# in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
#
|
||||||
|
# $Date:: $
|
||||||
|
# $Rev$
|
||||||
|
# $Author$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
if [ $# -lt 1 ];
|
||||||
|
then
|
||||||
|
echo "input target dir name"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
target=$1_forcls
|
||||||
|
mkdir $target
|
||||||
|
cd $target
|
||||||
|
find ../$1 -name "*.tad" -exec ../mkcls.py {} \;
|
||||||
|
cp ../cls.sh ./
|
||||||
|
|
||||||
|
# nandファームと、フォントを一応リージョン毎にコピー
|
||||||
|
mkdir jp
|
||||||
|
mkdir aus
|
||||||
|
mkdir usa
|
||||||
|
mkdir euro
|
||||||
|
|
||||||
|
cp `find ../$1/jp -name "*.nand"` jp
|
||||||
|
cp `find ../$1/jp -name "*.nand"` aus
|
||||||
|
cp `find ../$1/jp -name "*.nand"` usa
|
||||||
|
cp `find ../$1/jp -name "*.nand"` euro
|
||||||
|
cp `find ../$1/jp -name "*.dat"` jp
|
||||||
|
cp `find ../$1/jp -name "*.dat"` aus
|
||||||
|
cp `find ../$1/jp -name "*.dat"` usa
|
||||||
|
cp `find ../$1/jp -name "*.dat"` euro
|
||||||
|
|
||||||
|
|
||||||
54
build/tests/CustomSystemUpdater/work/tocsu.sh
Executable file
54
build/tests/CustomSystemUpdater/work/tocsu.sh
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#! bash -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - tools
|
||||||
|
# File: tocsu.sh
|
||||||
|
#
|
||||||
|
# Copyright 2007 Nintendo. All rights reserved.
|
||||||
|
#
|
||||||
|
# These coded instructions, statements, and computer programs contain
|
||||||
|
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
# Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
# not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
# in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
#
|
||||||
|
# $Date:: $
|
||||||
|
# $Rev$
|
||||||
|
# $Author$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [ $# -lt 1 ];
|
||||||
|
then
|
||||||
|
echo "input target dir name"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
target=$1_forcsu
|
||||||
|
tmp=$1_tmp
|
||||||
|
mkdir $target
|
||||||
|
cd $target
|
||||||
|
|
||||||
|
cp -rf ../$1/jp .
|
||||||
|
cp -rf ../$1/aus .
|
||||||
|
cp -rf ../$1/usa .
|
||||||
|
cp -rf ../$1/euro .
|
||||||
|
|
||||||
|
mkdir $tmp
|
||||||
|
|
||||||
|
find ../$1 -name "*.out" -exec cp {} $tmp \;
|
||||||
|
|
||||||
|
find $tmp -name "*[ja]-v0*.out" | gawk -F/ '{printf("cp %s jp/%s\n",$0, $2)}' | sed -e 's/\.out$//g' > jp.sh
|
||||||
|
find $tmp -name "*[ua]-v0*.out" | gawk -F/ '{printf("cp %s aus/%s\n",$0, $2)}' | sed -e 's/\.out$//g' > aus.sh
|
||||||
|
find $tmp -name "*[pa]-v0*.out" | gawk -F/ '{printf("cp %s euro/%s\n",$0, $2)}' | sed -e 's/\.out$//g' > euro.sh
|
||||||
|
find $tmp -name "*[ea]-v0*.out" | gawk -F/ '{printf("cp %s usa/%s\n",$0, $2)}' | sed -e 's/\.out$//g' > usa.sh
|
||||||
|
|
||||||
|
./jp.sh
|
||||||
|
./aus.sh
|
||||||
|
./euro.sh
|
||||||
|
./usa.sh
|
||||||
|
|
||||||
|
mv $tmp ../
|
||||||
|
rm -rf *.sh
|
||||||
Loading…
Reference in New Issue
Block a user