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, the
rom_only
member
must be set explicitly.