SonicHANDY archive file (.shy-arh 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.
8.7.29
data field contains actual data:
...
<Data>
<Phonebook>phonebook</Phonebook>
<Message>message1</Message>
<Message>message2</Message>
<Message>message3</Message>
...
</Data>
...
<Phonebook> elementphonebook contains phonebook contacts (name+number) saved automatically when the file was created:
...
<Phonebook>
<Contact>contact1</Contact>
<Contact>contact2</Contact>
...
</Phonebook>
...
...
<Contact>
<Name>name</Name>
<Number>number</Number>
</Contact>
...
name is the name for the contact, and number is the number associated with the name.
Multiple numbers for a contact are created by means of multiple <Contact> elements with the same name.
<Message> element<Message> element:
...
<Message>
<Timestamp>timestamp</Timestamp>
<Type>type</Type>
<From>from</From>
<To>to</To>
<IMSI>imsi</IMSI>
<Status>status</Status>
<Body>body</Body>
<Time>time</Time>
<TimeOfSave>timeofsave</TimeOfSave>
<PDU>pdu</PDU>
<PDUHash>pduhash</PDUHash>
</Message>
...
timestamp is a timestamp of the message, eg. when the message was received. For outgoing messages sent from the device this is usually zeroed out. Same as time field, but in different format. Example: 2008-08-01 15:48:20.
in or out.
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):
...
<TimeOfSave>
<Year>year</Year>
<Month>month</Month>
<Day>day</Day>
<Hour>hour</Hour>
<Minute>minute</Minute>
<Second>second</Second>
</TimeOfSave>
...
pdu contains PDU of the message.