Saturday, March 14th, 2009 | Author: pluc | Views: 21,684

You’ve all been annoyed at the default iPhone sounds sooner or later. They’re pretty ordinary, I’ll agree with you. One of the extremely useful features of JailBreaking your device is that you have the power to change the default sounds for pretty much any event. Today, I’ll show you how to replace your default SMS tones with custom ones of your choosing. In order to do so, you’ll need a jailbroken iPhone (running 2.x), Cydia, OpenSSH and optionally WinterBoard. You’ll also need the audio file you want to use (obviously) an SSH client (ideally a graphical SFTP frontend like FireFTP) and an audio editing application like Audacity. Ready? Here goes!

Step 1: Edit your sound file

Since we’re looking to replace a SMS tone, the sound file you choose should be short, ideally 3-4 seconds long. Personally, I was annoyed that the iPhone (and many other mobile devices) didn’t come with a simple “beep” alert, so I’ll be using two simple beep sounds in the example. You can download and/or preview them at the bottom of this post. If the sound you want is part of a longer track, you can easily edit it out with Audacity or any other audio editing application. I’ll assume you have your sound file ready. One thing that’s important in this step is that your sound file should be saved under the Audio Interchange File Format or AIFF. In order to do so, export your original file as an uncompressed .aiff file. Should be easy enough. If you dont have an AIFF export feature or Audio Converter program, dont worry, you can use iTunes to do the conversion. Import the MP3 file to iTunes. Goto iTunes -> Preferences (for Mac) or Edit -> Preferences (for PC). Navigate to Advanced -> Importing tab and set the “Import Using:” to AIFF then import the file. Once that’s completed, locate your sound file and replace the extension from .aiff to .caf (Apple Core Audio Format). At the end of this step, you should be left with a .caf file of a few kilobytes.

Step 2: Package your custom tones (optional)

This is where WinterBoard comes in handy. WinterBoard basically allows you to package your customizations in order to avoid replacing the iPhone’s default files. You can replace pretty much anything you might ever need to without modifying a thing and using WinterBoard’s nifty little interface to enable/disable your modifications. If you don’t have or don’t want WinterBoard, skip to step 3. Otherwise, read on!

Making a WinterBoard package is rather easy. You simply have to respect a given structure and place your custom files according to their original locations. There’s a great introduction/tutorial on how to make your own WinterBoard theme over at ModMyi if you’d like to know more. Start off by creating a folder on your desktop. Call it whatever you wish your WinterBoard package’s name to be; I’ll use “pLSounds”. Go into that folder and create another folder, name it “UISounds” (case sensitive). Put the .caf file resulting from step 1 into this folder (UISounds). What this will result in is simple. The iPhone’s default file structure places every sound file in /System/Library/Audio/UISounds – WinterBoard adds symbolic links in /Library such as “Themes”, “Ringtones” and “Wallpapers” pointing to WinterBoard’s file repository in /var/stash. In simple words, everything you will put in your package’s “UISounds” directory will, once activated, emulate overwriting the iPhone’s default “/System/Library/Audio/UISounds” folder, therefore allowing you to use your own custom data. Now, for SMS tones, the iPhone’s default files are named like this:

  1. /System/Library/Audio/UISounds/sms-received1.caf (Tri-tone)
  2. /System/Library/Audio/UISounds/sms-received2.caf (Chime)
  3. /System/Library/Audio/UISounds/sms-received3.caf (Glass)
  4. /System/Library/Audio/UISounds/sms-received4.caf (Horn)
  5. /System/Library/Audio/UISounds/sms-received5.caf (Bell)
  6. /System/Library/Audio/UISounds/sms-received6.caf (Electronic)

So in order to be able to use the custom SMS tones you create, you need to respect the default file nomenclature. If you’ve created two custom tones, name them “sms-received5.caf” and “sms-received6.caf”. Once enabled in WinterBoard, they will replace the Bell and Electronic tones in your iPhone’s Sound Settings panel.

Step 3: Upload your data

The rest is rather obvious and simple: you’ve created a WinterBoard package containing your custom SMS tones, now all you need is to send it on your iPhone! In order to do so, you will need to have OpenSSH installed and enabled on your iPhone. OpenSSH allows you to connect securely to your device and perform actions typically available on a BSD platform. To make it easier, we’ll transfer the files using the SFTP protocol (SSH File Transfer Protocol or Secure File Transfer Protocol). First you’ll need to figure out your iPhone’s IP address; this is much easier when you’re on a local network you control. To figure out your IP address, either use available applications (such as BossPrefs), check your router’s DHCP client table or log in to your iPhone via Terminal and type “ifconfig en0 | grep inet” at the prompt. Connect to it via SFTP and browse to the the appropriate directory (WinterBoard: /Library/Themes – without WinterBoard: /System/Library/Audio/UISounds) and upload your package’s directory or your caf files. If you’re not using WinterBoard, make sure to create backups of all the files you will overwrite just in case. Voila! You can now close everything, fire up WinterBoard on your iPhone and you should see your package. Enable it and check out the Sound Settings to set your custom SMS tone. Easy huh?

Sources and Downloads

  1. How to make your own WinterBoard theme tutorial at ModMyi
  2. Amplify UK

You can download the two audio files I’ve used for my custom SMS tones here in CAF format.



Category: Mobile
You can leave a response, or trackback from your own site.

11 Comments

  1. Hi you helped me do this, but I made things very simple, JB iphone 3g, with OS 3.0. The tools I used to make custom SMS tones, converted file de aiff, then changes to .caf, using the same name sms-receivedx.caf, I installed a sms ringtones from winterboard, dark knight, with iphone browser 1.91 I wen directly to themes, where winterboard places the custom themes, I went to the dark knight folder and backed up one of the sms ringtones, and placed my normal one there, it worked perfect. Its just another way to do this, but your information lead me to the way. This method you dont need to create any folders.

  2. @Jose Yes, that works, but if you want to remove your ‘Dark Knight’ theme, you’ll lose your sound as well. Hence why it’s useful to create a package on its own, solely for your custom sounds. Glad I could help.

  3. Where is this /System/Library/ file/folder everyone keeps talking about? I’ve searched and searched and cannot find it. Can someone please tell me where to locate it? Thanks so much…

  4. @C That’s the iPhone file structure. You need SSH to connect to it and if you’re not comfortable using scp or a command line interface, depending on the OS you run there are some graphical UI to use with SFTP/SCP protocols. If that doesn’t make sense to you, you probably shouldn’t play with jailbreaking and files too much, you can easily damage your iPhone (on a benign level, but still manage to seriously fuck shit up)

  5. I tried it out using the DiskAid program

  6. I’ve done what was said.  When I go to settings, sounds, new text message, i’ve selected  for example “horn”.  Which is the custom tone i’ve created as “sms-received4.caf”  It plays the sound i’ve just created.   However, when I receive a text message, the original sound “horn” is played and not the custome tone i’ve created.  ? any help appreciated. Thanks

  7. nevermind, i got it to work.

  8. Joseph,
                     I’ m having the same issue. I can hear the sms tone in settings, but when I get a text, it’s the default tone. What can I do? Thanks

  9. same issue

  10. Krysten Alongi 
    May 9th, 2010 at 2:10 pm

    Your blog its amazing thx a lot !

  11. hey, i know how to SSH im using WINSCP, and when I go to root/library I cant find audio or UIsounds.. idk if u can helpme

Leave a Reply