Posts Tagged MMS

HOWTO :: Send and receive MMS on Galaxy Nexus / SoftBank

As usual, MMS support in the international version of Galaxy Nexus does not work on SoftBank network as is, and requires a bit of tinkering. We gonna need usual toolset: phone, USB cable, adb, apktool and a text editor. There are a few explanations on the web, but they talk about connecting Nexus to the iPhone APN, so it won’t work if your previous smartphone was not iPhone. Here’s a procedure if you had Android device before.

Copy files from the phone

$ adb pull /system/app/Mms.apk
$ adb pull /system/framework/framework-res.apk

Unpack the framework and Mms.apk

$ apktool if framework-res.apk
$ apktool d Mms.apk

Make changes

The file we are interested in is res/xml/mms_config.xml, you may want to change it directly, but your phone might stop working on some other network, so I prefer another approach. We can create separate file, which will work on SoftBank network only. This new file should be called res/xml-mcc440-mnc20/mms_config.xml, 440 is the country code for Japan, and 20 is SoftBank network. The file contents is the following:

<?xml version=”1.0″ encoding=”utf-8″?>
<mms_config version=”4″>
<bool name=”enabledMMS”>true</bool>
<int name=”maxMessageSize”>307200</int>
<int name=”maxImageHeight”>768</int>
<int name=”maxImageWidth”>1024</int>
<int name=”defaultSMSMessagesPerThread”>500</int>
<int name=”defaultMMSMessagesPerThread”>150</int>
<int name=”minMessageCountPerThread”>10</int>
<int name=”maxMessageCountPerThread”>5000</int>
<string name=”uaProfUrl”></string>
<int name=”recipientLimit”>-1</int>
<int name=”smsToMmsTextThreshold”>4</int>
<bool name=”enableMultipartSMS”>false</bool>
<bool name=”enableSlideDuration”>true</bool>
<int name=”maxMessageTextSize”>-1</int>
<string name=”userAgent”>SoftBank/1.0/X01T/TJ001</string>

You should not copy/paste the code snipped, just change the bold parts (URL and UserAgent) using your phone file as a boilerplate.

Rebuild .apk

First we run apktool to rebuild the resource files, and then zip contents of build/apk folder and sign the result

$ apktool b Mms
$ cd Mms/build/apk
$ zip Mms.apk *
$ java -jar signapk.jar -w testkey.x509.pem testkey.pk8 Mms{,-signed}.apk

Put results back to the phone

If you phone does not allow pushing files to /system/app, you have to download and use Superboot (see my previous post for details. Otherwise, its as simple as:

$ adb push Mms-signed.apk /system/app/Mms.apk
4760 KB/s (434346 bytes in 0.089s)

After reboot, please, don’t forget to input proper APN settings for Open SoftBank.


Just in case you don’t like to tinker with Android internals, here’s a ready-to-use download, SBM_Galaxy_Nexus_4.0.2_ICL53F_Mms.apk. This file should be put into your phone as described in “Put results back to the phone” part. It is intended to be used on Android 4.0.2, specifically version ICL53F, and may not work on other versions. As soon as I upgrade to 4.0.4, I will put a new file for download in this topic as well. Well, here’s SBM_Galaxy_Nexus_4.0.4_IMM76I_Mms.apk for version 4.0.4. And also SBM_Galaxy_Nexus_4.1.1_JRO03C_Mms.apk for Jelly Bean 4.1.1.

Final thoughts

There is still one problem left, Mms.apk requires working internet data connection to download MMS contents. As I have remembered from my previous HTC phone, it was possible (on Froyo) to keep data connection off, and Mms application will enable it for a short period of time just to download MMS messages. Unfortunately, this does not work on Galaxy Nexus yet.

, ,

No Comments

Simple MMS introduction for Softbank users

There are SMS messages, which can contain about 160 characters. Japanese uses multi-byte encodings, so the actual character count is much lower. Also, people like to send pictures taken with the built-in cameras, music and other things which don’t fit well into 160 byte limit.

Therefore, MMS (multimedia messaging service) was born. It works like this: you get a short SMS message using SMS protocol, and then your phone has to use data connection to receive the rest of the message from the server. SMS messages work everywhere, but ways and protocols for retrieving the actual message are different from one provider to another. If these protocols are not followed, only “subject” line of MMS message will get through, which is actually delivered via usual SMS.

This is why we need specially tailored application to receive MMS messages on softbank, another specially tailored app to receive MMS messages on DoCoMo and so on. Also, this is the reason, why originally iPhone did not support MMS (it was added about a year later) and why HTC Desire still (oficially) does not support MMS, however there are a few versions of custom-made software, which, more or less, aleviate this problem.

, ,

No Comments