FixRingTone v1.0.5 for iPhone FW v1.1.1
via pdroms
If you have ringtones in your iPhone that were not inserted by iTunes, very likely they will vanish every time you perform any kind os iTunes sync.
When a sync is performed, iTunes recreates the ringtone configuration file "/private/var/root/Media/iTunes_Control/iTunes/Ringtones.plist" and removes all ringtones entries not "managed" by iTunes.
Fortunately the actual ringtone (xxxx.m4a) files located in "/private/var/root/Media/iTunes_Control/Ringtones" are not erased.
There are file system tricks using symbolic links that may help avoid the erasure of Ringtones.plist but I decided to take another approach to address the problem.
fixringt was written to recreate the ringtone configuration file after a sync.
fixringt is also handy when new ringtones are added to "/private/var/root/Media/iTunes_Control/Ringtones".
It not only creates the configuration file but also creates a xxxx.m4r file for every xxxx.m4a file found, and adujsts the ringtone filename when required.
When fixringt creates the ringtone configuration file, it reads the song/ringtone name from the title field in the .m4a or .m4r file.
FixRingTone is a GUI application to prevent/fix those problems. http://web.newsguy.com/marcio/iphone/fixringtone/