UPDATE: for 1.1.2's patch,
check this thread.
This method patches the MeCCA and cheat iphone to play AAC ringtone. You gotta take 2 steps to make it work.
Step 1. Patch the MeCCA
Download the patched MeCCA from:
http://r_a_p_i_d_s_h_a_r_e.com/files/65697943/MeCCA.zip
(remove the underscores from the URL above)
Put it to /System/Library/Frameworks/MeCCA.framework/ folder (replace the old file). Reboot iphone to make it active.
Step 2. Create your ringtones
Use iTunes to convert sound file to AAC (.m4a), then rename the converted file to:
ringtone_name<space>.m4r
Notice:
there must be a space before .m4r, so, a ringtone named MyRing.m4a should be renamed to MyRing .m4r.
Upload the renamed ringtone file to /Library/Ringtones, it appears in Settings->Sounds->Ringtones list immediately.
Update:
1. The customized ringtones will not conlifct with your paid ones cuz of the space (iTunes will remove any trailing spaces in the filenames)
2. Yes, it survives after sync
Credits to bgm370 of elite team.