The MTMs are implemented as DLL files. 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 higher than the capability set of the process loading it, hence the MTMs should have the capabilities defined below so that they are available to the client processes.
The capability set is defined in the MMP files of the MTMs. The following lists the capability set required by Symbian OS for each type of MTM.
The server side MTMs should have the following capability set assigned:
ReadDeviceData WriteDeviceData ProtServ NetworkControl NetworkServices LocalServices ReadUserData
WriteUserData
These MTMs are generally used by the modules both within and outside the
messaging framework, hence it is desirable to have the maximum capability set
assigned to them (ALL -TCB)
. They can be assigned a lower
capability set such as ALL -TCB -DRM
, but some processes may fail
to load an MTM with a lower capability set. In this case refer to the PlatSec
requirements of the process loading the MTM. Developers are advised to assign a
capability set to the MTM equal to or higher than all the potential processes
that may load the MTM. In general, to make the MTMs available to all clients,
it is recommended that the capability set ALL -TCB
be assigned.
The keyword ALL -TCB defines that the MTM has the maximum capabilities, other than the capabilities of the Trusted Computing Base (TCB).
Developers are advised that keywords such as ReadDeviceData
are case sensitive, and hence care should be taken while 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
A client side MTM will have the following entry in the MMP file:
CAPABILITY ALL -TCB
Note: The client process does not gain the capabilities of the MTMs (DLLs) it loads but rather the reverse, the MTMs runs with the capabilities of the client process. For security reasons the MTM must have at least the same capabilities as the client process for the DLL to be loaded successfully.