打包需要注意的信息:
1、软件的UID1也就是系统UID
2、软件的版本号~这个弄错了问题到不太严重...
3、被打包的文件释放在手机端的路径~~
拿太阳斑竹汉化的Flashlite做个例子(可以先拿来做个练习):
下载地址http://bbs..com.cn/viewthread.php?tid=996912
UID1、版本号和释放路径都可以在解包时用Unmakesis看到~如图000:

事例上方的UID1即需要的系统UID
事例下方标记的则是释放文件的位置...
SIS Xplode这个软件也可以看到UID1和版本号~如图001:

记下着3个必要的信息后就可以编写pkg文件了(pkg文件是打包方法的描述文件)可以直接用记事本编写~不过编码为UNICODE
&ZH
#{"Flashlite简体中文汉化版"},(0x101F70E9),1,10,0,TYPE=SISAPP
(0x101F6F88), 0, 0, 0, {"Series60ProductID"}
"C:\System\help\SAFlash.hlp"-"!:\System\help\SAFlash.hlp"
"C:\System\apps\SAFlash\SAFlash.aif"-"!:\System\apps\SAFlash\SAFlash.aif"
"C:\System\apps\SAFlash\SAFlash.app"-"!:\System\apps\SAFlash\SAFlash.app"
"C:\System\apps\SAFlash\SAFlash.rsc"-"!:\System\apps\SAFlash\SAFlash.rsc"
"C:\System\libs\Flash.dll"-"!:\System\libs\Flash.dll"
"C:\System\libs\FlashSndDec.dll"-"!:\System\libs\FlashSndDec.dll"
"C:\System\recogs\recswf.mdl"-"!:\System\recogs\recswf.mdl"
"C:\System\apps\SAFlash\SAFlash.ini"-"!:\System\apps\SAFlash\SAFlash.ini"
"C:\System\apps\SAFlash\SAFlash.mbm"-"!:\System\apps\SAFlash\SAFlash.mbm"
其中第一行为支持语言~ZH为简体中文~其他语言版本可以查看makesis的帮助
第二行为安装软件的信息
Flashlite简体中文汉化版 为软件名称
0xF79D8B8 为系统UID(就是上面要记的那个)
1,10,0 为版本号(也是上面记的那个) 1,10,0安装后就是1.10版
TYPE=SISAPP 为SIS文件的类型
第三行为开发平台的兼容性信息
主要是防止错误的软件安装在错误的系统上...
0x101F6F88是平台的UID,也可以用具体机型的UID来限制(限制后则不能用于其他机型),介绍一些版本平台和机型的UID:
Series60 0.9 0x101F6F88
Series60 1.0 0x101F795F
Series60 1.1 0x101F8201
Series60 1.2 0x101F8202
Series60 2.0 0x101F7960
Series60 2.1 0x101F9115
Series60 2.2 0x10200BAB
Series60 0.9(Symbian 6.1):0x101F4FC3
Series60 1.x(Symbian 6.1):0x101F4FC3 0x101F8C19(NG) 0x101FB2B1(QD)
Series60 2.x(Symbian 7.0s):0x101FB3DD
Series60 2.x(Symbian 8.0): 0x101FBB55
Series90 0x101FBE05
UIQ2.0 0x101F617B
0, 0, 0是平台版本号 主版本号,次版本号,build版本号
如UID是0x101F6F88(Series60 0.9)则写成0,0,0
如UID是0x101F795F(Series60 1.0)则写成1,0,0
如UID是0x101F617B(UIQ 2.0)则写成2,0,0
Series60ProductID为界面校验字符串,用限制软件安装目标手机的界面(UIQ或Series60等)
S60 Series60ProductID
UIQ UIQ20PlatformProductID
安装路径
pkg文件的后面部分就是安装路径了,打包前的文件(PC)和要安装到手机上的路径都用双引号来标记~用“-”连接。手机端的盘符可以是手机上相应的盘符(比如C:\或E:\如果还有其他盘符也可以用其他的...),而用感叹号!来替代可以让在安装过程中选择安装位置...
打包文件路径没有太多的限制(如果更改了那pkg文件也要更改)~释放路径则是先前用Unmakesis记下的路径~如果错了可能导致软件不能正常运行~~
打包
下面可以打包了~~
准备好makesis打包工具~进入dos下(cmd)~先试一下makesis是否能正常运行,输入makesis回车如果看到makesis的相关信息表明可以正常使用~如果找不到文件先确认makesis的路径~最好放在C下,或者在环境变量里加上新的路径~
打包(图002):输入makesis Flashlite.pkg回车~提示打包完成~默认目录(C:\)下出现打包后的sis文件就成功了:)

添加安装过程中的提示信息
如果想在安装过程中显示一些信息,可以在pkg文件需要的部分加上:
"txt文本文件名"-"目标文本文件(如果填写将被安装)",参数1,参数2
比如:
".txt"-"",ft,ta
.txt为载有提示信息内容的文本文件~~可以为任意名称,但必须为UNICODE编码~
其他类型文件安装过程中的可选操作:
格式:
"源文件"-"目标目录文件",文件类型,参数1,参数2
如:
"C:\System\apps\SAFlash\SAFlash.mbm"-"!:\System\apps\SAFlash\SAFlash.mbm",ff,tc
后面的类型和参数:
文件类型参数:
缩写 全称
ff File 标准文件(默认)
ft FileText text文件的使用命令,安装过程中会显示一个提示窗口显示文本信息~参数2可以指定窗口类型~默认为tc
fn FileNull 删除目标设备(手机)上指定路径的文件~比如:
""-"!:\System\apps\SAFlash\SAFlash.mbm",fn
前面的源文件路径不必写(因为你是要删除么...)
fm FileMime 指定为mime类型
fr 运行指定的文件~比如*.app或*.exe
提示信息窗口类型参数:
tc TextContinue 在提示文本窗口中只会有一个“继续”按钮~
ts TextSkip 在提示文本窗口中提供"是"和"否"的按钮~~按"是"程序将继续安装;按"否"程序也会继续安装,但是在PKG文件内这个行以下的内容将不被执行~
te TextExit 在提示文本窗口中提供"是"和"否"的按钮~按"是"程序将继续安装;按"否"安装将会退出~
ta TextAbort 在提示文本窗口中提供"是"和"否"的按钮~按"是"程序将继续安装;按"否"安装将会中断~可以看出这个参数针对局部可选组件的安装~
操作参数:
ri RunInstall 指定某文件在安装时运行~
rb RunBoth 指定某文件在安装和移除时运行~
rr RunRemove 指定某文件在移除时运行~
rs RunSendend 自动运行指定文件,运行结束后继续安装操作(前面需配合参数ri参数使用)~
rw RunWaitend 运行指定文件并等待用户按键继续~
多语言支持打包:
多语言版本打包时pkg文件需要做些修改(绿色部分为注释说明):
假如做了两个语言版本的SAFlash.rsc,我们把英文版本的命名为SAFlash.rEN,把中文版本的命名为SAFlsh.rZH
&EN,ZH(支持英文和中文两种语言版本)
!(可选)({"Flashlite"},{"Flashlite简体中文汉化版"}),(0x101F70E9),1,10,0,TYPE=SISOPTION(TYPE类型看后面的说明)
(0x101F6F88), 0, 0, 0, {"Series60ProductID","Series60ProductID"}
".txt"-"",ft,ta
IF option1
"C:\System\apps\SAFlash\SAFlash.rEN"-"!:\system\apps\SAFlash\SAFlash.rsc"
ENDIF
IF option2
"C:\System\apps\SAFlash\SAFlash.rZH"-"!:\system\apps\SAFlash\SAFlash.rsc"
ENDIF(添加的判断可选项其循序要和文件头的&EN,ZH循序相同)
"C:\System\help\SAFlash.hlp"-"!:\System\help\SAFlash.hlp"
"C:\System\apps\SAFlash\SAFlash.aif"-"!:\System\apps\SAFlash\SAFlash.aif"
"C:\System\apps\SAFlash\SAFlash.app"-"!:\System\apps\SAFlash\SAFlash.app"
"C:\System\apps\SAFlash\SAFlash.rsc"-"!:\System\apps\SAFlash\SAFlash.rsc"(因为前面添加了可选项安装~这行要去掉了~)
"C:\System\libs\Flash.dll"-"!:\System\libs\Flash.dll"
"C:\System\libs\FlashSndDec.dll"-"!:\System\libs\FlashSndDec.dll"
"C:\System\recogs\recswf.mdl"-"!:\System\recogs\recswf.mdl"
"C:\System\apps\SAFlash\SAFlash.ini"-"!:\System\apps\SAFlash\SAFlash.ini"
"C:\System\apps\SAFlash\SAFlash.mbm"-"!:\System\apps\SAFlash\SAFlash.mbm"
TYPE类型说明:
缩写 全称
SA SISAPP 包含一个应用程序,标准类型(默认)
SY SISSYSTEM 包含一个共享/系统组件~例如一个DLL或OPX文件,并且记录在移除信息中~~软件卸载时会一起删除掉~
SO SISOPTION 包含增强程序或可选择组件,用户可以选择是否安装可选组件~并记录在移除信息中~卸载时一起删除~
SC SISCONFIG 配置一个存在的应用程序或服务~打包时不包含任何新文件,运行或在安装时显示唯一的文件或增加了一个已存在的组件~~安装后程序管理中不显示任何信息~要手动删除~
SP SISPATCH 修正一个存在的组件(补丁)~安装后程序管理中不显示任何信息~要手动删除~
SU SISUPGRADE 升级一个存在的组件~安装后程序管理中不显示任何信息~要手动删除~
可选组件的安装:
多选1(拿2选1做例~语法和多语言选择基本一样~~其实多语言支持就是可选组件):
TYPE=SISOPTION
...
!({"Add-on 1(20k)"},{"Add-on 2(20k)"})
Add-on 1(20k)为可选组件1 Add-on2为可选组件2~当然还可以增加组件数量~
实例:
前略...
!({"Flashlite"},{"Flashlite简体中文汉化版"}}
多语言版本的可选组件:
双语言版附件:
!({"Add on 1(20k)","组件 1(20k)"},{"Add on 2(20k)","组件 2(20k)"})
实例(英文/中文可选版本):
前略...
!({"PATCH 1","补丁1"},{"PATCH2","补丁2"}) 其可选项顺序要和前面的语言选择顺序相同~
条件判断:
双组件条件判断:
!({"Add-on 1(20k)"},{"Add-on 2(20k)"})
IF OPTION1
"源文件1"-"目标文件1"
ENDIF
IF OPTION2
"源文件2"-"目标文件2"
ENDIF
选择第一项回安装第一个组件,选择第二项会安装第二个组件
实例:
!({"Flashlite"},{"Flashlite简体中文汉化版"}}
IF option1
"C:\System\apps\SAFlash\SAFlash.rEN"-"!:\system\apps\SAFlash\SAFlash.rsc"(安装过程中将改扩展名rEN为rsc)
ENDIF
IF option2
"C:\System\apps\SAFlash\SAFlash.rZH"-"!:\system\apps\SAFlash\SAFlash.rsc"(安装过程中将改扩展名rZH为rsc)
ENDIF
系统自选择语言包:
实例:
{"C:\System\apps\SAFlash\SAFlash.rEN""C:\System\apps\SAFlash\SAFlash.rZH"}-"!:\System\apps\SAFlash\SAFlash.rsc"
依然是自动改扩展名,但是这次没有添加可选项,当然前边的&EN,ZH还是要写的~系统会挑选合适语言包来安装(譬如英文机会安装英文包)~
附加其他sis文件:
格式:
@"源文件",(此程序的UID)
实例:
@"C:\System\apps\PATCH.sis",(0xF79D9E9)
这里的UID既在手机上用SeleQ等软件查看app文件属性时的UID1
组件安装校验:
校验是指安装前核对目标设备是否安装了相关的应用程序~如果没有安装则会提示先安装相关应用程序,而校对代码后的部分将不会被执行~~
格式:
(UID码),1,0,0,(提示版本号){"安装前需要的前提应用程序","多语言版本的相同提示"}
实例:
安装Flashlitev1.10补丁PATCH时~
(0xF79D8B8),1,10,0{"Flashlite","Flashlite简体中文汉化版"}
如果校验结果为未安装Flashlite 1.10时则会提示”Flashlite 1.10不存在,请安装后再安装本程序“
如果安装的是Flashlite简体中文汉化版则显示后面的软件名~
[Makesis]
makesis.rar
[SISXplode]
SISXplode.rar
[UnMakesis]
UnMakeSIS.rar
pkg文件头语言支持表
AF - Afrikaans 南非荷兰语
SQ - Albanian 阿尔巴尼亚语
AH - Amharic 阿姆哈拉语
AR - Arabic 阿拉伯语
HY - Armenian 爱美尼亚语
AU - Australian 澳大利亚语
AS - Austrian 奥地利语
BE - Belarussian 白俄罗斯语
BN - Bengali 孟加拉语
BG - Bulgarian 保加利亚语
MY - Burmese 缅甸语
CA - Catalan 加泰罗尼亚语
TC - Taiwan Chinese 台湾
HK - Hong Kong Chinese香港
ZH - PRC Chinese 汉语
HR - Croatian 克罗地亚语
CS - Czech 捷克斯洛伐克语
DA - Danish 丹麦语
DU - Dutch 荷兰语
EN - English 英语
AM - American English 美式英语
CE - Canadian English 加拿大英语
IE - International English 国际英语
SF - South African English 南非英语
ET - Estonian 爱沙尼亚语
FA - Farsi 波斯语
FI - Finnish 芬兰语
BL - Belgian Flemish 比利时弗兰得语
FR - French 法语
BF - Belgian French 比利时法语
CF - Canadian French 加拿大法语
IF - International French 国际法语
SF - Swiss French 瑞士法语
GD - Scots Gaelic 苏格兰盖尔语
KA - Georgian 乔治亚语
GE - German 德语
SG - Swiss German 瑞士德语
EL - Greek 希腊语
GU - Gujarati
HE - Hebrew 希伯来语
HI - Hindi 北印度语
HU - Hungarian 匈牙利语
IC - Icelandic 冰岛语
IN - Indonesian 印度尼西亚语
GA - Irish 爱尔兰语
IT - Italian 意大利语
SZ - Swiss Italian 瑞士意大利语
JA - Japanese 日语
KN - Kannada 埃纳德语
KK - Kazakh 哈萨克语
KM - Khmer 柬埔寨语
KO - Korean 韩语
LO - Laothian
LV - Latvian 拉脱维亚语
LT - Lithuanian 立陶宛语
MK - Macedonian 马其顿语
MS - Malay 马来西亚语
ML - Malayalam 马拉雅拉姆语
MR - Marathi 马拉地语
MO - Moldovian 摩尔多瓦语
MN - Mongolian 蒙古语
NZ - New Zealand 新西兰语
NO - Norwegian 挪威语
NN - Norwegian Nynorsk 挪威尼诺斯克语
PL - Polish 波兰语
PO - Portuguese 葡萄牙语
BP - Brazilian Portuguese 巴西葡萄牙语
PA - Punjabi 旁遮普语
RO - Romanian 罗马尼亚语
RU - Russian 俄语
SR - Serbian 塞尔维亚语
SI - Sinhalese 僧伽罗语
SK - Slovak 斯洛伐克语
SL - Slovenian 斯洛文尼亚语
SO - Somali 索马里语
SP - Spanish 西班牙语
OS - International Spanish 国际西班牙语
LS - Latin American Spanish西班牙拉丁语
SW - Swahili 斯瓦希里语
SW - Swedish 瑞典语
FS - Finland Swedish 芬兰瑞典语
TL - Tagalog 塔加璐语
TA - Tamil 泰米尔语
TE - Telugu 泰卢固语
TH - Thai 泰国语
BO - Tibetan 西藏语
TI - Tigrinya 提格里亚语
TU - Turkish 土耳其语
CT - Cyprus Turkish 塞浦路斯土耳其语
TK - Turkmen 土库曼语
UK - Ukrainian 乌克兰语
UR - Urdu 乌尔都语
VI - Vietnamese 越南语
CY - Welsh 威尔士语
ZU - Zulu 祖鲁语