Sunday, February 6, 2011

iOS File System Restriction

Whenever Apple releases a new version of its iOS firmware, I will be hoping that they open up more low-level API to the developers.

Even simple and non-destructive API call to read/write to the ringtones file directory is not available. The iOS API only allows the app to write to it's own subdirectories only.


Now, Android OS users have been able to simply copy or download any .mp3 to a designated file directory on the SD card and the OS will be able to pick it up and set as ringtone.

For iOS, without jailbreaking, the only way you can add a new ringtone is via iTunes syncing.

I don't see any potential compromise to system instability by opening up the access of the ringtone directory to developers. As I've jailbroken my iPhone 4, I do know that the ringtone directory is at "/library/ringtones". I can just copy and .m4r music files to this folders and I can use any of them and set it as my ringtone.

There are now numerous "Ringtone Maker" apps in the App Store now.
However, if you read the instructions of all these apps, they will typically mention that the generated .m4r ringtone file can only be copied out using iTunes File Transfer. Thereafter, you will copy this copied out .m4r file to the iTunes Ringtone menu item and sync.

If only Apple allows the writing to the /library/Ringtones directory, the above tedious steps won't be necessary.

Let's see if Apple come to their senses in iOS 4.3.