阳光灿烂日子 2005-12-29 12:44
制作手機軟件sis文件的程序
Symbian提供了一個工具makesis.exe, 它用來將程式文件( . app、.rsc、.dat…)打包成SIS程式檔(安裝程式), 我们利用此工具將漢化文件及其程式內原有的文件重新再打包一次,便可直接選擇安裝語系(英文或繁體中文),而不用將漢化的文件再覆蓋原來的英文文件等…煩人程序。 在打包前您必須編寫一個名為 .pkg文件,讓makesis 依 .pkg文件內容的相對應訊息執行打包, pkg格式文件大概為modifier前輩所發表的較為完整,將它轉貼供有興趣的朋友參考,
步驟實例:本篇以Expense(消費帳務管理)為例‧
1. 將下載的makesis.exe放置於Windows作業系統System32底下。
C:\Windows\System32\
2.設置一資料夾存放已漢化的文件如( .rsc、. app)及程式內的原文件如(.rsc、. app、dll、.dat…)也需放進來。 D:\Expense
3. 接下來就是要編寫一個 .pkg文件(可用記事本編寫), 因我們只是要將已漢化的程式文件及其原文件重新打包一次,使其可供選擇語系而直接安裝,致我們只使用幾個簡單的語法即可。
;Languages
& EN,TC
;UID is the app's UID #{"Handy Expense","Handy Expense "},(0x100098B3),3,00,0 ,TYPE= SISAPP
;UIQ 2.1 identifier
(0x101F61CE),2,1,0,{"UIQ21PlatformProductID","UIQ21PlatformProductID"}
;Install language dependent data
{"D:\Expense\Expense.rsc""D:\Expense\Expense.r31"} -
"!:\system\apps\Expense\Expense.rsc"
"D:\Expense\Expense.app" -
"!:\system\apps\Expense\Expense.app"
"D:\Expense\Expense.mbm" -
"!:\system\apps\Expense\Expense.mbm"
"D:\Expense\SyncDb.dll" -
"!:\system\apps\Expense\SyncDb.dll"
"D:\Expense\Expense.aif" -
"!:\system\apps\Expense\Expense.aif"
;Make sure the configuration file is removed on uninstall
""-"C:\system\apps\Expense",FILENULL
編寫完後須儲存為 .pkg檔,本例編寫完後儲存於D:\Expense.pkg。
用命令行(windows下執行cmd)進入Dos
鍵入makesis -v D:\Expense.pkg Expense30.sis
如無誤、則會顯示如下畫面:
阳光灿烂日子 2005-12-29 13:10
將打包好的 .SIS程式安裝至手機,安裝螢幕是否多了〝繁體中文(台灣)〞選項列,供您選擇直接安裝的語系,
makesis 參數說明:
- h Show help page
顯示幫助頁。
- v Verbose output to creen
詳細資訊輸出至螢幕。
- s Great stub sis file
建立虛設sis 檔案。
- d Specify a directory path to search
指定目錄路徑搜尋。
- p Specify a password to decrypt private key
指定一個密碼供個人使用。
Modifier作者的 .pkg格式文件
註解行:
;Installation file for Filename application
凡是前面帶有分號“;”的,都是註解行,內容可以省略(刪除)
語言選項:
;Installation file for Filename application
;Languages
&EN,ZH
第一個;Languages是註解行、&是指定選擇語言的代碼。
一個sis程式可能包含多於一個的語言,但在每次安裝時您只能選擇一種語言。
打包的首部:
;UID is the app's UID
#{"DummyLC","BetaLC"},(0x0010D003),1,04,2316,TYPE=SISAPP
第一部分 {"DummyLC","BetaLC"}
是程式名稱。必須和語言列規定的順序語言相同。
第一個DummyLC是英語程式名稱,第二個BetaLC就是中文程式名稱了。
第二部分 (0x0010D003)
是程式的UID。程式的UID數字是程式的唯一辨別,每個程式的UID都不相同, 如果兩個應用程式都使用一樣的UID,安裝後將僅僅可見一個程式在你的項目上。
第三部分 1,04,2316 是程式的版本號。分別主版本號,次版本號,編譯版本號。以上是:版本 1.04build 2316
最後部份 TYPE=SISAPP
是選擇SIS類型。
類型 描述
SISAPP 包含一個應用程式(缺省值)
SISSYSTEM 包含一個分享/系統元件,例如一個DLL或OPX。
SISOPTION 包含增強程式或可選擇的部份,用戶可以選擇是否安裝部份文件。
SISCONFIG 配置一個存在的應用程式或服務。打包時不包含任何新文件,是執行或在安裝時顯示唯一的文件,或增加了一個已存在的文件。
SISPATCH 修正一個存在的文件。
SISUPGRADE 升級一個存在的文件。
支持平台的UID:
;UIQ 2.0 identifier
(0x101F617B),2,0,0,{"UIQ20PlatformProductID","UIQ20PlatformProductID"}
平台的UID (0x101FBB35)
是UIQ 2.0的UID,當然你可以使用詳細一點的,例如只安裝某種設備平台的UID。 版本號 2,0,0
是平台的UID的版本號。分別主版本號,次版本號,編譯版本號。
平台字串符號{"UIQ20PlatformProductID","UIQ20PlatformProductID"}
是平台鑑別字串符號語法。使用“UIQ20PlatformProductID”為UIQ2.0平台。注意必須和語言行規定的次序語言相同。
顯示文本或版權訊息:
;Display new features
"copyright.txt"-"",FILETEXT,TEXTCONTINUE
文件的內容 CopyRight.txt
是在安裝過程顯示。將這個文本文件放在和PKG文件相同的目錄下(如果不是,你必須指定路徑)。
*(這個copyright.txt元件,須UNICODE編碼)
選擇程式安裝的語言文件(數據文件、資源文件):
;Display Release notes
{"Readmet01.txt""Readmet31.txt"}- "",FILETEXT, TEXTEXIT
說明 ""FILETEXT, TEXTCONTINUE
說明:
FILETEXT 規定FILETEXT使用的命令
TEXTCONTINUE 於安裝視窗顯示一個按鈕“繼續”給用戶按下繼續安裝。
TEXTSKIP 於安裝視窗顯示 "是"和"否"的按鈕。如果按"是",程式將繼續安裝。
如果按"否",程式也會繼續安裝, 但是在PKG文件內這個文本以下的元件將不被執行安裝。 TEXTEXIT 於安裝視窗顯示 "是"和"否"的按鈕。 如果按"是",程式將繼續安裝。如果按"否",程式將會退出安裝。
TEXTABORT 於安裝視窗顯示 "是"和"否"的按鈕。 如果按"是",程式將繼續安裝。
如果按"否",程式將會退出安裝,通常針對局部的安裝。
選擇程式安裝的語言文件(數據文件、資源文件):
;Install language dependent data
{"\UIQ\2.0\UIQ20\DummyLC\DummyLC.r01"
"\UIQ\2.0\UIQ20\DummyLC\DummyLC.r02"}-
"!:\system\apps\DummyLC\DummyLC.rsc"
"編譯生成的文件路徑"-"目標設備目錄"
不同的語言文件 DummyLC.r01或 DummyLC.r02,安裝後的語言文件是 DummyLC.rsc。
你的應用程式包含一些語言文件(數據文件、資源文件)。要安裝哪個文件是取決於用戶語言選擇。
例如&EN,ZH,DummyLC.r01就必須是英文的語言文件,DummyLC.r02是中國漢語的語言文件,
用戶選擇漢語,DummyLC.r02安裝後,漢語的語言文件會改成DummyLC.rsc文件了。
目標驅動器!
如果目標驅動器字母被指定為一個感嘆號“!”,用戶可以在安裝時選擇驅動器。
如果你不想用戶選擇目標驅動器,你可指定驅動器位置,例如C。
語言選擇 {...}
{...}內的文件,就是取決於用戶語言選擇。
獨立安裝的語言文件(數據文件、資源文件):
;Files to install
"\UIQ\2.0\UIQ20\DummyLC\DummyLC.app" - "!:\system\apps\DummyLC\DummyLC.app"
"\UIQ\2.0\UIQ20\DummyLC\DummyLC.aif" - "!:\system\apps\DummyLC\DummyLC.aif"
DummyLC.app文件會安裝在目標驅動器內,目標驅動器文件名為 DummyLC.app
選擇性的文件安裝,包括多語言文件(數據文件、資源文件):
;option line
!({"Demo1_eng","Demo1_chs"},{"Demo2_eng","Demo2_chs"})
;Install language dependent
IF option1
{"\uiq\Media files\video\ccc\Demo1_eng.mp4"
"\uiq\Media files\video\ccc\Demo1_chs.mp4"}-
"!:\Media files\video\ccc\Demo1.mp4"
ENDIF
IF option2
{"\uiq\Media files\video\ccc\Demo2_eng.mp4"
"\uiq\Media files\video\ccc\Demo2_chs.mp4"
}-"!:\Media files\video\ccc\Demo2.mp4"
ENDIF
{"Demo1_eng","Demo1_chs"}
是選擇安裝Demo1所顯示的名稱
{"Demo2_eng","Demo2_chs"}
是選擇安裝Demo2所顯示的名稱
IF option1/2
是會按照你所選擇的項目安裝
安裝並同時執行一份文件:
;Install and run an exe
"\UIQ\2.0\UIQ20\DummyLC\RunMe.exe" -"!:\system\apps\DummyLC\RunMe.exe",FILERUN,RUNINSTALL
DummyLC 執行的文件
RunMe.exe 在安裝時自動執行。
FILERUN,RUNINSTALL
FILERUN 檔案執行。
RUNINSTALL 執行安裝文件。
RUNREMOVE 執行移動文件。
RUNBOTH 同時執行安裝和移動文件。
安裝另一個程式:
;Install shared component
@"..\..\UIQ\2.0\Install\newlcdll.sis",(0x1000FE10)
安裝另一個程式 newlcdll.sis。
在用戶安裝的同時安裝另一個程式newlcdll.sis,在用戶移除主檔案時也同時移除此程式。
(0x1000FE10)
是此程式的UID。
移除安裝時所產生的文件:
;Make sure the configuration file is removed on uninstall
""-"C:\system\apps\DummyLC\DummyLC.ini",FILENULL
移除應用程式時,至手機C槽的文件也一併移除。
DummyLC 要移除的資料夾
DummyLC.ini 要移除的文件
FILENULL選擇使用
當升級新版本時,該應用程式的文件將不刪除。
語言代碼參考:
[watermark]EN--- UK English英國英語
SG--- Swiss German瑞士人的德語
FR--- French法語
PO--- Portuguese葡萄牙語
GE--- German德語
TU--- Turkish土耳其語
SP--- Spanish西班牙語
IC--- Icelandic冰島語
IT--- Italian義大利語
RU--- Russian俄語
SW--- Swedish瑞典語
HU--- Hungarian匈牙利語
DA--- Danish丹麥語
DU--- Dutch荷蘭語
NO--- Norwegian挪威語
BL--- Belgian Flemish比利時語
FI--- Finnish芬蘭語
AU--- Australian English澳洲的英語
AM--- US English美國英語
BF--- Belgian French比利時的法語
SF--- Swiss French瑞士的法語
AS--- Austrian German奧地利的德語
IF--- International French國際的法語
NZ--- New Zealand新西蘭語
CS--- Czech捷克語
SK--- Slovak斯洛伐克語
PL--- Polish波蘭語
SL--- Slovenian斯洛法尼亞語
TC--- Taiwan Chinese臺灣漢語
HK--- Hong Kong Chinese香港漢語
ZH--- Prc Chinese中國漢語
JA--- Japanese日語
TH--- Thai泰語
支援平臺的UID參考
Series 60
Series 60 v0.9--- 0x101F6F88
Series 60 v1.0--- 0x101F795F
Series 60 v1.1--- 0x101F8201
Series 60 v1.2--- 0x101F8202
Series 60 v2.0--- 0x101f7960
Nokia 7650--- 0x101F6F87
Nokia 3650--- 0x101F7962
Nokia N-Gage--- 0x101F8A64
Nokia 6600--- 0x101F7963
Siemens SX1--- 0x101F9071
UIQ
UIQ v2.0--- 0x101F617B
UIQ v2.1--- 0x101F61CE
SonyEricsson P80x--- 0x101F80BE
SonyEricsson P90x--- 0x101FBB35
tocqal 2005-12-29 15:11
我倒 竟然轉了我se的帖子 我倒 我倒 不過這個是可以來制作中文uiq sis 的軟件
阳光灿烂日子 2005-12-29 16:01
大家共享嘛,哈哈,因为是个好软件所以分享给大家,,我想一大部分的软件都不是自己做出来的,,兄弟对吧,,说不定你也转过我的贴子呢,,,,哈哈,,,如果是你的原创拿到这里给大家分享只说明它好,对吧,,,,,所以希望不在乱说话,,,,,,,,,