{progz}

SIS telepítőcsomag a .pkg fájlból, és ami a 3rd Editionnel megváltozik

Akinek van Symbian telefonja, látott már SIS fájlt: ez a telepítőcsomag, amely egyben tartalmazza a program futtatható fájlját, az erőforrásokat, az ikonokat és a telepítési szabályokat. A SIS-t a makesis eszköz készíti el egy szöveges leíróból, a .pkg fájlból. Ebben a jegyzetben végigmegyek egy S60 2nd Editionre szánt .pkg-n, és összeszedem, mi változik a most érkező 3rd Edition (Symbian OS 9) készülékeken.

Egy teljes .pkg 2nd Editionre

; progzdemo.pkg – S60 2nd Edition
&EN,HU

; Név (nyelvenként), UID, verzió: 1.2.0
#{"Progz Demo","Progz Demo"},(0x10005B91),1,2,0

; Csak S60 2nd Editionre
(0x101F7960), 0, 0, 0, {"Series60ProductID","Series60ProductID"}

; Futtatható és erőforrások
"\epoc32\release\armi\urel\progzdemo.app"-"!:\system\apps\progzdemo\progzdemo.app"
{
"\epoc32\data\z\system\apps\progzdemo\progzdemo.r01"
"\epoc32\data\z\system\apps\progzdemo\progzdemo.r17"
}-"!:\system\apps\progzdemo\progzdemo.rsc"
"\epoc32\data\z\system\apps\progzdemo\progzdemo_caption.rsc"-"!:\system\apps\progzdemo\progzdemo_caption.rsc"
"\epoc32\data\z\system\apps\progzdemo\progzdemo.aif"-"!:\system\apps\progzdemo\progzdemo.aif"

Soronként:

  • &EN,HU – a támogatott nyelvek. Ahány nyelv, annyi szöveg kell minden kapcsos zárójeles listába.
  • #{...},(UID),fő,al,build – a csomag neve és azonosítója. A UID egyezzen meg a program harmadik UID-jával, különben a frissítés nem írja felül a régi verziót, hanem mellé telepíti.
  • A zárójeles platformsor jelzi, hogy melyik telefoncsaládra készült. A 2nd Edition azonosítója 0x101F7960.
  • !: – a célmeghajtót a felhasználó választja ki (C: vagy a memóriakártya, E:).

A csomag elkészítése: makesis progzdemo.pkg progzdemo.sis. Én egy kis .bat fájlba tettem a buildet és a csomagolást, mert kézzel gépelve biztosan kimarad valami.

Mi változik a 3rd Editionnel?

Az S60 3rd Edition a Symbian OS 9-re épül, és a platformbiztonság miatt sok minden átalakul. A régi programok újrafordítás nélkül nem futnak rajta, és a csomagolás is más:

; progzdemo_3rd.pkg – S60 3rd Edition
&EN,HU
#{"Progz Demo","Progz Demo"},(0xE0005B91),1,2,0

%{"Progz","Progz"}
:"Progz"

[0x101F7961], 0, 0, 0, {"S60ProductID","S60ProductID"}

"\epoc32\release\gcce\urel\progzdemo.exe"-"!:\sys\bin\progzdemo.exe"
{
"\epoc32\data\z\resource\apps\progzdemo.r01"
"\epoc32\data\z\resource\apps\progzdemo.r17"
}-"!:\resource\apps\progzdemo.rsc"
"\epoc32\data\z\private\10003a3f\apps\progzdemo_reg.rsc"-"!:\private\10003a3f\import\apps\progzdemo_reg.rsc"

A legfontosabb különbségek:

  1. Az alkalmazás EXE lett. Nincs többé .app és .aif. A programot egy regisztrációs erőforrás (_reg.rsc) jelenti be az indítónak.
  2. Kötött könyvtárak. Futtatható fájl csak a \sys\bin-be kerülhet, a program saját adatai pedig a \private\<SID>\ alá. Más program ide nem lát be.
  3. Kötelező vendor sorok. A %{...} a megjelenített gyártónév, a :"..." az egyedi, nem lokalizált gyártónév.
  4. Aláírás. A makesis kimenetét a signsis aláírja. Fejlesztéshez saját (self-signed) tanúsítvány is elég, de akkor csak a felhasználó által jóváhagyható jogosultságokat (például hálózat, felhasználói adatok) kérheted. A teszteléshez a 0xE0000000–0xEFFFFFFF UID-tartomány szabadon használható.

A tanulság a buildről

A régi telefonokon a hibás .pkg legfeljebb furcsa telepítést okozott, az új rendszer viszont egyszerűen elutasítja a csomagot. Érdemes már most két .pkg-t tartani, és a build szkriptbe beírni, hogy mindkét SIS elkészüljön. Így nem a kiadás napján derül ki, hogy a 3rd Edition csomag hiányos.