MMS (Advanced)
Introduction
This guide is for you if:
1. you have an BlackBerry OS 7 device on a regular (non-BIS) data plan
and
2. you cannot send MMS (multimedia) messages.
Getting MMS working requires you to split, hex edit, merge and install service books, so read through the instructions and decide whether you’re up to it. I’ve attempted to explain everything as clearly as possible, but it’s a complex process and requires you to follow instructions carefully.
It's worth asking your carrier if they can just enable MMS for you. If they can and will, you don't need this guide.
Notes:
- The process described here may also work on earlier devices with OS 4, 5, and 6, but I don’t have those devices to test.
- Many carriers require you to have a data plan in order to send MMS messages. If you don’t have one, this guide may not help you.
- Depending on your cellular plan, sending MMS messages may involve extra charges.
Preparation: Before You Get Started
Software
First, you need some tools to do the work. Download and install these three programs on your computer:MagicBerry 3.5 (here)
A Hex editor (I like HxD, here)
BlackBerry Desktop (link)
Service Books
You will also need a copy of the T-Mobile service books found here. Extract the contents of the .zip file to a location of your choice.MMS Configuration Information
Once you have the tools and service books, you need to get the MMS configuration information from your cellular carrier.
Specifically, you need three settings: MMS Proxy, MMSC, and APN. Search on Google for something like, “MMS settings for [insert your cellular carrier’s name here]” and you should find them. Note that you also need the port number for the MMS Proxy. It should be there on the settings page.
Note: if the port number for your MMS Proxy is in the 9000s, this process probably won’t work, since your cell carrier may be using the older WAP 1.2 specification. If anyone runs across this, let me know, and I’ll try to help you out.
A Note on MagicBerry
MagicBerry is an .ipd file editor. Service books, like the ones responsible for MMS, are .ipd files. The logical conclusion would be that you could edit service books with MagicBerry. But MagicBerry only shows you certain pre-set fields within the .ipd file. As a result, you can't see or edit a lot of the information in the service book. Even worse, if you do edit a service book file with MagicBerry, that unseen information is not saved, so you end up deleting it and rendering the service book useless.
MagicBerry does have good uses, though: it splits and merges service book files perfectly. In fact, it is the best tool for splitting and merging service books, which is why you downloaded a copy.
Due to MagicBerry’s limitations, you’re going to edit the files with the hex editor.
Let’s get started!
The MMS How-to Guide
Step 1: Split the .ipd Files
Start MagicBerry, click File > Open, and open the tmo_servicebooks.ipd file.
Click Manipulate > Split.
Tick the box for the MMS Config 2.0 file.
Press “Split Selected” enter a file name (and select a directory, so you know where the file is being saved), and press “Save.” Name the file “MMS_Config_20” so that you easily recognize it.
Note: there are "MMS Config" and "MMS Config 2.0" service books in the tmo_servicebooks.ipd file. Make sure you select the 2.0 version.
Step 2: Hex Edit the MMS Config 2.0 File
Now, start your hex editor and open the “MMS_Config_20.ipd” file.
It will look like this, without the highlights and bolding. I’ve added those so that it will be easier to provide instructions on editing.
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 49 6E 74 65 72 40 63 74 69 76 65 20 50 61 67 65 Inter@ctive Page
00000010 72 20 42 61 63 6B 75 70 2F 52 65 73 74 6F 72 65 r Backup/Restore
00000020 20 46 69 6C 65 0A 02 00 01 00 0D 00 53 65 72 76 File.......Serv
00000030 69 63 65 20 42 6F 6F 6B 00 00 00 30 01 00 00 02 ice Book...0....
00000040 0B 00 01 E8 21 11 04 00 01 01 00 00 00 04 00 02 ...è!...........
00000050 00 00 00 00 04 00 17 01 E8 21 11 0F 00 03 4D 4D ........è!....MM
00000060 53 20 43 6F 6E 66 69 67 20 32 2E 30 00 01 00 05 S Config 2.0....
00000070 00 04 00 06 FF FF FF FF 09 00 07 4D 4D 53 20 74 ....ÿÿÿÿ...MMS t
00000080 72 61 6E 73 05 00 08 57 50 54 43 50 55 00 09 01 rans...WPTCPU...
00000090 01 13 32 31 36 2E 31 35 35 2E 31 36 35 2E 35 30 ..216.155.165.50
000000A0 3A 38 30 38 30 08 13 32 31 36 2E 31 35 35 2E 31 :8080 ..216.155.1
000000B0 36 35 2E 35 30 3A 38 30 38 30 0D 22 68 74 74 70 65.50:8080 ."http
000000C0 3A 2F 2F 32 31 36 2E 31 35 35 2E 31 37 34 2E 38 ://216.155.174.8
000000D0 34 2F 73 65 72 76 6C 65 74 73 2F 6D 6D 73 02 01 4/servlets/mms ..
000000E0 01 03 01 01 04 00 0A 01 00 00 00 04 00 0B 01 00 ................
000000F0 00 00 1F 00 0F 4D 4D 53 20 57 41 50 20 54 72 61 .....MMS WAP Tra
00000100 6E 73 70 6F 72 74 20 53 65 72 76 69 63 65 20 62 nsport Service b
00000110 6F 6F 6B 00 01 00 11 02 04 00 12 00 00 00 00 04 ook.............
00000120 00 18 76 6D D8 48 46 00 16 01 00 0A 03 0C 00 09 ..vmØHF.........
00000130 41 6E 79 20 6E 65 74 77 6F 72 6B 00 04 00 06 30 Any network....0
00000140 00 00 00 13 00 03 77 61 70 2E 76 6F 69 63 65 73 ......wap.voices
00000150 74 72 65 61 6D 2E 63 6F 6D 05 00 12 00 00 00 00 tream.com .......
00000160 00 04 00 10 00 00 00 00 04 00 11 00 00 00 00 ...............
Hex Editing Basics
In the HEX editor, the blue numbers don’t matter to you (they’re just column and row labels). Only the black ones are part of the file.
The bytes (the two-character pairs) on the left side are all numbers, expressed in hexadecimal or “base-16”. The same information is expressed in ANSI characters on the right side.
The basics of hexadecimal numbering are that you count as follows:
Base-16 (hexadecimal): 1 2 3 4 5 6 7 8 9 A B C D E F 10
Base-10 (decimal): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
So in the two-character byte pair, 0D = 13, 1F = 31, 50 = 80, etc. If you can figure out those conversions, you’re good. If not, google hexadecimal numbering, and spend some time at a lesson. You need to understand how hex works to do this. There are also decimal to hexadecimal converters online. Use them to check your work, or to do the conversion work for you.
You can edit the file from either side of the hex editor. As you edit the information on one side, you’ll see it automatically changing on the other as well.
It’s easier to edit the information in the green, turquoise, and red fields on the right side.
The information in the grey, yellow, and pink fields must be edited from the left (hex) side, because it’s the hex value that matters, and it shows up as periods or jibberish on the right side. All those “dots” on the right side are not identical when you look over at the left side. They’re actually very different values. The nonsensical letters on the right side are likewise meaningful values on the left side.
It’s not a bad idea to just spend some time playing around in the hex editor before you move on. When you’re done, close the file without saving it, and the changes you make while experimenting won’t be made permanent.
Editing the File
The green blocks: enter your MMS proxy in each one, with the port number following the colon. Add to or delete bytes from the highlighted field if necessary, but whatever you do, do not write over or delete bytes outside the highlighted field! Those bytes contain necessary information, and if they are not there, the service book will not work. The same rule holds true for all of the other edits. You must stay within the highlighted fields. To delete bytes, just press delete. To insert bytes, position the cursor, and go to Edit > Insert Bytes on the menu bar, and choose the number of bytes to insert. If you’re using HxD hex editor, ctrl-z will undo a mistake. It also makes your changes in red, which makes them a little easier to follow. As with all programming, the work has to be perfect. There can be no mistakes. Check everything you do carefully.
The turquoise block: enter the MMSC address here.
The red block: enter your APN here.
The yellow blocks: total number of bytes in the highlighted green, turquoise, or red range that follows. Adjust it when you’ve finished editing. The number must be expressed in HEX of course. Use a decimal to hexadecimal converter online if you prefer that.
The pink blocks: the total number of bytes in the bolded range that follow (again, in hex). Adjust it when you’re finished editing the field.
The grey block: a count of the total number of bytes that follow it. In the original file, the value is 30 01 00 00, which breaks down as: 30(hex)=48 01(hex)=256. The total (48+256) is 304. If the number of bytes following the grey block was less than 256, there would be no 01 in the second place. For example, if there were 226 bytes following the block, the grey block would look like this: E2 00 00 00. When you are finished editing the entire file, go back and adjust the number in the grey block accordingly.
Once you’re done, save the file.
Step 3: Merge the MMS Config 2.0 and Wap Push Config Service Books
Open the “MMS_Config_20.ipd” file in MagicBerry
Once you’ve opened the file, click Manipulate > Merge.
Tick the box for the MMS Config 2.0 file.
On the right side of the “Merge” window, where it says, “Choose second IPD file” press the button with the three dots.
Choose the tmo_servicebooks.ipd file.
Tick only the box for the “Wap Push Config” service book.
Press “Merge Selected” enter a file name (and select the directory if necessary), and press “Save”.
Close MagicBerry.
Step 4: Backup Your Phone
This is mandatory. You’ll need the backup file for step 6.
You need to have BlackBerry Desktop installed on your computer. If you haven’t done that yet, do it.
Connect your BlackBerry device to your computer with a USB cable. If BlackBerry Desktop does not start automatically, start it.
Do a backup. Just hit “Back up now” and follow the prompts. Do a full backup. Once you’re done, go to step 5.
Step 5: Merge the combined MMS Config 2.0/Wap Push Config service book file with your existing service books
Open MagicBerry.
Press File > Open and at the bottom of the Open dialogue window beside the File name box, change “IPD Files (.ipd)” to “BBB Files (.bbb)”. Navigate to the folder where you stored your backup, and open it. It might take a while to open.
Click Manipulate > Merge.
Go down the list on the left hand side and tick the checkboxes for the service book entries (they will be way down). If there are service books listed for MMS Config or Wap Push Config, uncheck those boxes.
On the right side of the “Merge” window, where it says, “Choose second IPD file” press the button with the three dots. Choose your merged MMS Config 2.0/Wap Push Config file.
Press “Merge Selected”, enter a file name (and select the directory if necessary), and press “Save”.
Optional: You can merge the newly created file again with any other service books you may need – such as the Anworm service books for the browser mentioned in my thread on CrackBerry. Just follow the process used in step 3.
Step 6: Install the Service Books to your phone
Connect your BlackBerry to your computer with a USB cable if it isn’t still connected.
On your BlackBerry, go to Options > Device > Advanced System Settings > Service Book.
Hold down the “Alt” key and press S B E B. You should see a message that says, “Legacy SB Restore Enabled.” Press Okay.
On your computer, open BlackBerry Desktop.
Go to Device > Restore.
Press “Change” and navigate to the folder with the merged .ipd file you created. Press “OK.” You should now see the file listed in the Restore window.
Click on the merged .ipd file you created to select it.
Under the heading “Select Data to Restore”, select “Select Device Data and Settings” and then tick the box for “Service Book.” This step is really important. Make sure it's done right. If you screw it up you could end up wiping a lot of settings and data.
Press “Restore” and answer “Yes” to the confirmation dialogue.
Close the BlackBerry Desktop software, disconnect your device, and do a battery pull to reboot.
Voila! If everything went well, you should have MMS capabilities. Test your ability to send and receive multimedia by sending yourself a picture message. You should receive the message within about 10 seconds.
If it doesn’t work, go back and make sure EVERYTHING in the file is done perfectly. If you find a problem, fix it, merge the files again, and reinstall the service books.