Preventing
Plug-in Overriding
The plug-in framework supports two methods to prevent a RAM based
plug-in from overriding a ROM based plug-in. The first method is to use the
ROM-only resolver and the second method is to explicitly prevent a ROM-based
implementation from being overridden by a RAM-based implementation.
Using the ROM-only
resolver restricts the search of the framework plug-ins to the ROM only.
Alternatively,
to prevent a RAM-based implementation from overriding a ROM-based implementation,
set the rom_only variable to 1 in the resource
registration file for the implementation.
- Using the ROM-only resolver
Use KRomOnlyResolverUid as the CResolver
UID passed to those variants of REComSession::ListImplementationsL() and REComSession::CreateImplementationL() that take the TUid aResolverUid parameter.
If an
installable upgrade to a ROM-based plug-in is correctly supplied by a vendor,
then the ROM-only resolver finds and uses the upgrade. Platform security controls
are used to ensure that the upgrade is secure. For details, see How to upgrade
ROM-based plug-ins securely.
- Preventing a ROM-based implementation from being overridden:
If the ROM-based plug-ins must be prevented from being overridden
by a RAM-based plug-in, use the version
2 resource file format.
In the .rss file,
the rom_only member of the IMPLEMENTATION_INFO structure
must be set to 1.
rom_only set to 1 indicates the
ROM-based implementation must be used.
rom_only set
to 0 indicates the ROM-based implementations can be overridden.
Note: For
all implementations using the version 2 resource file format, therom_only member
must be set explicitly.