- Obtain and install iPhoneDisk and MacFUSE
- Connect iPhone and open the "Media" partition with iPhoneDisk
- Drag a suitable MP3 or AAC to the iTunes_Control/Ringtones/ folder
- Open iTunes_Control/iTunes/Ringtones.plist and add a new Dictionary in the Ringtones section, named to match your MP3 filename (i.e. Something.mp3). Add six String fields to the new Dictionary named LocalPath, Name, GUID, FileKey, FileSize & RemotePath with appropriate values (use uuidgen to get a GUID).
Name is the value that shows up in the Ringtones list, LocalPath is the location on your client machine, FileSize is the size in bytes, FileKey is the filename, RemotePath is the path to the ringtone on the phone.
Born on 9/05/2007
How to put ringtones on your iPhone for free (assumes your client is a Mac. PC users, you're on your own):