Symbian S60系列---PKG文件范例详解

  • 运行maker.bat即可编译位于安装目录下的myapp.pkg,编译成功后将会在目录内产生一个myapp.sis文件,若编译失败(未有sis文件生成),请查看目录内生成的report.txt的错误报告 深红粗体字为注释。注:标识了(非必要)的区段在未设置信息时可以省略不写,其他区段则不可省略。;编译信息开始(文件内注释用 ; 号来标识,如果PKG文件内包含双字节字符(比如中文,日文),则使用文本编辑工具保存时,必须将PKG文件编码保存为UNICODE,否则无法正常编译。)

    ;PKG文件头部信息--开始

    ;语言支持(非必要)
    &EN,ZH

    ;安装程序标题,版本号及SIS文件UID
    #{"Language Name 1","Language Name 2"},(UID),0,0,0,SH,NC,TYPE=SISAPP

    ;开发平台兼容性校验
    (UID),0,0,0,{"Series60ProductID","Series60ProductID"}
    ;PKG文件头部信息--结束

    ;安装文件信息--开始

    ;单语言文件安装
    "PCSourceFile/MyApp.app"-"MobileDestFile/MyApp.app"
    ;多语言文件安装(如果是单语言安装程序,则此段可省略)
    {
    "PCSourceFile/MyApp.rEN"
    "PCSourceFile/MyApp.rZH"
    }-"MobileDestFile/MyApp.rsc"

    ;必要组件校验(非必要)
    (UID),0,0,0,{"Language Name 1","Language Name 2"}

    ;可选附加组件(非必要)
    !({"Language Name 1 for Add-on 1 (20kb)","Language Name 2 for Add-on 1 (20kb)"},{"Language Name 1 for Add-on 2 (20kb)","Language Name 2 for Add-on 2 (20kb)"})

    ;条件判断(非必要,如果可选附加组件部分没有写,那么此部分也不需要写)
    IF option1
    "PCSourceFile/addon/MyPic.gif"-"!:/System/Apps/MyApp/addon/MyPic.gif"
    ENDIF
    ;附加SIS文件(非必要)
    @"PCSourceFile",(0x12345678)
    ;安装文件信息--结束语言支持

    界面语言支持行,如果此行不写则取默认值&EN
    一个SIS文件内可以包含多个界面语言版本,但只能安装一种语言(安装时会自动根据你的系统语言来安装相应的界面语言版本)
    多个语言时用,分隔
    多语言安装程序时不可省略界面语言支持
    ·单一语言:&ZH
    ·多语言:&EN,ZH

    数值说明参数值说明参数值说明参数值说明AF荷兰语(南非)FI芬兰语LS西班牙语(拉丁美洲)SF法语(瑞士)AH埃塞俄比亚语FR法语LT立陶宛语SG德语(瑞士)AM英语(美国)FS瑞典语(芬兰)LV拉脱维亚语SQ阿尔巴尼亚语AR阿拉伯语GA爱尔兰语MK马其顿语SW瑞典语AS奥地利语GD盖尔人语(苏格兰)ML马拉亚拉姆语(印度)SZ意大利语(瑞士)AU英语(澳大利亚)GE德语MN蒙古语TA泰米尔语BE俄语(白俄罗斯)GU古吉拉特语(印度)MO摩尔多瓦语TC中文(台湾)BF法语(比利时)HE希伯来语MR马拉提语(摩剌陀语)TE泰卢固语(印度)BG保加利亚语HI印地语(印度)MS马来语TH泰语BL佛兰德斯语(比利时)HK中文(香港)MY缅甸语TI厄立特里亚语BN孟加拉语HR克罗地亚语NN尼诺斯克语(挪威)TK土库曼语bo藏语HU匈牙利语NO挪威语TL塔加拉语(菲律宾)BP葡萄牙语(巴西)HY亚美尼亚语NZ英语(新西兰)TU土耳其语CA加泰罗尼亚语
    (西班牙)IC冰岛语OS国际西班牙语VI越南语CE英语(加拿大)IE国际英语PL波兰语UK乌克兰语CF法语(加拿大)IF国际法语PO葡萄牙语UR乌尔都语CS捷克语IN印度尼西亚语PA旁遮普语
    (印度、巴基斯坦)ZH中文CT塞浦路斯语IT意大利语RO罗马尼亚语ZU祖鲁语CY威尔士语JA日语RU俄语  DA丹麦语KA格鲁吉亚语(土耳其)SI斯里兰卡语  DU荷兰语KK哈萨克语SK斯洛伐克语  EL希腊语KM柬埔寨语SL斯洛文尼亚语  EN英语(默认值)KN坎拿达语(印度)SO索马里语  ET爱沙尼亚语KO韩语SP西班牙语  FA波斯语LO老挝语SR塞尔维亚语  安装程序信息

    #{"RescoView","RescoView简体汉化版"},(0x11111111),4,10,0为例说明:

    1.#{"RescoView","RescoView简体汉化版"}是安装程序标题
    如果是单一语言的安装程序,则只写一个标题即可
    如果是多语言安装程序,则需要按语言支持区段的语言顺序来依次(就是按&EN,ZH那个部分的顺序)输入各语言版本下的标题,标题名称用“,”分割
    ·单一语言:#{"RescoView简体汉化版"}
    ·多语言:#{"RescoView","RescoView简体汉化版"}

    2.(0x11111111)是SIS安装文件的UID(自定义,SIS安装文件即是安装完成后在C:/system/install/生成的相应SIS文件)

    3.4,10,0是程序安装时显示的版本号,4是主版本号,10是次版本号,0是build版本号;4,10,0在安装时显示的就是4.10
    4.SH,NC是SIS文件选项(此处为非必要参数)

    参数值(缩写)参数值(全称)说明SHSHUTDOWNAPPS
    关闭应用程序NCNOCOMPRESS
    不压缩
    5.TYPE=SISAPP是SIS文件的类型(如果未指定,则默认为TYPE=SISAPP

    参数值(缩写)参数值(全称)说明SASISAPP
    标准的安装程序(默认值)SYSISSYSTEM
    此安装程序类型包含系统库或共享库文件注册(DLL或OPX文件),这些库文件在主程序卸载时会一并卸载SOSISOPTION
    此安装程序类型安装时有可选组件,选择安装的组件在主程序卸载时会一并卸载SCSISCONFIG
    此安装程序类型可以配置已存在的程序或服务,此类型打包时不应该包含任何新文件。只能用来配置安装或运行过程中的文件显示及增加新组件等等操作。在程序管理列表中不会显示配置程序的卸载,需要手动卸载SPSISPATCH
    此安装程序类型会修复已存在的的程序,在程序管理列表中不会显示修复程序的卸载,需要手动卸载SUSISUPGRADE
    此安装程序类型可以升级已存在的程序,但在程序管理列表中不会显示升级程序的卸载,需要用户手动删除文件或重新关联程序才能撤销升级兼容性

    此区段用来限制程序是否可以被正确安装在目标机型上(比如防止NOKIA Series60的软件安装在UIQ的机型上,避免造成程序错误)
    (0x101F6F88),0,0,0,{"Series60ProductID","Series60ProductID"}为例说明:
    1.(0x101F6F88)开发平台SDK的UID,也可以用具体机型的UID来限制
    下表给出几个常见机型的平台UID及机型UID(由于能力问题,UID资料可能存在错误或不完全,请见谅)
    以下对Symbian OS几个版本以及Series60的性能做一下概述
    1.屏幕显示象素:176×2082.支持Java (J2ME/MIDP 1.0)及C++开发3.便于简单短周期的开发程序4.提供多样性并强大的应用程序开发框架5.Series60 v2.x版本提供了对Java (J2ME/MIDP 2.0)及界面主题模式的支持6.Symbian OS8.0提供了对3G网络的支持
    SDK版本UIDSeries60 SDK 0.9
    (Symbian 6.1)Series60 SDK 2.0
    (Symbian 7.0)Series60 SDK 2.0
    (Symbian 8.0)手机型号UID手机型号UID手机型号UIDSeries60 0.9 0x101F6F88Nokia 76500x101F6F87Nokia 66000x101F7963Nokia 66300x101F7964Series60 1.0 0x101F795FNokia 3650/3660/36200x101F7962Nokia 66200x1020216B Series60 1.1 0x101F8201Nokia N-Gage0x101F8A64Nokia 76100x101FD5DBSeries60 1.2 0x101F8202Nokia N-Gage QD   Series60 2.00x101F7960Siemens SX10x101F9071Series60 2.1 0x101F9115Sendo-X0x101FA031Series60 2.2 0x10200BABBenQ P300x101FD279UIQ 2.0 0x101F617B UIQ 2.1 0x101F61CE
    2.2,0,0是平台的版本号,2是主版本号,0是次版本号,0是build版本号,2,0,0显示的版本就是2.0
    注:此处的版本号要根据UID来作相应改动。
    例:如果UID是0x101F6F88(Series60 0.9),则主版本号则需要写成0,次版本号也写0即可

    提示:
    ·如果只是希望安装在某一特定机型上(比如N-Gage),则UID处写N-Gage的UID,而平台版本处写 0 , 0 , 0即可
    ·如果希望安装程序能在多个机型上安装(向老版本机型兼容),则UID处写最老那个机型的平台版本的UID,平台版本号处参照上边第 2条写
    例:假使希望可以安装在N7650,N3650,N-Gage,N-Gage QD,N6600上,则写为 ( 0x101F6F88 ), 0 , 0 , 0
    3. {" Series60ProductID "," Series60ProductID "}是平台类型校验字符串,用来目标机器的平台类型(UIQ或Series或其他类型)
    平台类型字符串Nokia Series60 Series60ProductIDUIQUIQ20PlatformProductID
    如果是单一语言的安装程序,则只写一个字符串即可
    如果是多语言安装程序,则需要按语言支持区段的语言顺序来依次(就是按 & EN , ZH那个部分的顺序)输入各语言版本下的校验字符串,字符串间用“ ,”分割
    ·单一语言: {" Series60ProductID "}
    ·多语言: {" Series60ProductID "," Series60ProductID "}


    由于WDA上大家汉化的软件常见的只有三种类型(其他包括的机型我没有写,因为论坛上几乎没人用)
    Series60 0.9 & 1.x:包括N7650,N3650,N-GAGE,N-GAGE QD
    Series60 2.x:包括N6600和N7610
    Series60 0.9 & 1.x & Series60 2.x:包括以上所有机型
    所以如果上边的暂时不太懂的话,那就照以下两种类型情况下的例子改写即可
    Series60 0.9 & 1.x: ( 0x101F6F88 ), 0 , 0 , 0 ,{" Series60ProductID "," Series60ProductID "}
    Series60 2.x: ( 0x101F7960 ), 2 , 0 , 0 ,{" Series60ProductID "," Series60ProductID "}
    Series60 0.9 & 1.x & Series60 2.x: ( 0x101F6F88 ), 0 , 0 , 0 ,{" Series60ProductID "," Series60ProductID "} 文件的安装

    格式为 " PCSourceFile(PC端源文件) "-" MobileDestFile(手机端目标文件) ", 文件类型 , 操作参数1 , 操作参数2
    " D:/sis/files/MyApp.app "-" !:/System/Apps/MyApp/MyApp.app ", 文件类型 , 操作参数1 , 操作参数2为例
    1. PC端源文件可以用相对路径(相对于pkg文件所在路径)也可以用绝对路径
    例:假使你的PC端pkg文件在 D:/sis,需要打包的PC端文件都在 D:/sis/files
    相对路径: files/MyApp.app
    绝对路径: D:/sis/files/MyApp.app

    2. 手机端目标文件就是指定文件将被安装在手机的哪个目录中。
    !代表目标盘符,如果有文件必须安在手机的 C盘的话,改为 C即可
    例1: !:/System/Apps/MyApp/MyApp.app
    例2: C:/System/Apps/MyApp/MyApp.app
    3. 文件类型 , 操作参数1 , 操作参数2,如果 文件类型未指定(则默认为 FILE)时可以省略 操作参数;如果 操作参数1未指定时(则默认为 RUNINSTALL操作参数2可以省略
    例1: " D:/sis/files/MyApp.app "-" !:/System/Apps/MyApp/MyApp.app ", 文件类型 , 操作参数1 , 操作参数2
    例2: " D:/sis/files/MyApp.app "-" !:/System/Apps/MyApp/MyApp.app ", 文件类型 , 操作参数1
    例3: " D:/sis/files/MyApp.app "-" !:/System/Apps/MyApp/MyApp.app ", 文件类型
    例4: " D:/sis/files/MyApp.app "-" !:/System/Apps/MyApp/MyApp.app "

    参数值(缩写)参数值(全称)说明文件类型FFFILE标准程序文件(默认值)FTFILETEXT文本文件,如果指定了文件为文本类型,则在安装过程中会显示一个窗口来显示文本信息。
    如果文本信息窗口的类型不指定,则默认为 TEXTCONTINUE
    如果指定了文件为文本文件,则手机端目标路径处可以选择留空
    (如果你希望该文本文件安装到手机上的话则需填写路径)
    例1: " D:/sis/files/Readme.txt"-" !:/System/Apps/MyApp/Readme.txt", FT例2: " D:/sis/files/Readme.txt"-"", FTFNFILENULL卸载指定文件,该类型不需要 源文件路径参数
    实例(安装时卸载指定路径下的 setting.ini文件:
    ""-" !:/System/Apps/MyApp/setting.ini", FNFMFILEMIME指定安装文件的MIME类型,我们一般用不到,不做说明FRFILERUN指定是运行文件。文件可以是exe文件,app文件或文本文档
    如果文件被指定了非 FILERUN的类型,则可根据需要省略 操作参数1操作参数2文本信息窗口类型TCTEXTCONTINUE
    只显示一个确认按钮,用户按下后会继续程序的安装TSTEXTSKIP
    显示一个确认按钮和一个取消按钮,用户按下确认按钮会继续安装
    按下取消也会继续完成安装程序(但pkg文件内此文件行以下指定的安装文件将不会被安装)TETEXTEXIT
    显示一个确认按钮和一个退出按钮,用户按下确认按钮会继续安装
    按下退出按钮则会退出安装程序(已安装的文件会自动删除)TATEXTABORT
    显示一个确认按钮和一个退出按钮,用户按下确认按钮会继续安装
    按下退出按钮则会退出安装程序(之前已安装的文件不会被删除)操作参数1RIRUNINSTALL
    指定文件在安装时运行RRRUNREMOVE
    指定文件在卸载时被运行RBRUNBOTH
    指定文件在安装时运行,卸载时也运行操作参数2RSRUNSENDEND
    运行指定文件,自动运行指定文件,运行完后自动关闭文件来完成安装程序(只有指定为 操作参数1RUNINSTALL参数时才能使用此参数)RWRUNWAITEND
    运行指定文件,等待用户按键确认安装程序的完成

    4. 安装文件的多语言形式手机端目标文件不变, PC端源文件按照如下格式书写即可
    PC端源文件的顺序要按照语言顺序来依次(就是按 & EN , ZH那个部分的顺序)书写( PC端源文件可用空格或换行分隔),字符串间用“ ,”分割
    书写格式: {
    " D:/sis/files/MyApp.rEN "
    " D:/sis/files/MyApp.rZH "
    }-" !:/System/Apps/MyApp/MyApp.rsc " 必要组件校验

    此段是校验指定的程序(每个程序在安装时都会在手机端C:/System/install下生成一个同安装程序文件名的SIS文件,也就是校验这个SIS文件是否存在)是否存在,如果不存在,则pkg文件内,此行以下的安装文件将不会被安装

    例: ( 0x123456789 ), 1 , 1 , 0 ,{" C Library "," C语言运行库 "}
    1. 0x123456789是指定的SIS文件的UID(用SeleQ查看APP文件属性显示的 UID1;用SmartFileMan显示的 UID1
    2. 1 , 1 , 0是用于校验到SIS文件不存在时,错误提示中显示的版本号(假设C Library的SIS文件不存在,则会提示“ C Library 1.1不存在,请安装安装后再安装本程序”)。此版本号不限制文件的校验。
    3. {" C Library "," C语言运行库 "}是用于校验到SIS文件不存在时,错误提示中显示的组件标题。
    如果是多语言安装程序,则需要按语言支持区段的语言顺序来依次(就是按 & EN , ZH那个部分的顺序)输入各语言版本下的标题,标题名称用“ ,”分割。 可选附加组件
    如果包含可选附加组件,则SIS文件类型需要相应变成 TYPE= SISOPTION
    单语言: !({" Add-on 1 (20kb) "},{" Add-on 2 (20kb) "})

    Add-on 1 (20kb)是第1个附加组件的显示标题, Add-on 2 (20kb)是第2个附加组件的显示标题;依此类推可设置多个附加组件

    多语言: !({" Add-on 1 (20kb) "," 附件1 (20kb) "},{" Add-on 2 (20kb) "," 附件2 (20kb) "})
    Add-on 1 (20kb)第1个附加组件第1种语言的显示标题, 附件1 (20kb)第1个附加组件第2种语言的显示标题
    Add-on 2 (20kb)第2个附加组件第2种语言的显示标题, 附件2 (20kb)第2个附加组件第2种语言的显示标题
    依此类推可设置多个附加组件;多语言安装程序需要按语言支持区段的语言顺序来依次(就是按 & EN , ZH那个部分的顺序)输入各语言版本下的标题,标题名称用“ ,”分割。 条件判断

    如果安装程序内包含可选附加组件,则需要此区段的信息,反之则省略

    !({" Add-on 1 (20kb) "},{" Add-on 2 (20kb) "})

    IF option 1
    " PCSourceFile/addon/MyPic1.gif "-" !:/System/Apps/MyApp/addon/MyPic1.gif "
    ENDIF
    IF option 2
    " PCSourceFile/addon/MyPic2.gif "-" !:/System/Apps/MyApp/addon/MyPic2.gif "
    ENDIF

    IF option 1ENDIF之间的信息是选择 Add-on 1 (20kb)后的安装结果
    IF option 2ENDIF之间的信息是选择 Add-on 2 (20kb)后的安装结果
    依此类推,有几个附件就按照数字的顺序写几个 IF optionAdd-on 1Add-on 2Add-on 3相应的应该有 IF option 1IF option 2IF option 3附加SIS文件

    在SIS安装程序中附加的SIS安装程序,可以用于条件判断语句之内(如果在条件判断语句之外则会被自动安装)
    例: @" D:/sis/files/AutoStart.sis ",( 0x12345678 )
    D:/sis/files/AutoStart.sisPC端SIS源文件的位置
    0x12345678是该SIS文件的UID(用SeleQ查看APP文件属性显示的 UID1;用SmartFileMan显示的 UID1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值