|
||
MTMs are implemented as DLLs. According to the Symbian OS platform security model a DLL can be loaded by a process only if the DLL has a capability set equal to or greater than the capability set of the process loading it.
Based on the processes loading them, MTMs are divided into two categories:
Server-side MTMs – these are loaded by the Messaging server process
Client-side MTMs, UI MTMs and UI data MTMs – these are loaded by the client processes (e.g. third party messaging applications)
The capability set is defined in the MMP files of the MTMs. The following sections list the capability set required by Symbian OS for each type of MTM.
This section provides guidelines to the developers, for assigning the capability set for different types of MTMs.
Server side MTMs are always loaded by the Messaging Server. It is therefore necessary for the server-side MTMs to have the following capability set assigned.
ReadDeviceData WriteDeviceData ProtServ NetworkControl
NetworkServices LocalServices ReadUserData WriteUserData
These MTMs are used by modules both within and outside of the messaging framework. If a client-side MTM is to provide all the supported Messaging functionality it must have at least the minimum capabilities listed below.
ReadDeviceData WriteDeviceData NetworkServices LocalServices
ReadUserData WriteUserData
If a client-side MTM does not need to provide the complete set of messaging functionality then a subset of the capabilities mentioned above may be selected.
E.g. if a client-side MTM communicates over a local connection (IR,
Bluetooth, etc.), it needs LocalServices
capability only and does
not need NetworkServices
capability.
Please refer to the Platform Security Engineering Guide to understand the requirements for each capability recommended above. MTM implementers may choose a subset of these capabilities depending on the functionality being provided by the MTM.
Authors of client MTMs that are loaded by the standard messaging applications must give their MTMs the capabilities that those applications have. I.e. the capabilities of Client MTMs are determined by the processes that load them.
The capabilities that need to be selected for applications that use client side MTMs will depend on the functionality that those applications provide. If the client side MTM does not have those capabilities, the application will not be able to load the MTM. It is up to the creator of the MTM to make sure that it is assigned enough capabilities to be loaded into applications that require that MTM.
Developers are advised that keywords such as
ReadDeviceData
are case sensitive, and care should be taken when
specifying them in the MMP file. For example a server side MTM will have the
capability set defined in the MMP file as follows:
CAPABILITY ReadDeviceData WriteDeviceData ProtServ NetworkControl
NetworkServices LocalServices ReadUserData WriteUserData