Thursday, March 15, 2007

How to guide for pre-installed applications

Introduction
---------------

In preinstalled applications, application files such as binaries are already in place in their target folders on a memory card. When a memory card with preinstalled applications is inserted into a device, the preinstalled applications are automatically installed so that the user can use them without having to install them manually.


In addition to the application files, a .sis file created with a PA type must also exist in the \private\10202dce folder on the memory card. This .sis file is also known as a "stub" .sis file since it contains sis controller data but no files.

How to create PA package
-----------------------------


Creating PA sis package
---------------------------


* Make sure that the package type is PA in the .pkg file.
* In the .pkg file, change the target drive for each file to the MMC drive.
* Make sure that correct product dependency is specified in the package file.
* Get certification for the final .sis file, ie. submit the application to Symbian Signed. When submitting, include the PA type sis, .pkg file and corresponding binaries to a .zip file. Arrange the binaries in the .zip file according to the correct structure so that binaries are located in the correct directories under
o private
o resource
o sys

You need to be aware of the folowing for PA packages:
* Do not use FR (FILERUN) options since they are not invoked in PA packages.
* The FN option can be used if the stub file is not read-only.

Do not use the FT (FILETEXT) option. It is skipped/ignored for PA packages.
* The PA .sis file cannot have embedded .sis file(s).
Sample .pkg file content for PA application:
[CODE]
;Languages
&EN

;Header
#{"Test Application"},(0x11223344),1,0,0, TYPE=PA

;Localized Vendor name
%{"Test"}

;Unique Vendor name
:"Test"

;Dependency for S60 3rd Edition
[0x101F7961], 0, 0, 0, {"Series60ProductID"}

;Preinstalled files
"MyTestApp.exe" - "e:\sys\bin\MyTestApp.exe"
"MyTestApp_reg.rsc" - "e:\private\10003a3f\import\apps\MyTestApp_reg.rsc"
"input.dat" - "e:\private\11223344\input.dat"
[/CODE]

In the development phase, you can use developer certificate to sign the PA type sis. Create the .sis file and sign it with a trusted certificate and key:

makesis.exe mytestpa.pkg mytestpa.sis

signsis.exe mytestpa.sis mytestpa_signed.sis

Publishing files to target locations on memory card

Make sure that files referred in PA package exist on memory card.

Publish PA sis file to the \private\10202dce\ folder on the memory card. Publish package files to their location as specified in .pkg file.


IMPORTANT: You need to make sure that the .pkg file used to create the PA .sis file doesn’t list files that are updated/modified during run time. These files still need to be on the memory card but they will no longer be protected against tampering. If any of the installed files (e.g., the configuration file) is updated/modified, propagation won't work when the memory card is inserted to another device or when the C drive is formatted. One possible solution to this problem is that if a file (e.g., a configuration file) is updated, application(s) will not touch the original file (only reading). Instead they will make a copy of this file and update the copy.

Upgrading pre-installed applications
-----------------------------------------

Preinstalled applications can be upgraded by overwriting the PA files with an SA package. When an SA package is installed to a memory card, it is propagated. This means that it will behave like a PA package when the memory card is inserted into another device.

Preinstalled applications cannot be upgraded by using Partial Upgrade (PU) packages. SIS Patch (SP) packages can be used to upgrade preinstalled applications but the upgrade is not propagated to the memory card. Thus, it will not be in place when the memory card is inserted into another device.

4 comments:

Upasana said...

Good knowledge on the upgrading the development. But i want to know about the updating the sis file according to changes in the code i.e. "username" to "UserName". What is its solution.

Sunil kumar said...

You can use PA Sis files

sudhakar-aluri said...

can we do the j2me midltes also as preinstalled app on sd-memorycard?

Sunil kumar said...

the packging is same so you can do J2ME too. but never tried so can't tell 100% will work or not.

stats counter