How to fake a device? (SyncML plugin)

First why should we fake a device? Some vendors think that it is a good idea to filter on the basis of the connectings device. This idea has two backgrounds. First every device supports another set of features and not all devices are able to send an appropriate device information. So the servers knows the capabilities of the devices and can use profiles if a device was identified. Second some vendors have the idea of enforcing (security) policies by the device information. They argue that some companies want only to use some approved Nokia phones and so they filter the allowed devices. So the general answer for the first question is, we want to be able to workaround filtering or better, we want to be able to use already existing profiles. A good example for such a server is the Oracle Calendar Suite (OCS).

Second what does a device make a Nokia E51? The device information makes a device a Nokia E51. The device information consists if two major parts - the hardware and software information and the capabilities.

Hardware and software information

The following stuff could be defined as hw/sw information.

  • VerDTD
  • Man (Manufacturer)
  • Mod (Model)
  • OEM
  • FwV (Firmware Version)
  • SwV (Software Version)
  • DevID (usually the IMEI)
  • DevTyp

Capabilities

The following parameters are the generally available capabilities from the device information.

  • SupportLargeObjs
  • SupportNumberOfChanges
  • SupportUTC
  • Datastore(s) - the configuration of the different synchronizable datastores
  • CTCap(s) - the configuration for the different content types

Faking a device

First you have to enable device faking with the configuration option fake_device.

Second the device identification which I know bases on parts of the hw/sw information. The stuff was tested with an OCS. The following parameters are configurable (because they are used by the Oracle Server to identify the mobiles):

  • DTD version (OMA DM version) - syncml_version
  • Manufacturer - fake_manufacturer
  • Model - fake_model
  • Software Version - fake_software_version

Example:

<fake_device>1</fake_device>
<syncml_version>1.1</syncml_version>
<fake_manufacturer>NOKIA</fake_manufacturer>
<fake_model>E60</fake_model>
<fake_software_version>1.0</fake_software_version>

It is common that not all options are used but sometimes it is necessary for the OCS to use all parameters because software updates can change the behaviour of a mobile.

Examples

Configuration examples are included in the configuration file of the syncml-http-client. Nevertheless here are some common examples which can be used to play around.

ManufacturerModelDTDSoftware VersionComment
NOKIAE601.11.0default
NOKIA68001.11.0Nokia Series 40
NOKIA66001.11.0Nokia Series 60
NOKIA93001.11.0Nokia Series 80
NOKIAE601.11.0Nokia E-Series SyncML 1.1
NOKIAE601.21.0Nokia E-Series SyncML 1.2

Please note that the Software Version is ignored by OCS for all these mobiles.