基本介紹
概述
pkg檔案也就是安裝包配置檔案,是製作Symbian OS安裝程式的核心部分。它包含了製作安裝檔案所需要的全部信息,根據這個檔案的內容,sis檔案生成器(安裝程式的擴展名是.sis)製作生成應用程式的安裝程式,也就是.sis檔案。
.sis檔案相當於PC中的setup.exe這樣的程式,通過這個檔案,Symbian OS的智慧型電話可以將應用程式部署到合適的位置,使得我們所編寫的程式可以在手機中正常工作。
為了生成.sis檔案,必須首先編寫.pkg檔案。因此製作Symbian程式安裝檔案的過程,實際上主要就是編寫pkg檔案的過程。pkg檔案像Symbian的資源檔案一樣,有自己完整的語法體系,掌握了pkg檔案的語法,就基本上掌握了製作安裝程式的大部分知識,所以熟悉pkg檔案的結構,對於製作安裝程式來說,是非常重要的。
本文以一個最基本的pkg檔案為例,介紹了一些經常使用的語法,並簡單描述了根據該檔案生成sis檔案的方法。
例子
下面列出一個完整的例子。這個例子比較簡單,但是會經常用到,基本上一些最一般的安裝程式都會是這種格式。
; HelloWorldBasic.pkg ; ;Language - standard language definitions &EN ; standard SIS file header #{"HelloWorldBasic"},(0x10005B91),1,0,0 ;Supports Series 60 v2.0 (0x101F7960), 0, 0, 0, {"Series60ProductID"} ; "..\..\..\epoc32\release\thumb\urel\HelloWorldBasic.APP"-"!:\system\apps\HelloWorldBasic\HelloWorldBasic.app" "..\..\..\epoc32\data\z\system\apps\HelloWorldBasic\HelloWorldBasic.rsc"-"!:\system\apps\HelloWorldBasic\HelloWorldBasic.rsc" |
這個pkg檔案是完整的,只要把檔案目錄適當調整一下,就可以可以使用了。這段例子來自S60 SDK2.1的例子代碼。
下面對這個檔案的各個部分依次做一些解釋說明:
l 以分號開始的行,是注釋。這些注釋主要是給開發人員看的,生成器會忽略它們。
l &EN,表示安裝程式使用的語言。EN表示使用美國英語,具體的代碼的意義可以在SDK中查到,這裡不詳細列出。sis檔案支持多語言安裝,可以在這裡進行設定,比如,&EN,FR,IT,表示是多語言的。對於多語言的安裝程式,有一些語法和規則與其對應,具體的使用方法請查閱SDK。如果你只是希望可以做出一個安裝程式,那么使用&EN就可以,不過需要保證後面出現的字元串部分使用英文字母。
l #{"HelloWorldBasic"},(0x10005B91),1,0,0。這是標準Symbian SIS檔案的頭部。所有的pkg都必須包含這行,而且必須在語言設定的後面。其中HelloWorldBasic是程式的名字,在安裝過程中,可能會使用。ox10005B91,是所開發程式的UID,具體點說就是mmp檔案中UID項的後面那個數字。接下來的數字,依次是主版本號,副版本號,和創建號,這些號碼用於安裝程式的版本控制。
l (0x101F7960), 0, 0, 0, {"Series60ProductID"}。這一句說明了這個程式在安裝之前需要準備的組件,實際上就是要求必須是Series60的平台。如果還需要其它的組件,也需要在這裡說明。0x101F7960,是組件的UID,它其實表示的是S60 2.0的平台,對於S60 2.1的平台,應該是0x101F9115。0,0,0分別是主副版本號和創建號,Series60ProductID則是當需要顯示的時候用於向用戶顯示的說明文字。
l 最後就是實際操作的語句了。第一個雙引號中的是檔案的源位置,它只的是編譯後的檔案在PC中的位置。你可以使用絕對位置,也可以像例子那樣使用相對位置。第二個雙引號中的是檔案在目標機器中的位置。“!:”表示由用戶來選擇安裝在哪個驅動器下面,如果不想由用戶指定,可以使用“C:”,表示安裝在電話的C驅動下面。這兩行語句表示的意思就是將指定位置的檔案複製到電話的指定位置中。還有很豐富的語法,請查看S60的SDK。
對於一般的要求來說,這些語法已經可以達到將程式安裝到電話上的目的了。
SIS檔案
可以使用SDK附帶的Sisar來生成sis檔案。Sisar可以將上述pkg檔案導入到工程中,這樣基本上大部分的設定都完成了,再做一些簡單的Sisar所需要的設定,就可以生成sis檔案了。
另外,也可以使用Sismake這個工具在命令行生成sis檔案。它的語法很簡單,主要是根據pkg檔案的設定來生成sis檔案。
PKG——package縮寫
package包裝。縮寫用於貨運單據上的貨物數量(Quantity)。
三私鑰生成器——IBE體系的核心
私鑰生成器(Private Key Generator,簡稱為PKG),是IBE體系中的核心部分,它的功能作用是:在IBE系統初始化時,產生主密鑰(Master Key)和公開參數(Public params),並公開發布Public Params ;根據用戶的ID,為用戶生成相應的私鑰。 它的實現流程是:
Step 1:系統初始化。PKG生成主密鑰和公開參數,保密主密鑰,而公開參數需要公開。
Step 2:私鑰生成。PKG根據主密鑰和用戶的ID生成用戶的私鑰。
Step 3:加密訊息。用某實體的ID和公開參數計算公鑰並加密訊息。
Step 4:解密訊息。實體通過私鑰解密。
基於IBE下實體間的通信:實體A想和實體B進行安全通信:根據實體B的ID以及PKG發布的公鑰參數,計算出實體B的公鑰,加密信息後傳送給實體B;如果實體B尚未從PKG獲取自己的私鑰,就從PKG獲取自己的私鑰;實體B通過私鑰解密實體A傳送的信息。
在實體從PKG獲取自己私鑰的過程中,PKG需要對實體身份進行鑑別:防止冒充者獲取該實體的私鑰;私鑰只能由相應的實體獲取,否則就沒有秘密可言。
安裝程式
在蘋果系統Mac OS X中,pkg是很常見的安裝包,類似Windows下的安裝程式。
我們在Mac上安裝軟體,常常要通過pkg格式的安裝包進行安裝。它類似Windows下的安裝程式,但是非常統一高效。通常pkg安裝包都有歡迎、安裝信息、許可協定、介紹、目的宗卷、安裝和摘要等項目,有的pkg還有自定義選項或者註冊軟體的選項。
pkg安裝包的製作
Mac下製作安裝包的軟體有XCode自帶的PackageMaker、iceberg和packages。
國產手機作業系統(cos)軟體格式。