Symbian Installation file

anthropologistbarrenSoftware and s/w Development

Jul 4, 2012 (5 years and 3 months ago)

309 views










How to create a Symbian
Installation file
Ver 1.0
2

Overview
In this tutorial I describe the creation of SIS files, where SIS is the format used to ship compressed
application into Symbian phones and to install it.
Such file is delivered via OTA (Over the air), via Bluetooth, or via USB exploiting Nokia PCSuite
application. The last choice is compatible only with Nokia Series60 phones.
Once the file is on the phone, the installation can proceed simply by clicking on it; the final result is
a new icon representing the application in the application grid of the phone.
I take just a moment to outline that a “Symbian phone” is a phone based on Symbian OS; while a
“Series60 phone” is a phone with Symbian OS and Series60 UI. As a consequence Symbian phone
can use an alternative user interface: UIQ. SonyEricsson P800, P900 and P910 are UIQ based; the
main feature is the pen-based user interface.
The installation procedure I describe here is Symbian specific; no difference whether the
application nis Series60 or UIQ.
Development Environment specification
In order to create a SIS file Makesis tool provided into Symbian SDK is used.
Symbian SDK from version 0.9 to version 2.0 Feature Pack 3 share the same Makesis tool; from
SDK version 3.0 onward major changes occurred in all the tool chain, as a consequence the SIS
files are no more compatible.
Considering that version 0.9, 1.0 and 1.2 are obsolete; the better SDK to install is to be found
among version 2.0, Second Edition FP1, Second Edition FP2, Second Edition FP3.
I suggest to install the SDK in the default path of wizard and to use as woking drive the same of
SDK installation.
To install the SDK you need:
 Java JRE 1.4.1
 ActiveState Perl (http://www.activestate.com/Products/ActivePerl/
)

3


Syntax Command
To build a SIS file, open a shell and type:
Makesis example.pkg
where example.pkg is the file that contains the build instruction. The SIS file is built in the current
folder.
If the SDK installation process finished successfully the command path has been appended to
Windows Environment Variable “PATH”; in order to check, find the following path in PATH
variable:
C:\Symbian\7.0s\Series60_v20\Epoc32\tools
in case you installed SDK version 2.0 using default settings.

PKG file Syntax
Pkg file is a text file that specifies what files are compressed into SIS and what are the steps during
installation and unistallation.
An example of PKG follows:
;Languages
&EN, IT
;
#{"MyApplicationName"},(0x01033fa7),1,0,16
;
;Supports Series 60 v 1.2
;This line indicates that this installation is for the Series 60 platform v1.2
;This line must appear _exactly_ as shown below in the sis file
;If this line is missing or incorrect, the sis file will not be able
;to be installed on Series 60 v1.2 platforms
(0x101F8202), 0, 0, 0, {"Series60ProductID"}
4

; Certificate
*"my_certificate.key","my_certificate.cer"
;Depends on Flash being installed
(0x101F70E9), 1, 10, 0, {"Flash"}
" C:\source_directory\release.txt" - "", FILETEXT, TEXTCONTINUE
"C:\source_directory\Myapplication.app" -"!:\destination_directory\Myapplication.app"
"C:\source_directory\Myapplication.swf" -"!:\destination_directory\Myapplication.swf"
;language dependant files
{
"C:\source_directory\HelloWorld.ruk"
"C:\source_directory\HelloWorld.rit"
}-"!:\ destination_directory\HelloWorld.rsc"
Let’s analize every single line of the example:
Comments

;Supports Series 60 v 1.2

Comment line begins with ;
Supported languages
&EN, IT

This is always the first instruction. Shows what languages are supported in case the application has
a Multilanguage support. It is optional; if not present English language is default.
Each language is identified by two characters (EN= English, FR = French,… ).

Package name
#{"MyApplicationName"},(0x01033fa7),1,0,16, TYPE=SISAPP
The package is the SIS file. Each package has a unique number known as UID.
The parameters are:
5

 The name that identifies the application during installation precess;
 UID, i.e. 0x01033fa7;
 Version number composed as major number , minor number, build number;
 SIS type. Exploiting this parameter complex scenarios can be conceived, as such as software
update, patch or configuration. It is optional; the default value is SYSAPP, to install the
software.
In case the UID conflicts with the UID of another application, both applications stop to run. To
guarantee the uniqueness of UID, Symbian Signed program has been created. Any software
developer can register to the program and request for one or more UID without fees.
Platform compatibility
(0x101F8202), 0, 0, 0, {"Series60ProductID"}
This line specifies the platform version the application is compatible with.
Symbian platforms are: Series60 and UIQ; each one has several versions identified by an ID. The
first parameter is the version number (major, minor, build), followed by the platform name.
In the example I use Series60 v1.2 ID ( Nokia 3650, Nokia 7650). Below the list of ID for Series60
follows:
 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
 Series 60 2nd Edition FP1 0x101F9115
 Series 60 2nd Edition FP2 0x10200BAB
 Series 60 2nd Edition FP3 0x102032BD
Backward compatibility is supported; i.e., an application for you Series60 v1.2 can be installed on
Series60 v2.0 phones.

6


Digital signature
*"my_certificate.key","my_certificate.cer"

Software house that build SIS file can be indentified by the digital signature. This signature is
optional; furthermore, if the signature is signed by Symbian Signed program, the application is
“trusted”, in that case during installation the message "Impossible to verify the identity of software.
Do you want to proceed with installation?"
To generate a self-signed certificate Makekeys tool provided in Symbian SDK can be used.

Dependance fron other components
(0x101F70E9), 1, 10, 0, {"Flash"}
If the application to be installed needs other components to run, is it possible to check if that
component is already installed. The check is made on the UID of the components, its major, minor
and build numbers. If the component is present with a version equal or higher than that specified the
installation goes on; otherwise aborts.
The line above specifies the dependence from Flash player version 1,10,0.
Files to be installed
Now it’s time to specify what are the files to copy into the phone.
"C:\source_directory\MyapplicationFile.app" -"!:\destination_directory\ MyapplicationFile.app"
The line above specifies that file C:\source_directory\Myapplicationfile.app will be installed into
destination_directory with name MyapplicationFile.app. Instead of drive name “!” is used, to
demand the choice of installation drive to the end user. It is a good solution to let the user choose in
which drive to install the software.
Information files
" C:\source_directory\release.txt" - "", FILETEXT, TEXTCONTINUE
7

This command do not install any file on the phone, but display the content of release.txt during
installation. This file usually contains information concerning the authors, thanks and what ever
else…
TEXTCONTINUE option means that the display dialog has only one softkey: CONTINUE;
using TEXTSKIP option the dialog has YES/NO softkeys: clicking YES the installation goes on,
clicking NO the installation goes on but the next file in pkg file to be copied is skipped.
Using TEXABORT option the softkeys are YES/NO; clicking YES the installation continues,
clicking NO the installation aborts and the files copied till now are left on the phone.
Using TEXTEXIT option the softkeys are YES/NO; clicking YES the installation continues,
clicking NO the installation stops and the files copied are removed.

Language dependant files
{
"C:\source_directory\HelloWorld.ruk"
"C:\source_directory\HelloWorld.rit"
}-"!:\ destination_directory\HelloWorld.rsc"
Curly braches include many files as are the supportes languages. In this example English (EN) and
Italian (IT). However only one of those file will be installed as HelloWorld.rsc in the
destination_directory of the phone. The language used is the same currently in use on the phone, so
no question is asked to end user. In case the current language is not supported by the SIS file, a
default language (i.e, English) is choosen.