SonicHANDY archive file (.shya extension) is a UTF-16 encoded XML file.
Here is the overall file syntax:
<?xml version="1.0" encoding="UTF-16"?>
<SonicHANDY>
<Version>version</Version>
<Data>data</Data>
<Hash>hash</Hash>
</SonicHANDY>
<SonicHANDY> is a root element for the whole file.
9.0.0
data field contains actual data:
...
<Data>
<Phonebook>phonebook1</Phonebook>
<Phonebook>phonebook2</Phonebook>
...
<Message>message1</Message>
<Message>message2</Message>
<Message>message3</Message>
...
<Call>call1</Call>
<Call>call2</Call>
...
</Data>
...
Order of the sub-elements in the data field is not strict.
<Phonebook> elementphonebook contains phonebook contacts list for a particular device
...
<Phonebook>
<DeviceID>deviceid</DeviceID>
<Contact>contact1</Contact>
<Contact>contact2</Contact>
...
</Phonebook>
...
deviceid is the SHA-256 hash value representing the ID of the device which owns this phonebook.
...
<Contact>
<Name>name</Name>
<Number>number</Number>
<Location>location</Location>
<Index>index</Index>
</Contact>
...
name is the name for the contact, and number is the number associated with the name.
<Contact> elements with the same name field.
<Message> element<Message> element contains a single SMS message:
...
<Message>
<DeviceID>deviceid</DeviceID>
<Status>status</Status>
<Time>time</Time>
<TimeOfSave>timeofsave</TimeOfSave>
<PDU>pdu</PDU>
<PDUHash>pduhash</PDUHash>
<Timestamp>timestamp</Timestamp>
<Type>type</Type>
<From>from</From>
<To>to</To>
<Body>body</Body>
</Message>
...
deviceid is the SHA-256 hash value representing the ID of the device which owns this message.
new or normal.
...
<Time>
<Year>year</Year>
<Month>month</Month>
<Day>day</Day>
<Hour>hour</Hour>
<Minute>minute</Minute>
<Second>second</Second>
</Time>
...
timeofsave is a timestamp of the moment when the message was saved. Useful when other timestamps are zeroed out, to indicate approximate date/time when the message was sent (for outgoing messages sent from the device).
Same format as the time field.
2008-08-01 15:48:20.
in or out.
<Call> element<Call> element contains a single incoming call ring:
...
<Call>
<Type>type</Type>
<From>from</From>
<DeviceID>deviceid</DeviceID>
<Time>time</Time>
<TimeEnd>timeend</TimeEnd>
<TimeOfSave>timeofsave</TimeOfSave>
<Timestamp>timestamp</Timestamp>
</Call>
...
type indicates whether call is incoming or outgoing: in or out. Currently, only incoming calls are supported.
...
<Time>
<Year>year</Year>
<Month>month</Month>
<Day>day</Day>
<Hour>hour</Hour>
<Minute>minute</Minute>
<Second>second</Second>
</Time>
...
timeend is a timestamp of the moment the call stopped ringing. Same format as the time field.
2008-08-01 15:48:20.
© 2009 Sublimis Solutions. Last modified: 08 January 2009.