1 BlackBerry SMS Messages Record Format
3 This information is result of over 9000 btool -d Tasks dumps from a *single* BB 8800.
5 RIM 8800 Series Colour GPRS Handheld
6 App Version v4.5.0.81(108), platform 2.7.0.78
8 There are several cases not tested yet, which are hard to catch, i.e. `Pending', etc.
9 information on these incidents is welcomed. Incidentally, some listings here may be inaccurate.
12 Length = const 0x0f bytes
14 00000000: 04 00 x0 x1 40 ?? 44 05 01 00 x2 x3 x4 x5 00 ....@.D........
15 _____ _____ ___________ _____ ___________ __
16 type len var0 index uniqueID
18 type - always 04 00, perhaps SMS uses this but others also do
19 len - length of this record in bytes, including header.
20 var0 - 40 02 44 05/40 01 44 05(according to my 9000+ messages), change but all records keep the same.
21 index - the record number within the data base.
22 determines posting order in the device (That is, if you
23 change sort order, the indices of tasks will be modified.
24 Similarly, if you change the priority or due date of a task
25 the ordinal might change as well.
26 uniqueID - 32byte Integer, unique for each task,
31 The content is divided into 7+ parts, each with a 3byte header:
34 00 2byte size(excluding this header)
37 The field type has 7 possible values, ordered as their appearances:
45 id# var format worked-out meaning(variable)/value(constant)
46 ---- --- ------- ---------- ---------------------------------------
47 00 yes byte yes 00=SENT/DRAFT, 01=RECV
48 01 yes byte yes status flags, 80=SEND ERROR, 40=DELIVERY REPORT ON(!not sure),
49 20=START NEW CONVERSATION, 10=SAVED, 08=DELETED, 01=OPENED
50 02 yes byte yes 00=OLD, 01=NEW
52 04 yes 4byte yes ff 07 00 00=RECV, ff 1f 00 00=SEND ERROR, ff ff 3f 00=DELIVERY SUCCEDDED
53 ff ff ff 01=SENT, ff ff ff 07=WAITING, ff ff ff 7f=DRAFT
54 05 yes 4byte no error id, 00 00 00 00=NO ERROR, 84 34 00 00=Unidentified Subscriber
55 06 yes 8byte yes 8byteInt representing UNIX time(in milliseconds), first 4 bytes=uniqueID
56 07 yes 8byte yes representing sent time(like #06), probably not in UTC.
57 08 yes byte yes Data Coding Scheme: 00=7bit, 01=VCARD, 02=UCS2
58 09 yes 2byte no 00 00=SENT/DRAFT, 04 00=RECV, sometimes all 04 00, probably garbage information
59 0a yes 4byte yes 00 00 00 00=TEXT, 02 00 00 04=SEND AS FAX3, 03 00 00 04=SEND AS FAX4,
60 04 00 00 04=SEND AS VOICE, 05 00 00 04=SEND AS ERMES
61 0b yes 28byte yes 00 00 00 00 00 00 00 00
62 00 00 00 00 00 00 00 00
63 00 00 00 00 00 00 00 00
68 Size: Multiple of 0x8(The multiplier is probably send_times)
72 id# var format worked-out meaning(variable)/value(constant)
73 ---- --- ------- ---------- ---------------------------------------
74 00 yes unknonwn no Unknown
79 Size: Half of the size of field type 09
83 id# var format worked-out meaning(variable)/value(constant)
84 ---- --- ------- ---------- ---------------------------------------
85 00 yes unknown no Unknown
90 Repeat Count: recipient_num
93 id# var format worked-out meaning(variable)/value(constant)
94 ---- --- ------- ---------- ---------------------------------------
95 00 yes 4byte no 00 00 00 00/01 00 00 00/03 00 00 00
96 01 yes string yes current recipient's number
97 02 no byte yes trailing NULL
105 id# var format worked-out meaning(variable)/value(constant)
106 ---- --- ------- ---------- ---------------------------------------
107 00 yes string yes content
113 Content(May be very inaccurate):
115 id# var format worked-out meaning(variable)/value(constant)
116 ---- --- ------- ---------- ---------------------------------------
117 00 yes 3byte no Unknown
118 01 yes byte yes `Sent As', 00=TEXT, 02=FAX3, 03=FAX4, 04=VOICE, 05=ERMES
119 02 no 2byte yes 00 00
120 03 yes byte yes 00=DEFAULT, 04=SEND AS NON-TEXT
121 04 yes 4byte yes 00 00 00 00=SEND AS NON-TEXT, 00 00 00 01=DEFAULT
123 07 yes byte yes 00=DELIVERY REPORT OFF, 01=DELIVERY REPORT ON
124 08 no 2byte yes 00 00
127 Meaning: Possibly Footer
132 id# var format worked-out meaning(variable)/value(constant)
133 ---- --- ------- ---------- ---------------------------------------
134 00 no 8byte yes 00 00 00 00 ff ff ff ff