UPDATE: As of iOS 5, you no longer need to do any of this. Without jailbreaking, you can set any AAC audio file to be the sound for any function, right in the Settings app. Just rename the extension of the AAC audio file to .m4r, add it to your iTunes, then sync to your device.

The method below is very much out of date.

This is something that is pretty basic for most other mobile devices, but the iPhone is limited to only 6 different SMS tones. This may change with OS 3.0, who knows, but, I thought I would show you all a way to do this now. For this tutorial, you will need a jailbroken iPhone, with OpenSSH and Winterboard installed. I will be doing this tutorial on a Mac, but the process should be similar in Windows.

First off, let’s start with creating the tone itself. Basically, we need to get whatever sound you want as your SMS tone, converted into a .aif file (if it is not already), then rename that to a .caf file (this is what format the actual iPhone SMS tones are). I just use iTunes, but another free solution is Audacity.

– Get your file into iTunes by double clicking it, or go to File > Add to Library, and then navigate to the file you want to use and double click it. You should now see the file displayed in iTunes. If not, just do a search within iTunes and find it.

– Next, go to Preferences > General, and click on “Import Settings”. Make sure this is set to “AIFF”. Then right click on your file, you should see an option to “Create AIFF version”. Click it. You’ll get  a AIFF duplicate of your file.

screenshot_024 screenshot_04

– Next, still in iTunes, right click on the new file you just created and click “Show in Finder”. From the Finder window, drag the new AIFF to your desktop. This will make it easier to install the file later.

screenshot_05 screenshot_08

– Next, we are going to create a folder and file that the iPhone will recognize as a SMS tone. On your desktop create a new folder and name it whatever your new SMS tone is called. Then create another new folder inside that and name it “UISounds”. It is case sensitive, so watch the spelling. Then drag your new AIFF file into this folder.


– This next part is very important to get it right. Your iPhone comes with 6 default SMS tones. In the file system they are know as “sms-received1.caf” to “sms-received6.caf”. Your new SMS tone is going to replace one of these. Let’s just use the first one, otherwise known as “Tri-tone”. Rename the file you created, including the extension, sms-received1.caf. In OS X, you will get a prompt asking if you really want to use this extension. Click “Use .caf”. This will not permanently delete yout Tri-tone SMS tone. Winterboard will just substitute your new tone.

So the hard work is done. All we need to do now is get the tone onto your phone. You’ll need knowledge of OpenSSH for this next part. If you’re new to OpenSSH, you can search YouTube for a full tutorial, but I’ll go over it briefly. This has to be done over a WiFi network that both your iPhone and your computer are connected to.

– Open up you FTP client of choice. I’m using Filezilla, but any client should work fine. For the host, type in the IP address of your iPhone. The username is “root”, the password is “alpine”, and you want to use port 22. It may take a few tries to get in, so have patience.

– In your local folders, navigate to your desktop, so that you can see the folder we created earlier. In your remote folders you need to navigate to Library > Themes. Then simply transfer your folder from your local to your remote.

Okay, are you still with me? Good, because we’re pretty much DONE! The only thing left to do is make the new SMS tone active. Open Winterboard, on your iPhone. You should see your new tone in the list. Select it, and exit Winterboard. Your iPhone will respring. Once your lock screen comes back up, go into Settings > Sounds > New Text Message, and select “Tri-tone”. You should hear your new tone!

You can do this for all 6 SMS tones, if you like. Just make sure to create separate folders for each, naming the tones sms-received1, sms-received2, and so on, up to 6.

Here’s a brief video demo i whipped up, to help you along: