How to create a SIS file - Part II
Supported languages
The languages supported by the application are indicated on the first line of the PKG file. Each language is identified by a two character code. Its format is as follows:
&EN,FR
The language codes are:
| EN | UK English | PO | Portuguese | |
| FR | French | SP | Spanish | |
| GE | German | RU | Russian | |
| IT | Italian | DU | Dutch | |
| SW | Swedish | DA | Danish | |
| FI | Finnish | NO | Norwegian |
More codes are defined in the SDL.
The language line may be omitted. If so, UK English is assumed by default.
Package header
The package header is the next component of a PKG file. It specifies the package name, the application UID, its build and version information and the package type:
#{"DummyLC","BetaLC"},(0x0010D003),1,01,12,TYPE=SISAPP
The first part {"DummyLC","BetaLC"} is the name of the application. There must be one name for each language specified in the language line. Here, DummyLC is the name of the application in english, while BetaLC is its french name.
Then come the UID of the application (here 0x0010D003). This value shall be obtained from Symbian if you intend to distribute your application (read Requesting an UID for your application).
The next three values represent the major, minor , build version number (we have here version 1.01, build 12).
The last value is optional and specifies the SIS type. The possible values are:
| TYPE | Description |
|---|---|
| SISAPP | Contains an application (the default type if nothing is pecified) |
| SISSYSTEM | Contains a shared/system component such as a DLL or OPX which may be used by a number of applications. The component will be removed when the last application is removed which uses it. |
| SISOPTION | Contains an add-on or optional component, (dynamically loaded code, data files,Â…). The user may choose whether to install the component and may later remove the component independent of the main application it works with. |
| SISCONFIG | Configures an existing application or service. The package should not contain any new files, only files which are either run or displayed during installation, or added to an existing component, e.g. settings. The package will not appear as a removable component after installation. |
| SISPATCH | Patches an existing component. It may be removed by the user. |
| SISUPGRADE | Upgrades an existing component. The package is not listed as a removable component after installation, the user will need to remove or reinstall the associated application to remove the changes. |
Product / Platform compatibility
The next line specifies the platform or product your application is targeted at : (0x101F6F88), 0, 0, 0, {"Series60ProductID","Series60ProductID"}
0x101F6F88 is the code for Series 60 v0.9. This is the most common and conservative choice for a basic application since this means that the application is compatible across all existing Series 60 devices. Of course, if you use some specific v1.2 APIs, you should use the corresponding code instead. Check our Common products UIDs page for more codes.
0, 0, 0 are major version, minor version and build numbers. You should keep these values as is.
{"Series60ProductID","Series60ProductID"} is the platform identification string. You should use "Series60ProductID" for Series 60 devices. Note that the string should be repeated for each language you specify on the language line.
Text notice display
Optionnally, you can display some text window during the installation process. This can be typically :
a license usage for your application
some release notes (new features introduced by this version of the application)
...
This is specified by using the FILETEXT command:
; Display new features
;
"release.txt" - "", FILETEXT, TEXTCONTINUE
The line above specifies that:
the content of the file release.txt will be displayed during the installation process. This file is located in the same directory as the PKG file (if not, you must specify the path). In this exemple, the file is not written on the phone after installation (because of the - "" specification.
TEXTCONTINUE specifies that only one softkey with the "Continue" label will be presented to the user. Other possible options are :
| TEXTSKIP | Use Yes and No buttons in the text file dialog. If Yes is pressed, the dialog is cancelled and the installation continues. If No is pressed, the dialog is cancelled, and the installation will continue, but the next file or component specified in the pkg file will not be installed. |
| TEXTEXIT | Use Yes and No buttons in the text file dialog. If Yes is pressed, the dialog is cancelled and the installation continues. If No is pressed, the installation is aborted and any installed files are removed. |
| TEXTABORT | Use Yes and No buttons in the text file dialog. If Yes is pressed, the dialog is cancelled and the installation continues. If No is pressed, the installation is aborted - normally resulting in a partial installation. |
This part can also be integrated within the files section. The TEXTSKIP option can be used to ask the user which optional file he wants to install.
Language dependent files
Your application can contain some files that are language dependent (data files, resource files). You can specify which file are to install depending on the user language selection:
; Install language dependent data
;
{
"\Symbian\6.1\Series60\Epoc32\release\thumb\urel\DummyLC.r01"
"\Symbian\6.1\Series60\Epoc32\release\thumb\urel\DummyLC.r02"
}-"!:\system\apps\DummyLC\DummyLC.rsc"
DummyLC.r01 will be installed as DummyLC.rsc if the user select English installation. DummyLC.r02 will be use instead for a French one. The interesting point is that only one file will finally reside on the phone, which has always the same name but content that matches the user language.
The "!:" indicates that the user can choose the target drive if he has a compact flash card installed.If you don't want the user to select the target drive, you can replace the exclamation mark by the drive specification (ex: "C:").
At this step you may have noticed that all the {...} blocks are used to specify language dependent options.
Language independent files
The next section contains the files that are to be installed no matter of the user language selection:
; Files to install
;
"\Symbian\6.1\Series60\Epoc32\release\thumb\urel\DummyLC.app" - "!:\system\apps\DummyLC\DummyLC.app"
"\Symbian\6.1\Series60\Epoc32\release\thumb\urel\DummyLC.aif" - "!:\system\apps\DummyLC\DummyLC.aif"
The lines above will add in the SIS files two files, DummyLC.app and DummyLC.aif which are located in the C:\Symbian\6.1\Series60\Epoc32\release\thumb\urel\ directory. These files will be installed on the device in the directory \system\apps\DummyLC of the target installation drive.
Running a file at installation
It is sometime useful to run a file upon installation or uninstallation of your file. Typical usage are:
starting a server drectly after installation (a recognizer can also be used)
doing some cleanup after uninstall
...
This can be done using the FILERUN command:
; Install and run an exe
;
"\Symbian\6.1\Series60\Epoc32\release\thumb\urel\RunMe.exe" -"!:\system\apps\DummyLC\RunMe.exe",FILERUN,RUNINSTALL
In the example above, an executable called RunMe.exe will be started automatically during installation (RUNINSTALL option).
Other possibilities are:
| RUNREMOVE | Run the file during removal only |
| RUNBOTH | Run the file during both installation and removal. |
Installing a shared component
It is possible to include in a SIS file a component that can be shared by several applications:
; Install shared component
;
@"..\..\Common\DLL\Install\newlcdll.sis",(0x1000EB00)
The SIS file of the shared componend will be included in our application SIS file and will be installed with it, unless it is already present on the phone. When several application using the same shared component are present at the same time, the shared component will only be uninstalled when the last application that use it is uninstalled.
An exemple of such shared component is our EzBoot application.
The following construction could also be used to indicate a dependence to an external component: (0x1000EB00), 1, 0, 12, {"NewLC DLL","NewLC DLL"}
The code above requires the presence of a component with UID 0x1000EB00 in its version 1.0, build 12, to be installed (this component being probably a DLL as indicated by the provided strings). However, if the DLL is not present on the phone, the user will not be able to install the package.
Runtime generated files
Your application may also generates some data files at run time (ex: preferences, high scores,...).
To make sure these files are deleted when your application is removed, the FILENULL option can be used:
; Make sure the configuration file is removed on uninstall
;
""-"C:\system\apps\DummyLC\DummyLC.ini",FILENULL
Note that the DummyLC.ini file will not be deleted when upgrading to a later version. This ensures that such files as .ini files, which store application preferences, are not lost in an upgrade.






> How to create a SIS file - Part II
> How to create a SIS file - Part II
Hey,
Try using unmakesis application. You can get from here: http://mitglied.lycos.de/atzplzw/
Regards, Aljaz
> How to create a SIS file - Part II
> How to create a SIS file - Part II
Hi friends , i was trying to install a sis file. which must be get started at the system boot time,
well using autostart utility it's working fine but actually i want to avoid the use of another sis file to run my original sis file. actually when my sis file is installed its working fine but once the device is closed the application will stop. thats why i needed to install th autostart app which will make my app run at boot time . i was able to achived it but running two sis file is some what panic . i hope u peoples do agree with my statement . any solution?
> How to create a SIS file - Part II
> How to create a SIS file - Part II
> How to create a SIS file - Part II
> How to create a SIS file - Part II
> How to create a SIS file - Part II
FILERUN
> How to create a SIS file - Part II
is there a way to have different language license files displayed depending on the language the user has ?
Sebastian
> How to create a SIS file - Part II
Hi
I have an application that is around 1MB as a .sis file and i cannot install it as such . i need to split it as 3 files . how do i change the sis file header so that they are not overwritten by the successive sis files .
gowtham
> How to create a SIS file - Part II
> How to create a SIS file - Part II
> How to create a SIS file using SISAR
Hey
How do I create a sis file using SISAR. When I create a new file using SISAR, it takes the extension of .sisar. How do I convert this to .sis file.