Upgrading ROM Plug-ins

Phone manufacturers sometimes require to provide installable upgrades to the existing ROM plug-ins delivered with the phone. The requirement arises to fix defects or add a new functionality.

Context

The plug-in framework identifies and uses the plug-in upgrades in the following scenarios:

  • Client code uses the ROM-only plug-in resolver, as described in Using the ROM-only resolver.

  • The plug-in upgrade location is specified at ROM build time using the SPI (Static Plug-in Information) file.

For the upgrades to be successful, the existing ROM plug-in and the upgrade must meet certain conditions. When an upgrade is created, ensure the existing ROM plug-in and the upgrade meet the following requirements:

  • The name of the plug-in DLL and resource file of the upgrade must be the same as the existing ROM plug-in.

  • The interface UID and implementation UID for the upgrade and the existing ROM plug-in must be the same.

  • The plug-in DLL's Vendor ID must be the same in the upgrade and the existing ROM plug-in.

  • The value of version_no member of IMPLEMENTATION_INFO must be higher for the upgrade than the existing ROM plug-in. For more details, see Creating a Standard Registration Resource File.

  • The value of VERSION variable in the project file for the upgrade must be higher than the value for the VERSION variable in the project file (.mmp file) of the ROM plug-in.

    The VERSION variable normally has the default value of 10.0 and is not explicitly set. But for the upgrade it has to be set to a value higher than the ROM plug-in. For more details, see Language-Neutral Files .

If the values for plug-in DLL name ,interface UID and implementation UID differ, the plug-in framework treats the upgrade plug-in as a new implementation.

Steps

  1. Provide a SIS stub package for the plug-in DLL of the upgrade on the same drive as the existing ROM plug-in. This step is a part of the general procedure that allows ROM-based files to be upgraded. The SIS file provides information that is utilized by the Software Installer program to identify the upgrade as a valid replacement for the original ROM plug-in. For more details, refer Language-Neutral Files .
  2. Set the rom_only member of IMPLEMENTATION_INFO to 0 in the registration resource file of the plug-in. NOTE: If rom_only member is set to 1, upgrades are ignored. For more details, refer Preventing a ROM-based implementation from being overridden.