Symbian3/PDK/Source/GUID-7F65B69A-6AC1-509C-91E8-9E49ED0BFEC0.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 11 Mar 2010 18:02:22 +0000
changeset 3 46218c8b8afa
parent 1 25a17d01db0c
child 5 f345bda72bc4
permissions -rw-r--r--
week 10 bug fix submission (SF PDK version): Bug 1892, Bug 1897, Bug 1319. Also 3 or 4 documents were found to contain code blocks with SFL, which has been fixed. Partial fix for broken links, links to Forum Nokia, and the 'Symbian platform' terminology issues.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-7F65B69A-6AC1-509C-91E8-9E49ED0BFEC0" xml:lang="en"><title>Upgrading
OS Components</title><abstract><p>A device creator can replace data files and binaries in ROM by
means of eclipsing. A typical example for this requirement is to fix a software
issue. </p><p>To eclipse the files in the ROM, the device creators must add
a Stub SIS file to the ROM and install a package that supports eclipsing.
See <xref href="GUID-7F65B69A-6AC1-509C-91E8-9E49ED0BFEC0.dita#GUID-7F65B69A-6AC1-509C-91E8-9E49ED0BFEC0/GUID-238CFC90-366C-5BB0-AD2C-2D0F88A8A0A1">Creating
and adding a stub SIS file to ROM</xref> and <xref href="GUID-7F65B69A-6AC1-509C-91E8-9E49ED0BFEC0.dita#GUID-7F65B69A-6AC1-509C-91E8-9E49ED0BFEC0/GUID-D2E7EE55-A154-58E3-A431-3350C4F7989E">Creating
SIS files for eclipsing</xref> for details. </p><p>Creating
System Upgrade Packages enables the device creators to overcome the restriction
of using a stub sis file in the ROM drive. For details, see <xref href="GUID-7F65B69A-6AC1-509C-91E8-9E49ED0BFEC0.dita#GUID-7F65B69A-6AC1-509C-91E8-9E49ED0BFEC0/GUID-FD019E0B-DC32-5F29-8867-656DB2795FF4">Creating System Upgrade Package</xref>. </p></abstract><prolog><metadata><keywords/></metadata></prolog><conbody>
<section id="GUID-238CFC90-366C-5BB0-AD2C-2D0F88A8A0A1"><title>Creating and
adding a stub SIS file to ROM</title> <ol id="GUID-881FF7BC-F4C3-5579-AA91-EA9EBC29530C">
<li id="GUID-2CB598EA-2534-58B7-8496-DA51236EF9C7"><p>Create a PKG file. </p> <p>Ensure
the PKG file used to generate the Stub SIS file does not include source file
entries and are specified as empty strings. </p> <p>For example: </p> <codeblock id="GUID-708D3DD4-D745-58D1-9BD3-5594D369A023" xml:space="preserve">; Example STUB File
&amp;EN
%{"Nokia Corporation"}
:"Nokia Corporation"
#{"Hello World"},(0x18000091),1,0,0
"" - "z:\sys\bin\HelloWorld.exe"
"" - "z:\resource\apps\HelloWorld.rsc"
"" - "z:\resource\apps\HelloWorld.mbm"
"" - "z:\private\10003a3f\import\apps\HelloWorld_reg.rsc"</codeblock> <p> <b>Note</b>:
For details about using wildcards, see <xref href="GUID-A6CF0AD2-BDE4-548C-A165-581FCD019D7C.dita">Wildcard
Usage with Stub SIS files</xref>. </p> </li>
<li id="GUID-078AAB0B-4D3F-580D-9FE0-FD9FAB41532B"><p>Run the <xref href="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita">MakeSIS</xref> tool
at the command-prompt and specify the <codeph>-s</codeph> option to create
the stub SIS file: </p> <p><userinput>makesis –s &lt;PKG_filename&gt;</userinput> </p> <p> <b>Note</b>:
The package UID must be selcted from the protected range allocated to the
device creator by Symbian Signed. </p> </li>
<li id="GUID-FD66AE79-DD5B-5EED-B70E-B39E8DA0ED79"><p>Place the generated
stub SIS file in the following location <filepath>Z:\system\install\</filepath>. </p> </li>
</ol> </section>
<section id="GUID-D2E7EE55-A154-58E3-A431-3350C4F7989E"><title>Creating SIS
files for eclipsing</title> <ol id="GUID-3696EF1D-5E4C-5C6D-B02B-04E89A967099">
<li id="GUID-153F35CC-9021-5300-8E4D-D5FD3CFD92B5"><p>Create an eclipsing
package. The eclipsing package can be of type <codeph>SA</codeph> (full upgrade), <codeph>PU</codeph> (partial
upgrade) or <codeph>SP</codeph> (patch upgrade). For details, see <xref href="GUID-7FD72D9F-D65E-5248-A296-F2196F1DF5CF.dita">Upgrade
Types</xref>. </p> <p>The files in the eclipsing package must have same filename
and path as the files in ROM that are eclipsed. However, the drive must be
different. For example: </p> <codeblock id="GUID-783ACC24-81B8-5687-948B-65DFB8594BB4" xml:space="preserve">;Eclipsing package
&amp;EN
%{"Nokia Corporation"}
:"Nokia Corporation"
#{"Hello World"},(0x18000091),1,1,0, TYPE=PU
"HelloWorld.exe"-"$:\sys\bin\HelloWorld.exe"
"HelloWorld.rsc"-"$:\resource\apps\HelloWorld.rsc"
"HelloWorld.mbm" - "$:\resource\apps\HelloWorld.mbm"
"HelloWorld_reg.rsc" - "$:\private\10003a3f\import\apps\HelloWorld_reg.rsc"</codeblock> <p>The
upgrading package must have same package UID as the stub SIS file, as this
is always from the protected range. </p> <p>It is preferable to specify the
target drive letter as <codeph>$:</codeph> to denote the system drive. This
is because if the Symbian device user chooses to install the package to a
removable drive, which can subsequently be removed, the files on <filepath>Z</filepath> drive
can be used again. </p> <p> <b>Note</b>: The installer does not allow two
different files to eclipse a file at the same time. For example, after eclipsing
a ROM file by installing a newer version of the file to <filepath>C</filepath> drive,
the installer does not allow you to eclipse the ROM file again by installing
another version of the file to <filepath>D</filepath> drive. The installation
fails. </p> <p> </p> </li>
<li id="GUID-BC5FEC91-7735-5597-89B1-E34BB7065573"><p>Run the <xref href="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita">MakeSIS</xref> and <xref href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita">SignSIS</xref> tools to create
and sign the eclipsing SIS file. Alternatively, you can use the <xref href="GUID-AA555CC1-5CFF-5609-9191-8970F32BA255.dita">CreateSIS</xref> tool. </p> </li>
</ol> </section>
<section id="GUID-FD019E0B-DC32-5F29-8867-656DB2795FF4"><title>Creating
system upgrade package</title> <p>To use system upgrade packages, device creators
must: </p> <ol id="GUID-F67E11F8-ADF0-5316-BFBC-FFCED6C6E4DF">
<li id="GUID-5E77C193-767D-50D8-8BA0-E4FDD509EFEF"><p>Create a PKG file and
include the ROMUpgrade (<codeph>RU</codeph>) flag in the package header. For
details about the RU Flag supporting different upgrade types, see <xref href="GUID-CD5907AE-B439-5F76-AE19-9C9491832CB4.dita">System
Upgrades</xref>. </p> </li>
<li id="GUID-EA1797BD-BA66-5D4F-8CD5-EE2E6B8E856F"><p>Run the <xref href="GUID-4BDC9F63-83A1-53A5-91A0-B092AA821755.dita">MakeSIS</xref> and <xref href="GUID-B20EE8A3-D7B2-5872-AF43-001A88C1A46E.dita">SignSIS</xref> tools to create
and sign the SIS file with a <codeph>SU</codeph> certificate. Alternatively,
you can use the <xref href="GUID-AA555CC1-5CFF-5609-9191-8970F32BA255.dita">CreateSIS</xref> tool. </p> </li>
</ol> </section>
<section id="GUID-124E78DC-2C94-4901-A90B-20DDC2F3AD66"><title>Important Considerations</title><p>Consider
the following tips to avoid common problems that can occur when eclipsing
ROM files. </p> <ul>
<li id="GUID-F3834539-10D0-518E-B004-EC512A4D73E7"><p>If you are eclipsing
an application <filepath>EXE</filepath>, make sure that both the application
and the eclipsing SIS file have put the application registration file (<filepath>*_reg.rsc</filepath>)
in <filepath>\private\10003a3f\import\apps\</filepath> rather than <filepath>\private\10003a3f\apps\</filepath>.
Else, the application framework picks up the application from <filepath>z</filepath> drive. </p> </li>
<li id="GUID-EE1F1535-D347-5DF8-8C36-935A48F3CFD2"><p>The <filepath>DLLs</filepath> and <filepath>EXEs</filepath> have
version numbers. You can set the version (which consists of a major and a
minor number) in the <filepath>MMP</filepath> file using the <codeph>VERSION</codeph> keyword.
The default version number is <codeph>10.0</codeph>. </p> <p>When eclipsing
a DLL available in ROM, the upgrading version number must be higher than the
one in ROM, otherwise, any EXEs in ROM (<filepath>Z</filepath> drive) that
link to this DLL can use the version on <filepath>Z</filepath> drive. However,
the new version must have the same major version number. </p> </li>
<li id="GUID-3D03C487-6303-5C49-B780-2489ADB637A1"><p>The application that
needs to be upgradable must not hard code any path to <filepath>Z</filepath> drive,
otherwise files are picked up from <filepath>z</filepath> drive. </p> </li>
<li id="GUID-8F3CACA0-5D68-505C-918F-8C0DADAB5577"><p>If you are upgrading
ECOM plugins on <filepath>Z</filepath> drive, you must increment the interface
implementation version number. </p> </li>
<li id="GUID-79CA5A58-A167-58E5-9C0B-21EAD8335FAB"><p>Verify that the vendor
names in the Stub SIS file match with the vendor names of the eclipsing SIS
file. </p> </li>
<li id="GUID-6530AAF8-AF5A-5D50-97D4-74117760816B"><p>In an XIP (execute in
place) ROM, the linking of executables to <filepath>DLL</filepath> s is done
at ROM build time. Therefore, to eclipse a <filepath>DLL</filepath> in an
XIP ROM, the <filepath>EXE</filepath> that uses it also needs to be eclipsed. </p> </li>
<li id="GUID-5213264C-0414-541F-B2B9-2DEC4AB85F91"><p>To eclipse language
specific files, it is recommended to eclipse every language variant that is
in the ROM. For example, if the application resource file has <filepath>.RSC</filepath> and <filepath>.R02</filepath> in
ROM, the eclipsing SIS file must also include <filepath>.RSC</filepath> and <filepath>.R02</filepath>. </p> </li>
</ul> </section>
</conbody><related-links>
<link href="GUID-43B4B4E7-413E-5D18-811C-4B9E38CDEB69.dita"><linktext>PKG File
Format</linktext></link>
<link href="GUID-CD5907AE-B439-5F76-AE19-9C9491832CB4.dita">
<linktext>System Upgrade Packages</linktext></link>
</related-links></concept>