Discuss Ringtones in 1.1.1 at the Free Toolchain Software - Hackint0sh.org; Google XVI32.exe - Good HEX editor for windows.
I have tried every way from Sunday ...
Google XVI32.exe - Good HEX editor for windows.
I have tried every way from Sunday to trick my 1.1.1 iPhone into playing a "made" ringtone... nothing works. I just want my CTU ringtone back!
I wonder if I bought a ringtone from iTunes and uploaded here would it work if you downloaded it?
I don't think so as iTunes codes the ringtone to match the users iTunes account. As someone else mentioned, iTunes just requires reauthorization of the ringtone of the purchasing account.
Does anyone have the original ringtone files from 1.0.2 or earlier?
It could be worthwhile running a hexdiff on the files to see what exactly the differences are between an identical ringtone.
I have already tried the grafting course and have not been able to find anything really significant. I have gotten songs to show up in the lists, however they are not playable as ringtones.
However, I finally have my silent ringtone for those "crazies" that I would rather avoid! So, definitely a good news, bad news kinda situation!
Could'nt you extract the files from the 1.0.2 distribution of the OS? (the update .ipsw file or whatever you call it)
There are . dmg's in there... I don't think *all* of them are encrpted.
Maybe the files are in one of the . dmg's
Ok, took my own advice.
Here are the 1.0.2 ringtones extracted from the .dmg in the .ipsw file:
http://www.s e n d s p a c e.com/file/ci2udr
I checked out the Boing ringtone. I did a hexdump and diff'ed the 1.1.1 and 1.0.2 versions of the files... didn't see anything real useful, but then again, I wasn't exactly sure what I was looking at :-)
But, I confirmed that the 1.1.1 ringtones are protected AAC by opening them in Quicktime and looking at the file info; I guess we kinda already knew that...
The question is... where are the keys? They must be on the iPhone somewhere; the iPhone obviously doesn't retrieve a key from the Internet every time it plays a ringtone.
Are the keys unique per phone, or are they the same for every phone?
That's probably something we should figure out...
Here are the unmodified 1.1.1 ringtones from my phone:
http://www.m e d i a f i r e.com/?2y9cocx1rjz
Can someone try diff'ing this with the 1.1.1 ringtones on their phone? That would tell us if the key is unique per phone or the same for all phones...
Then, all we have to do is find the key :-) After that, we'd use it to encrypt custom ringtones and put them in the /Library/Ringtones folder on the phone. Not sure exactly how you encrypt an AAC file... but... one thing at a time.
Here's some more exciting news about hacking the iPhone for ringtones...
(well, not too exciting, unfortunately)
I haven't figured out how to get the phone to play custom ringtones, but I did find a few interesting things:
1) The name of the ringtone is set in /var/root/Library/Preferences/com.apple.springboard.plist
2) If you enter a non-existent ringtone in that .plist, it plays this one by default:
As it turns out, this is the "Marimba" ringtone. Kinda strange. If you search the entire iPhone filesystem, there is no Marimba ringtone listed anywhere; this is the file in which its stored. I guess it's a failsafe in case something gets screwed up in the phone.
3) The process which actually plays the ringtone is
I also read up on how Apple's DRM scheme works. There's a good page on wikipedia, here:
I tried a number of things to get the phone to play my ringtone. For instance, I tried copying a custom ringtone in place of the ring.m4r file listed above. Didn't work. I also tried putting a custom ringtone in /Library/Ringtones and giving it a .m4r extension (though it was a .m4a -- unprotected AAC). That causes the ringtone to show up in the settings list, but it doesn't play.
My conclusion is that Apple has specifically designed the system *not* to play any ringtone which isn't in protected AAC format. I haven't been able to figure out how to hack around that.
So, the only way we could get the phone to play a custom ringtone -- unless we can decompile the system software and change it -- is to create a ringtone in protected AAC format.
The problem with this idea is that I don't think there's any software available to actually *create* a protected AAC file. And even if there was, we'd need the encryption key from the phone.
From what I've been able to gather, the protection works like this: When you download a DRM-encrypted file from iTunes -- like a song or ringtone -- it encodes an encryption key *into* the file you download. If you look in the .m4r files, you can see the key. Problem is, the key itself is encrypted! And, since the audio is encrypted using the key in the .m4r file, you can't swap keys between files.
At the same time, iTunes generates a user-specifc key for decrypting the key inside the .m4r file. I don't know where this is stored. So, to play the ringtone, the phone 1) Looks up the user key; 2) Uses it to decrypt the key embedded in the .m4r file; and 3) Then uses the decrypted key from the file to decrypt the actual audio.
So, I'm out of ideas at the moment... like I said, it looks like the system software is designed to *only* play protected AAC files as ringtones. And since we have no way of figuring out the user key, and no way of actually generating a protected AAC file, we're screwed!
Arghhh!!! Curse you Apple!
This is the only thing which bothers me about this whole 1.1.1 update. I think there are legitimate reasons for trying to lock down most of the stuff in the phone, but this is just silly. The only reason for this scheme is to force people to buy ringtones from the iTunes store. bullsh*t, I think.
Anyone else have any ideas? :-)
I don't have my phone on me, but I wonder if we could use the mediaservd daemon from the 1.0.2 firmware. It didn't have any problems playing unprotected music.
Anyone interested in a class action suit? My college roomie is a litigator and he thinks that of all the pending suits, one based on the ringtones actually has the best shot of winning. It is perfectly legal for apple to protect music you buy to prevent piracy, however it is illegal for them to require you to purchase music from them AND ONLY THEM to play on hardware you buy from them, this is anti-competitive and unfairly restricts a users access to the hardware they have purchased.
Originally Posted by vfxdude2
By docomar in forum Free Toolchain Software
Last Post: 08-27-2008, 08:31 AM
By niksy_nik7 in forum Free Toolchain Software
Last Post: 06-01-2008, 06:44 PM
By ivndr in forum iPhone "2G" (Rev. 1)
Last Post: 02-22-2008, 06:12 PM
By jamr_mx in forum General
Last Post: 02-16-2008, 05:32 AM