Wednesday, October 31, 2007

RingRing 0.8.0

The ultimate iPhone ringtone manager for windows.

Get it here:
http://www.modmyifone.com/forums/downloads.php?do=file&id=1337

Tuesday, October 16, 2007

Free Custom Ringtones on iPhone 1.1.1

Free Custom Ringtones on iPhone 1.1.1

0. Introduction
This method works on Windows and Macs with any version of iTunes. [by “… works …” I mean it should work.] Phone does not need any special treatment like Jailbreak or anything. Instructions below were written using a PC, so all Mac users out there will need to tweak it a little bit to suit their OS. I based my research on a method posted by Cleverboy and mentioned on MacRumors [his method no longer works with new version of iTunes Link].

Things you need:
iPhone 1.1.1
any version of iTunes
iPhone access program like iPhuc. [I use iPhoneBrowser for Windows]

Step 1 - Prepare your ringtone.

Make a ringtone by using your preferred method. Very likely you will be using an MP3 file which is exactly what I did for this tutorial.



Step 2 – Convert your ringtone to AAC.
I use iTunes for that. Add your ringtone to iTunes by either dragging it into your "Library" or using "File->Add File to Library" function.





Notice how it shows up in the "Music" and not in the "Ringtone" section.

Let’s make sure iTunes is configured to convert to AAC. Click on "Edit->Preferences". Click on "Advanced" tab and then on "Importing" tab.



Make sure "AAC encoder" is selected. You can now close this window.

Right click on the ringtone in your library and select “Convert Selection to AAC”



After this you will have two ringtones in your library. The newly created one is the one we will work with. Right click on it and select “Get Info”



Make sure it is an AAC audio file. If it says something else you clicked on wrong file.



Then select "Options" tab and write down the length of the file.



In this case it is 29.333. Make sure you have 3 digits in the last section. Sometimes iTunes will display something like 11.1 or 11.11. You just need to add zeros at the end. So 11.1 is 11.100 and 11.11 is 11.110.

Hit Ok and close that window. Right click on your ringtone again and select “Show in Windows Explorer”. [it will probably say “Show in Finder” for you Mac users].



You might want to copy this file somewhere else since it will be your ringtone but it is not necessary.



Step 3 – Load it on the iPhone.

Start up your iPhone access program and connect to the iPhone. Transer your ringtone [the one with m4a extension to your "iTunes_Control/Ringtones" folder [on jailbroken phones it will be somewhere else, you go find it].



Step 4 – Create a spoof

Now we need to make iPhone think that this ringtone is legit and in order to do that we need a spoof file. You can do that by right clicking anywhere on your desktop or any explorer windows and choosing "New->Text Document".



Rename it to "spoof.m4r" [if you cant see the extension you have to enable the functionality by clicking on "Tools->Folder Options->View" and unchecking “Hide extensions for known file types”.



Then transfer the spoof file into the same place you transferred your ringtone to on the iPhone.



You just need one spoof files for all the ringtones. I will explain more in the conclusion.

Step 5 – Modifying Ringtones.plist

Using your iPhone access program navigate to "iTunes_Control/iTunes" and save "Ringtones.plist" file on your computer.



Open "Ringtones.plist" using Wordpad or any other text editor of your choice [that means you Mac users]. And make it look like the one below.



You have to understand what is going on here in order to make your own ringtones. See the two sections one for "ringtone.m4a" and the other for "spoof.m4r"? Every ringtone you create will need a double entry like that. Let’s look at the "spoof.m4r" first. You will use this entry for every single custom ringtone you make. Do you see where it says "GUID"? This code is a unique number for the ringtone. It does not matter what it is as long as it is unique [I used 1]. It has to be a hexadecimal number, if you don’t know what that means just use digits. "Name" is what will show up on your iPhone in ringtone selection dialog. "Total Time" is the time you want your ringtone to play. Remember the number you have written down. It goes here. Now look at the "ringtone.m4a". Notice that "GUID", "Name", and "Total Time" are the same. It has to be that way. Next ringtone you will create will use similar entry system for example it will be something like this



Step 6 – Transfer "Ringtones.plist" to the iPhone.

You did it twice already. Just load the "Ringtones.plist" to "iTunes_Control/iTunes" and overwrite the old one.

Step 7 – Restart your phone

Ahhh. Duh. I don’t know why you need to do that but you do. Go to Sounds, select your new ringtone and enjoy.

Conclusion - Why does this work?

... and by "why" i mean "i think". In order to play a ringtone, iPhone has to have an AAC file. There are two kind of those. M4R are purchased ones and M4A are not. If you create a AAC file it naturally is M4A. The reason why you cant just load it on the iPhone is because it wont show M4A files in the ringtone selection dialog. You cant just rename it to M4R because then iPhone will check its DRM information and it will fail because its not there. The reason why this works is that iPhone lists our spoof file in the rington selection dialog but plays our M4A that has the same GUID.

ENJOY!