Symbian3/PDK/Source/GUID-75E5D15C-83F1-5A32-BFC5-B5DC10FCDB99.dita
changeset 1 25a17d01db0c
child 3 46218c8b8afa
equal deleted inserted replaced
0:89d6a7a84779 1:25a17d01db0c
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept xml:lang="en" id="GUID-75E5D15C-83F1-5A32-BFC5-B5DC10FCDB99"><title>Upgrading Help Files on the Secure Platform</title><shortdesc>This page describes how to upgrade help files on the secure Symbian platform. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><ul><li id="GUID-8136781B-7547-5418-843E-3136421D98E8"><p><xref href="GUID-75E5D15C-83F1-5A32-BFC5-B5DC10FCDB99.dita#GUID-75E5D15C-83F1-5A32-BFC5-B5DC10FCDB99/GUID-C9D24A7B-C078-5DF2-A318-4969F1C0516A">Introduction</xref>. This section is intended for a general audience. </p> </li> <li id="GUID-DDA10A20-51E7-5680-9569-F21942BBBDD7"><p><xref href="GUID-75E5D15C-83F1-5A32-BFC5-B5DC10FCDB99.dita#GUID-75E5D15C-83F1-5A32-BFC5-B5DC10FCDB99/GUID-2B58B989-1D5E-539C-8294-08811B0A1BD4">Creating stub SIS files during a build</xref>. This section is intended for Licencees. </p> </li> </ul> <section id="GUID-C9D24A7B-C078-5DF2-A318-4969F1C0516A"><title>Introduction</title> <p>Platform Security makes replacing help files more difficult than it was in earlier, non-secure platform releases. On the secure platform, help files can be loaded only from <filepath>\resource\help\</filepath> on any drive. This directory is read-only and can only be written to by processes with very high capabilities, such as the kernel and the software installer. An exception to the rule that help files cannot be overwritten occurs when the vendor name - held in <i>stub SIS files</i> in the <filepath>\system\install\</filepath> directory on any drive - is the same as that for the previous installation. In this situation the software installer allows the upgrade. </p> <p>The only way to add a help file to a <filepath>\resource\help\</filepath> directory is to install software with the help file packaged in a SIS file. To prevent malicious code from overwriting other applications’ help files (including those of core applications stored in ROM), the software installer will not install a help file if a file with the same name already exists in the <filepath>\resource\help\</filepath> directory, on any drive (unless it is identified by the installer as a valid upgrade). </p> <p>The installer not only prevents you from overwriting another package's help files, but it also prevents you from eclipsing them. For more information, see <xref href="GUID-B3BE018B-0EC5-5866-9BD7-50CBF5670324.dita">Language-Neutral Files</xref>. </p> </section> <section id="GUID-2B58B989-1D5E-539C-8294-08811B0A1BD4"><title>Creating stub SIS files during a build</title> <p>Apart from the vendor name, a stub SIS file also contains the information needed to remove the application or file; for example, the full paths of the installed files and application components. Stub SIS files can be distinguised from normal SIS files by their size - stub SIS files are usually several hundred bytes long, much smaller than normal SIS files. </p> <p>Core applications such as Calendar and Contacts are part of the ROM, and so are never installed. To be able to upgrade them and their help files, you must first create stub SIS files for them in the <filepath>z:\system\install\</filepath> directory. </p> <p>You create SIS files from package (<filepath>.pkg</filepath>) files using the <i>makeSIS</i> utility with the <codeph>-s</codeph> flag, which excludes binaries and media from the SIS file. </p> <p>For more information, see <xref href="GUID-7F65B69A-6AC1-509C-91E8-9E49ED0BFEC0.dita">Upgrading OS Components</xref>. </p> <p>Create stub SIS files as part of the build as follows: </p> <ol id="GUID-2C36E9CC-0915-59B9-B0DF-35B4CAC6DEA1"><li id="GUID-3203D7AF-D774-59BB-8C9A-AF2E3352CFCF"><p>Create a make file that calls the <codeph>makeSIS</codeph> utility (see the example, below). </p> </li> <li id="GUID-FD0DEF6E-DCAD-5C43-ACC9-0F5203019218"><p>Add the make file to the <codeph>PRJ_MMPFILES</codeph> section of the component’s <filepath>bld.inf</filepath> file. For example, adding the make file <filepath>Foo.mk</filepath>: </p> <codeblock id="GUID-0A531BD0-48B8-55E1-93A0-119E382F0A6D" xml:space="preserve">///Bld.inf 
       
    13 PRJ_MMPFILES 
       
    14 makefile Foo.mk</codeblock> </li> </ol> <p>An example make file - called <filepath>Foo.mk</filepath>, which is used to create <filepath>Foo.sis</filepath> - is shown below: </p> <codeblock id="GUID-72112C86-58FE-5DA1-94A5-6CEC3975FA94" xml:space="preserve"># Build Stub SIS file 
       
    15       
       
    16 SISNAME=Foo 
       
    17 SRCDIR=.\ 
       
    18          
       
    19 # Select appropriate directory and ensure it exists 
       
    20 !if "$(PLATFORM)"=="WINS" || "$(PLATFORM)"=="WINSCW" 
       
    21 TARGETDIR=$(EPOCROOT)EPOC32\RELEASE\$(PLATFORM)\$(CFG)\Z\System\Install 
       
    22 !else 
       
    23 TARGETDIR=$(EPOCROOT)EPOC32\Data\Z\System\Install 
       
    24 !endif 
       
    25            
       
    26 $(TARGETDIR) : 
       
    27     @perl -S emkdir.pl "$(TARGETDIR)" 
       
    28               
       
    29                  
       
    30 # Build stub SIS file 
       
    31 SISFILE= $(TARGETDIR)\$(SISNAME).sis 
       
    32                        
       
    33 $(SISFILE) : $(SRCDIR)\$(SISNAME).pkg 
       
    34     makesis -s $? $@
       
    35                    
       
    36 do_nothing : 
       
    37     rem do_nothing 
       
    38                       
       
    39 # The targets invoked by abld  
       
    40 MAKMAKE : do_nothing 
       
    41 RESOURCE : $(TARGETDIR) $(SISFILE) 
       
    42 SAVESPACE : BLD 
       
    43 BLD : do_nothing 
       
    44 FREEZE : do_nothing 
       
    45 LIB : do_nothing 
       
    46 CLEANLIB : do_nothing 
       
    47 FINAL : do_nothing 
       
    48                          
       
    49 CLEAN :  
       
    50     erase $(SISFILE)
       
    51                            
       
    52 RELEASABLES :  
       
    53     @echo $(SISFILE)</codeblock> </section> </conbody></concept>