Custom iPhone Ringtones: OSX


Before I get into the instructions, I must give credit where credit is due. This guide was made by speedyAZ. Because of the hard work of a couple people, “geohot”, “nightwatch” and “ziel” in particular, and the rest of the #iphone-dev crew, we have two programs and a method that make this possible. The programs are called jailbreak and iPhoneInterface. Original instructions for how to do this were provided to me by “JavaCoderEx” which I then redrafted and illustrated. I’d also like to thank the following people for helping me add the instructions that allow sync ability to remain unbroken: “chews”, “Christian”, “lunatixcoder”, “pdb” and “TkN” for pointing out this method, explaining it to me, and for tech checking these instructions numerous times to make sure they were right. This obviously makes this modification so much more worth it. Before, people gave up the ability to sync just to have a ringtone!

Custom ringtones are one of the biggest requests by people that want to modify their iPhone to make it unique. This page will teach you how to add your own files to the iPhone to use as a ringtone. The only thing preventing Windows users from doing this is the lack of someone to write the interface program.


  • Following these instructions may brick (kill) your iPhone making it completely unusable. If your iPhone becomes unresponsive to restoration via iTunes, then you may have to seek repair or replacement through Apple Inc., or AT&T. However, everyone we know of has been able to restore their iPhone fully by using iTunes. Pay careful attention to the instructions here. We are NOT responsible for your results. You are assuming all risks. These instructions were completed successfully by many people before being posted here, but we cannot account for everyone’s individual computer system configurations or ability to follow directions.Step 1. Make sure your iPhone is docked and fully charged.


  • Step 2. From iTunes, make sure you have a backup of your phone and all settings (if you want to keep them). Simply connect the iPhone to your computer and iTunes will sync your iPhone. Automatically backed-up information includes text messages, notes, call history, contact favorites, sound settings, widget settings, certain network settings, and other preferences.

    Step 3. Quit iTunes. Don’t just minimize it, shut it down.

    Step 4. Turn on the iPhone.

    Step 5. Download the software restore file from Apple. Click here. Once you have downloaded the file, rename the extension (.ipsw) to (.zip). Your browser may just decompress the file for you and leave a folder called iPhone1,1_1 on your desktop.

    Step 6. Create a folder called phonedmg in your home folder.


    Step 7. Place the software restore files you downloaded from Apple (the iPhone1,1_1 folder) into the phonedmg folder. Do not place the whole folder in here, just what’s in the folder.


    Step 8. Download the “jailbreak” program here. Put these files into the phonedmg folder.


    Step 9. Download the iPhoneInterface (v 0.3.3) program here. Put these files into the phonedmg folder.


    Step 10. Go to your Applications folder and then go into the Utilities folder and find the program called Terminal. You should move this to your dock for easier access.


    Step 11. Start Terminal and type: cd phonedmg Then press the enter key.


    You’ll see you are now in the phonedmg directory where all of your files that you downloaded earlier should be.


    Step 12. Type: ./jailbreak Then press the enter key. You should see the text “Looking for iPhone…” If you don’t, then you did something wrong. When you run jailbreak with the iPhone on you’ll get this:


    It will next say

    • Sending Files…
    • If iTunes is running, please close it.
    • Hold the POWER and HOME buttons for approximately 25s.
    • Release when the display says ‘Please Connect to iTunes’.

    Step 13. Press and hold the Home button and the Sleep/Wake button for a full 25 seconds.


    The iPhone will restart in recovery mode. At this point the iTunes program will open, so close it.


    Go back to the Terminal window running jailbreak and press and hold the CTRL key while pressing the C key. You have to do this because jailbreak tells you to go into recovery mode, and doesn’t give you a prompt to kill the shell process. (Note if you have iTunes 7.3.1 it won’t launch automatically when you go into recovery mode. Jailbreak will continue normally and you won’t have to use CTRL C).

    At the new prompt type ./jailbreak Then press the enter key.

    A few additional lines of text will appear as the iPhone is modified.

    • Sending More Files…
    • Booting iPhone…
    • Waiting for iPhone to finish booting…
    • Moving files into place…
    • Cleaning up…
    • Rebooting iPhone…

    Step 14. Now copy your ringtone to the phonedmg folder. Make sure the file is in .m4a format (I’ve heard .mp3 also works but they must be created from within iTunes – some special encoding method?) In this example I’ve put the song myringtone.m4a here.


    Step 15. Back in the Terminal type: ./iPhoneInterface Then press the enter key.


    Step 16. Now type mkdir /var/root/Library/Ringtones Then press the enter key.
    Now type: cd /var/root/Library/Ringtones Then press the enter key.

    Step 17. Next type: putfile myringtone.m4a Then press the enter key. Note if you want to delete a ringtone type: rmdir myringtone.m4a (or whatever your file name is).

    If you would also like to replace system sounds follow the instructions within this bordered area, otherwise continue below to continue with ringtone replacement.These instructions were contributed by “Christian” “Ksilebo”, and “TkN”. For the ultimate in customization, you can follow these steps to change your system sounds for new mail, new sms, new voicemail, et cetera. Remember you will be updating the system sounds, you can always restore them with a full restore or one by one by using the backups in the 39.dmg file.The default system files in /System/Library/Audio/UISounds
    Voicemail.cafStep 17a. Choose a file, convert it to .aif using QuickTime and rename the .aif to .caf. The .caf sould have the exact same name as the system file you are trying to replace (i.e. yourCustom.aif becomes new-mail.caf).Step 17b. Put the new .caf file in the phonedmg folder used earlier.Step 17c. In the Terminal type: putfile /System/Library/Audio/UISounds/
    .caf Then press the enter key.

    Now in order to not lose sync ability with iTunes we must replace the Services.plist file with the original one from iTunes.

    Step 18. Download the original Services.plist file from here. You can also get this from the decrypted 39.dmg file, but I won’t explain this here.

    Step 19. Put the Services.plist file inside the phonedmg folder.

    Step 20. Type: cd /System/Library/Lockdown Then press the enter key.

    Step 21. Type: putfile Services.plist Then press the enter key.

    Step 22. Type: exit Then press the enter key.

    Step 23. Turn off the iPhone then turn it back on. Go to: Settings, Sounds, Ringtone, and select your new ringtone.

    If you find the iPhone acting weird, just put it into recovery mode (press and hold the Home button and the Sleep/Wake button for a full 25 seconds), then launch iTunes and allow it to restore the iPhone.


3 Responses

  1. […] Custom iPhone Ringtones: OSX « hackTech Blog Custom ringtones are one of the biggest requests by people that want to modify their iPhone to make […]

  2. I am pissed of there are no REAL applications – just web apps…

    Anyway, there is a list of apps at

  3. […] How To Get Custom Ringtones Into An iPhone Using OSX Custom iPhone Ringtones: OSX […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: