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.

Context

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.

Steps

  • 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.