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.
| Manufacturer | Model | DTD | Software Version | Comment |
| NOKIA | E60 | 1.1 | 1.0 | default |
| NOKIA | 6800 | 1.1 | 1.0 | Nokia Series 40 |
| NOKIA | 6600 | 1.1 | 1.0 | Nokia Series 60 |
| NOKIA | 9300 | 1.1 | 1.0 | Nokia Series 80 |
| NOKIA | E60 | 1.1 | 1.0 | Nokia E-Series SyncML 1.1 |
| NOKIA | E60 | 1.2 | 1.0 | Nokia E-Series SyncML 1.2 |
Please note that the Software Version is ignored by OCS for all these mobiles.
