Add extra cleanup sauce to buildgen.sh for gettext mess
[barry.git] / doc / vsm / VSM_analysis.txt
blob0419819c9b3579fd58aa3fe6464cf18e76ff8e92
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
10 or 2886 bytes long.
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
20 or the checksum.
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
42 to be invalid.
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)
49 signature.
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
60 0x13    FIELD_BETA_TEST
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
110 0x1     WAF_3GPP
111 0x2     WAF_CDMA
112 0x3     WAF_WLAN
113 0x4     WAF_IDEN
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.
175 0x01    1       RIM
176 0x64    100     T_MOBILE_US
177 0x65    101     CINGULAR_WIRELESS
178 0x66    102     AT_T_WIRELESS
179 0x67    103     NEXTEL
180 0x68    104     SPRINT_PCS
181 0x69    105     VERIZON_WIRELESS
182 0x6a    106     ALLTEL
183 0x6b    107     ROGERS_AT_T
184 0x6c    108     MICROCELL
185 0x6d    109     BELL_MOBILITY
186 0x6e    110     BT_CELLNET
187 0x6f    111     O2_GERMANY
188 0x70    112     DIGIFONE
189 0x71    113     TELFORT
190 0x72    114     T_MOBILE_GERMANY_AUSTRIA
191 0x73    115     TIM_ITALY
192 0x74    116     HUTCHISON
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
198 0x7a    122     TELSTRA
199 0x7b    123     T_MOBILE_UK
200 0x7c    124     VODAFONE_GERMANY
201 0x7d    125     O2_UK_IRELAND_ISLE_OF_MAN_NETHERLANDS
202 0x7e    126     TELUS
203 0x7f    127     SMART
204 0x80    128     STARHUB
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
217 0x8d    141     CSL
218 0x8e    142     ORANGE_UK
219 0x8f    143     VODAFONE_NEW_ZEALAND
220 0x90    144     SINGTEL
221 0x91    145     GLOBE
222 0x92    146     OPTUS
223 0x93    147     ORANGE_BE_MOBISTAR
224 0x94    148     VODAFONE_HUNGARY
225 0x95    149     BHARTI
226 0x96    150     KPN_NL
227 0x97    151     WIND_HELLAS_TIM_GREECE
228 0x98    152     VODAFONE_BELGIUM
229 0x99    153     VODAFONE_PORTUGAL
230 0x9a    154     TIM_BRAZIL
231 0x9b    155     BT_MOBILE
232 0x9c    156     EARTHLINK
233 0x9d    157     AETHER
234 0x9e    158     E_PLUS
235 0x9f    159     BASE
236 0xa0    160     DOBSON_COMMUNICATIONS
237 0xa1    161     VODAFONE_EGYPT
238 0xa2    162     ORANGE_SWITZERLAND
239 0xa3    163     RIM_WLAN
240 0xa4    164     T_MOBILE_SUNCOM
241 0xa5    165     MAXIS
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
248 0xac    172     AT_T_SPRINT
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
254 0xb2    178     AVEA
255 0xb3    179     FAST_100
256 0xb4    180     TURKCELL
257 0xb5    181     PARTNER_COMMUNICATIONS
258 0xb7    183     ORANGE_ROMANIA
259 0xba    186     TELKOMSEL
260 0xbc    188     VODAFONE_GREECE
261 0xbd    189     UNITED_STATES_CELLULAR_CORP
262 0xbe    190     MOBILINK
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
275 0xcb    203     NORTEL
276 0xcc    204     CHINA_MOBILE
277 0xcd    205     MOVILNET
278 0xd1    209     SYMPAC
279 0xd2    210     PERSONAL_ARGENTINA
280 0xd4    212     ETISALAT_UAE
281 0xd5    213     CBEYOND
282 0xd6    214     AMX
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
288 0xdc    220     DOCOMO
289 0xde    222     VODAFONE_BULGARIA
290 0xdf    223     NEXTEL_INTERNATIONAL
291 0xe0    224     PCCW_SUNDAY
292 0xe1    225     HAWAIIAN_TELCOM_CREDO_MOBILE
293 0xe2    226     VERIZON_MVNO
294 0xe3    227     MOBILY
295 0xe4    228     BWA
296 0xe5    229     O2_CZECH_REPUBLIC
297 0xe6    230     HUTCHISON_INDIA
298 0xe7    231     CELCOM
299 0xea    234     DIALOG
300 0xeb    235     XL
301 0xec    236     RELIANCE
302 0xed    237     VERIZON_WIRELESS_WHOLESALE
303 0xee    238     VODAFONE_TURKEY
304 0xef    239     TELEFONICA_MOROCCO_MEDITEL
305 0xf0    240     INDOSAT
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
311 0xfe    254     OI_BRAZIL
312 0xff    255     TELECOM_NEW_ZEALAND
313 0x102   258     HUTCHINSON_3G_AUSTRALIA
314 0x103   259     CABLE_&_WIRELESS_TRINIDAD_TOBAGO
315 0x10c   268     BMOBILE
316 0x10d   269     TATA_TELESERVICES_INDIA
317 0x10f   271     T_MOBILE_CROATIA
318 0x111   273     BT_ITALY
319 0x112   274     1&1
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
329 0x12b   299     SK_TELECOM
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
335 0x136   310     WIND_ITALY