1 Analysis of the file format for Vendor Splash Media files
2 =========================================================
4 VSM files start with the bytes 01 00 00 bc which appear to be nothing
5 more than a magic number. Changing any of these first four bytes causes
6 the file to not be recognized as a VSM file.
8 Next are four bytes that give the length of the resource section in
9 little-endian order so 46 0b 00 00 signifies that the length is 0x00000b46
12 The next four bytes are calculated by taking 0xffffffff - (the CRC-32 of
13 the resource section). For my sample VSM file, the CRC-32 of the resource
14 section is 0x896f263c. 0xffffffff - 0x896f263c = 0x7690d9c3 so the four
15 bytes are c3 d9 90 76.
17 The Vendor ID takes the next two bytes. Remember that little-endian
18 order is used, so 36 01 is used to represent the vendor id 310 for Wind
19 Italy. The Vendor ID MAY be changed without affecting the file signature
22 The next two bytes are always zero.
24 There is a single byte value of unknown purpose followed by two bytes
25 of zero followed by a byte that is zero when the unknown value is zero,
26 and one when the unknown value is non-zero.
28 There are eight bytes of zero before the resource section begins. This
29 may be reserved for future use.
31 The resource section may be empty, but most often it contains
32 resources. Each resource starts with two bytes that specify the resource
33 type, followed by a two byte resource length value, followed by the
34 resource data. If the last byte of the resource falls on an even-numbered
35 address offset (assuming the first byte in the file is considered offset
36 zero) then there is a pad null byte between the two resources. The pad
37 byte is not figured into the length of either resource, but is included in
38 the value for the total resource section length found in the file header.
40 The resouces may be listed in any order, however changing any byte in the
41 resource section including resource order will cause the file signature
44 Following the resource section there may or may not be a footer and
45 signature. The footer is the byte sequence: 1F 2D C8 D7 33 00 00 00 80
46 00 00 00. I am not sure of the function of the first eight bytes, but I
47 believe the 80 00 specifies that the signature is of length 0x0080 or
48 128 bytes. There are two null bytes followed by a 128 byte (1024 bit)
51 The following table lists the values to use to define a field type
52 followed by a name for each. There are also some values for flags listed
53 after the field for which they are used.
55 0x0 FIELD_BITMAP_1_DATA
56 0x1 FIELD_BITMAP_1_TIMEOUT
57 0x2 FIELD_BITMAP_2_DATA
58 0x10 FIELD_ENGINEERING_UNIT
59 0x11 FIELD_SUPPRESS_SOS
61 0x14 FIELD_EVALUATION_UNIT
62 0x15 FIELD_SUPPORT_DIRECT_DIAL_SEND
63 0x16 FIELD_ONS_RENDER_MODE
64 0x17 FIELD_DISABLE_VOLUME_BOOST
65 0x18 FIELD_DISABLE_BLACKBERRY_PROTECTION_MODE
66 0x1000 FIELD_WELCOME_MESSAGE_SUBJECT_ISO8859
67 0x1001 FIELD_WELCOME_MESSAGE_BODY_ISO8859
68 0x1002 FIELD_WELCOME_MESSAGE_FROM_ISO8859
69 0x1003 FIELD_WELCOME_MESSAGE_SUBJECT
70 0x1004 FIELD_WELCOME_MESSAGE_BODY
71 0x1005 FIELD_WELCOME_MESSAGE_FROM
72 0x1100 FIELD_DEVICE_MESSAGE_SUBJECT
73 0x1101 FIELD_DEVICE_MESSAGE_BODY
74 0x1102 FIELD_DEVICE_MESSAGE_FROM
75 0x1200 FIELD_TOP_TIPS_MESSAGE_SUBJECT
76 0x1201 FIELD_TOP_TIPS_MESSAGE_BODY
77 0x1202 FIELD_TOP_TIPS_MESSAGE_FROM
78 0x2000 FIELD_ESCREEN_HELP_MSG
79 0x3000 FIELD_PROVISIONING_IP
80 0x3001 FIELD_PROVISIONING_DEST_PORT
81 0x3002 FIELD_PROVISIONING_SRC_PORT
82 0x3003 FIELD_PROVISIONING_APN
83 0x3004 FIELD_PROVISIONING_DEVICE_CLASS
84 0x3005 FIELD_PROVISIONING_APN_USERNAME
85 0x3006 FIELD_PROVISIONING_APN_PASSWORD
86 0x3007 FIELD_PROVISIONING_FLAGS
87 0x1 FLAG_PROVISIONING_DONT_SEND_MSISDN
88 0x2 FLAG_PROVISIONING_DONT_SEND_ICCID
89 0x4 FLAG_PROVISIONING_SEND_SPN
90 0x8 FLAG_PROVISIONING_RIM
91 0x10 FLAG_PROVISIONING_SEND_EMPLOYEE_ROLE_FEATURE_INFO
92 0x20 FLAG_PROVISIONING_DONT_SEND_AIRTIME_USAGE_STATS
93 0x40 FLAG_PROVISIONING_INFO_LEVEL_1
94 0x80 FLAG_PROVISIONING_INFO_LEVEL_2
95 0x3100 FIELD_2ND_PROVISIONING_IP
96 0x3101 FIELD_2ND_PROVISIONING_DEST_PORT
97 0x3102 FIELD_2ND_PROVISIONING_SRC_PORT
98 0x3103 FIELD_2ND_PROVISIONING_APN
99 0x3104 FIELD_2ND_PROVISIONING_DEVICE_CLASS
100 0x3105 FIELD_2ND_PROVISIONING_APN_USERNAME
101 0x3106 FIELD_2ND_PROVISIONING_APN_PASSWORD
102 0x3107 FIELD_2ND_PROVISIONING_FLAGS
103 0x3500 TCP_APN_DEFAULT_APNNAME
104 0x3501 TCP_APN_DEFAULT_USERNAME
105 0x3502 TCP_APN_DEFAULT_PASSWORD
106 0x3600 FIELD_CDMA_IIF_APN
107 0x3601 FIELD_CDMA_IIF_APN_USERNAME
108 0x3602 FIELD_CDMA_IIF_APN_PASSWORD
109 0x3800 FIELD_PRIMARY_WIRELESS_ACCESS_FAMILY
114 0x4000 FIELD_BRANDING_WAP_ICON
115 0x4001 FIELD_BRANDING_TUNE
116 0x4002 FIELD_BRANDING_TUNE_NAME
117 0x4003 FIELD_BRANDING_KEY
118 0x4004 FIELD_BRANDING_TUNE_MIDI
119 0x4005 FIELD_BRANDING_WAP_SPLASH
120 0x4006 FIELD_BRANDING_TUNE_CONTENT_DATA
121 0x4007 FIELD_BRANDING_TUNE_CONTENT_TYPE
122 0x4100 FIELD_BRANDING_BROWSER_ICON_0
123 0x4101 FIELD_BRANDING_BROWSER_ICON_1
124 0x4102 FIELD_BRANDING_BROWSER_ICON_2
125 0x4103 FIELD_BRANDING_BROWSER_ICON_3
126 0x4104 FIELD_BRANDING_BROWSER_ICON_4
127 0x4105 FIELD_BRANDING_BROWSER_ICON_5
128 0x4106 FIELD_BRANDING_BROWSER_ICON_6
129 0x4107 FIELD_BRANDING_BROWSER_ICON_7
130 0x4108 FIELD_BRANDING_BROWSER_ICON_8
131 0x4109 FIELD_BRANDING_BROWSER_ICON_9
132 0x4200 FIELD_IDLESCREEN_CONTENT_TYPE
133 0x4201 FIELD_IDLESCREEN_CONTENT_DATA
134 0x4202 FIELD_BRANDING_IGNORE_INTEL_SPLASH
135 0x4300 FIELD_BROWSER_UAPROF_URI
136 0x5000 FIELD_HELP_WMLC
137 0x5100 FIELD_PREFERRED_PLMN_FEATURE
138 0x0 VALUE_PREFERRED_PLMN_DISABLED
139 0x1 VALUE_PREFERRED_PLMN_ENABLED
140 0x5200 PHONE_BOOT_URL
141 0x5201 PHONE_BOOT_NAIURL
142 0x5202 BROWSER_DOMAIN_TRUSTED
143 0x5203 BROWSER_PROXY_WDP
144 0x5300 FIELD_CELL_BROADCAST
145 0x5301 FIELD_CELL_BROADCAST_ALWAYS_POPUP
146 0x6000 FIELD_MESSAGE_LIST_OPTIONS_AUTO_ATTACHMENT_DOWNLOAD_ENABLED
147 0x6001 FIELD_MESSAGE_LIST_OPTIONS_AUTO_ATTACHMENT_DOWNLOAD
148 0x6002 FIELD_MESSAGE_LIST_OPTIONS_AUTO_ATTACHMENT_DOWNLOAD_HIGH_SPEED_NETWORK
149 0x7000 FIELD_OMA_CLIENT_PROVISIONING_DOCUMENT
150 0x7010 FIELD_GAN_SECURE_GATEWAY
151 0x7011 FIELD_GAN_CONTROLLER
152 0x7020 FIELD_GAN_ROOT_CERT_1
153 0x7021 FIELD_GAN_ROOT_CERT_2
154 0x7022 FIELD_GAN_ROOT_CERT_3
155 0x7023 FIELD_GAN_ROOT_CERT_4
156 0x7026 FIELD_GAN_WLAN_THRESHOLD
157 0x0 VALUE_GAN_ROVE_THRESHOLD_LOW
158 0x1 VALUE_GAN_ROVE_THRESHOLD_MEDIUM
159 0x2 VALUE_GAN_ROVE_THRESHOLD_HIGH
160 0x7027 FIELD_GAN_SIGNAL_STRENGTH_THRESHOLD
161 0x7028 FIELD_GAN_SIGNAL_QUALITY_THRESHOLD
162 0x7029 FIELD_GAN_PROTOCOL_VERSION
163 0x0 VALUE_GAN_PROTOCOL_VERSION_UMA_1_0_0
164 0x1 VALUE_GAN_PROTOCOL_VERSION_UMA_1_0_1
165 0x2 VALUE_GAN_PROTOCOL_VERSION_UMA_1_0_2
166 0x3 VALUE_GAN_PROTOCOL_VERSION_UMA_1_0_3
167 0x4 VALUE_GAN_PROTOCOL_VERSION_UMA_1_0_4
168 0x5 VALUE_GAN_PROTOCOL_VERSION_3GPP_rev6
169 0x7030 FIELD_WLAN_DISABLED
170 0x7031 FIELD_WLAN_ENTERPRISE_DATA_DISABLED
171 0x7032 FIELD_WLAN_ENTERPRISE_DATA_FLAG_OVERRIDES_IT_POLICY
172 0x7033 FIELD_WLAN_LAYER3_AUTH_KEY
174 Below is a list of Vendor ID values in both hex and decimal.
177 0x65 101 CINGULAR_WIRELESS
178 0x66 102 AT_T_WIRELESS
181 0x69 105 VERIZON_WIRELESS
185 0x6d 109 BELL_MOBILITY
190 0x72 114 T_MOBILE_GERMANY_AUSTRIA
193 0x75 117 BOUYGUES_TELECOM
194 0x76 118 VODAFONE_SFR_FRANCE
195 0x77 119 ORANGE_FRANCE
196 0x78 120 VODAFONE_UK_NETHERLANDS
197 0x79 121 TELCEL_MEXICO
200 0x7c 124 VODAFONE_GERMANY
201 0x7d 125 O2_UK_IRELAND_ISLE_OF_MAN_NETHERLANDS
205 0x81 129 TELEFONICA_SPAIN
206 0x82 130 VODAFONE_SWITZERLAND_SWISSCOM
207 0x83 131 CABLE_WIRELESS_WEST_INDIES
208 0x84 132 VODAFONE_ITALY
209 0x85 133 VODAFONE_SPAIN
210 0x86 134 T_MOBILE_NETHERLANDS
211 0x87 135 CINCINNATI_BELL
212 0x88 136 TELEFONICA_MEXICO
213 0x89 137 VODAFONE_AUSTRIA
214 0x8a 138 VODAFONE_AUSTRALIA_FIJI
215 0x8b 139 VODAFONE_IRELAND
216 0x8c 140 TELENOR_SWEDEN
219 0x8f 143 VODAFONE_NEW_ZEALAND
223 0x93 147 ORANGE_BE_MOBISTAR
224 0x94 148 VODAFONE_HUNGARY
227 0x97 151 WIND_HELLAS_TIM_GREECE
228 0x98 152 VODAFONE_BELGIUM
229 0x99 153 VODAFONE_PORTUGAL
236 0xa0 160 DOBSON_COMMUNICATIONS
237 0xa1 161 VODAFONE_EGYPT
238 0xa2 162 ORANGE_SWITZERLAND
240 0xa4 164 T_MOBILE_SUNCOM
242 0xa6 166 VODAFONE_DENMARK_TDC
243 0xa7 167 VODAFONE_SINGAPORE_M1
244 0xa8 168 VODACOM_SOUTH_AFRICA
245 0xa9 169 T_MOBILE_POLAND
246 0xaa 170 T_MOBILE_CZECH
247 0xab 171 T_MOBILE_HUNGARY
249 0xad 173 MTN_SOUTH AFRICA
250 0xae 174 TIM_CHILE_ENTEL_PCS
251 0xaf 175 ORANGE_SPAIN
252 0xb0 176 VODAFONE_SMARTONE_HONG_KONG
253 0xb1 177 TCS_TELECOMMUNICATION_SYSTEMS
257 0xb5 181 PARTNER_COMMUNICATIONS
258 0xb7 183 ORANGE_ROMANIA
260 0xbc 188 VODAFONE_GREECE
261 0xbd 189 UNITED_STATES_CELLULAR_CORP
263 0xbf 191 VELOCITA_WIRELESS
264 0xc0 192 VODAFONE_CROATIA
265 0xc1 193 VODAFONE_SLOVENIA
266 0xc2 194 VODAFONE_LUXEMBOURG
267 0xc3 195 VODAFONE_ICELAND
268 0xc4 196 VODAFONE_FIJI
269 0xc5 197 VODAFONE_ROMANIA
270 0xc6 198 VODAFONE_CZECH
271 0xc7 199 VODAFONE_BAHRAIN
272 0xc8 200 VODAFONE_KUWAIT
273 0xc9 201 T_MOBILE_CROATIA
274 0xca 202 T_MOBILE_SLOVAKIA
276 0xcc 204 CHINA_MOBILE
279 0xd2 210 PERSONAL_ARGENTINA
280 0xd4 212 ETISALAT_UAE
283 0xd7 215 TELEFONICA_VENEZUELA
284 0xd8 216 TELEFONICA_BRAZIL
285 0xd9 217 ORANGE_ROMANIA
286 0xda 218 KTPOWERTEL_KOREA
287 0xdb 219 ROLLING_STONES
289 0xde 222 VODAFONE_BULGARIA
290 0xdf 223 NEXTEL_INTERNATIONAL
292 0xe1 225 HAWAIIAN_TELCOM_CREDO_MOBILE
293 0xe2 226 VERIZON_MVNO
296 0xe5 229 O2_CZECH_REPUBLIC
297 0xe6 230 HUTCHISON_INDIA
302 0xed 237 VERIZON_WIRELESS_WHOLESALE
303 0xee 238 VODAFONE_TURKEY
304 0xef 239 TELEFONICA_MOROCCO_MEDITEL
306 0xf1 241 ALCATEL_SHANGHAI_BELL
307 0xf5 245 3_UK_ITALY_SWEDEN_DENMARK_AUSTRIA_IRELAND
308 0xf7 247 VODAFONE_ESSAR
309 0xf8 248 CENTENNIAL_WIRELESS
310 0xfa 250 T_MOBILE_AUSTRIA
312 0xff 255 TELECOM_NEW_ZEALAND
313 0x102 258 HUTCHINSON_3G_AUSTRALIA
314 0x103 259 CABLE_&_WIRELESS_TRINIDAD_TOBAGO
316 0x10d 269 TATA_TELESERVICES_INDIA
317 0x10f 271 T_MOBILE_CROATIA
320 0x115 277 MTS_MOBILITY
321 0x116 278 VIRGIN_MOBILE
322 0x118 280 ORANGE_SLOVAKIA
323 0x11a 282 TAIWAN_MOBILE
324 0x11d 285 ORANGE_AUSTRIA
325 0x11e 286 VODAFONE_MALTA
326 0x120 288 BASE_JIM_MOBILE
327 0x127 295 CMCC_PEOPLES
328 0x12a 298 DIGITEL_WIRELESS
330 0x12c 300 SOLO_MOBILE
331 0x12d 301 CARPHONE_WAREHOUSE
332 0x12e 302 20:20_MOBILE_GROUP
333 0x134 308 XL_INDONESIA
334 0x135 309 FIDO_SOLUTIONS