A fix for iPhone ringtones problems

If you live on the cutting edge of the world of iPhone, as I apparently do, you sometimes cut yourself. That’s what happened to me today. After experimenting with several different methods of installing ringtones over the past week or so (see previous posting)—including Ambrosia’s iToner, Rogue Amoeba’s MakeiPhoneRingtone, manually-applied hacks, and (of course) Apple’s newly activated iTunes Store method—things began to fall apart.

First, iToner listed ringtones that had I had previously deleted from iTunes. Worse, when I attempted to add new tones, an error message appeared.

Other ringtones, added with MakeiPhoneRingtone, would not copy to the iPhone when I attempted to sync in iTunes, resulting in an error message instead. [Update Sept. 13: This problem may have been more due to a bug in the MakeiPhoneRingtone software, supposedly fixed in the just released 1.1 version.]

Making matters worse, some custom ringtones that had supposedly successfully transferred to my iPhone would not show up in the iPhone’s Ringtones list.

None of the simple solutions (such as restarting the iPhone) worked. I could find no sure solutions on the Web. I was on the verge of pulling out the precious few hairs that still remain on my head. Fortunately, before resorting to this, I found a solution. Here’s what I did:

1. I had previously hacked my iPhone (using AppTappInstaller) and had installed OpenSSH. This allowed me to wirelessly connect to my iPhone from my Mac, using an SFTP connection in Fetch. To do this yourself, you’ll need your iPhone’s Wi-Fi IP address, username (root) and password (dottie, unless you have changed it).

2. Connect to your iPhone in Fetch (or whatever SFTP tool you use) and navigate to: /var/root/Media/iTunes_Control/iTunes/. In this directory you should find a file called Ringtones.plist.

3. Copy this file to your Mac’s desktop. Open the file in a .plist file editor, such as Apple’s Property List Editor (on your drive if you installed Apple’s Developer tools).

4. Check each of the items listed under the Ringtones property of this file. The sub-properties of each item will, in turn, tell you the name of each song.

This file supposedly lists all installed ringtones. However, it appeared to be a bit messed up for me, which turned out to be the source of my problems. In particular, it still listed ringtones that I had previously deleted from iTunes, even though I had synced the iPhone since doing the deletions.

To fix this problem, it may have been sufficient to simply delete the .plist file from the iPhone. But I tried something a bit more cautious:

5. Navigate back a bit to: /var/root/Media/iTunes_Control/Ringtones

In this directory you will find the actually installed ringtones.

6. Compare the directory listing to the .plist file listing. Where they are different, delete the items from the .plist file that are not in the Ringtones directory—until the two lists match. Save the modified .plist file.

7. Using Fetch again, copy the modified .plist file back to its original location on the iPhone. It replaces the unmodified copy. You can now quit Fetch.

8. Launch iTunes and connect the iPhone. Go to the iPhone’s Ringtones tab.. Although it may not be necessary, select to remove all the listed ringtones and click Apply. Then selected to re-add the ringtones and click Apply again. The iPhone should now be synced and all the listed ringtones in iTunes should be correctly installed.

At this point, I returned to iToner. It now correctly listed the iTunes-installed ringtones and allowed me to add new ones without error. On the iPhone itself, both the iTunes-installed and iToner-installed ringtones were correctly included in the Ringtones list. All was well. Whew!

The iPhone ringtone cat-and-mouse game

Apple and iPhone users continue to play a game of cat-and-mouse regarding ringtones.

Initially, there was no way to add custom ringtones to an iPhone.

Eventually, hackers found a way in the back door. Several alternative methods emerged, each new one easier than the one before—culminating with Ambrosia Software’s iToner, a no-brainer ringtone installer “for the rest of us.”

The ink was hardly dry on iToner’s press release when Apple released iTunes 7.4. This new version added support for Apple’s own .99¢ ringtone option. Unfortunately, whenever you synched your iPhone after installing the update, it had the side effect (intended or otherwise) of erasing ringtones installed by iToner.

Not to worry. It took only about 24 hours before word spread on the Web that you could make your own ringtones for free and, simply by adding a “.m4r” suffix to the music file, the item would appear in the ringtones tab of iTunes. From here, the files would sync to your iPhone the same way as ringtones you purchased from the iTunes Store. The hack worked beautifully. I know. I tried it.

Ironically, people were adding their own custom ringtones, using the Apple supported technology, even before the official Apple-supported tones were put on sale in the iTunes Store!

Within 48 hours of this development, Apple updated iTunes to 7.4.1, whose sole “improvement” is to disable the just-discovered home-grown ringtone hack.

Meanwhile, Ambrosia released an iToner 1.0.1 update. Guess what? It adds compatibility with iTunes 7.4, making it a viable ringtone tool once again.

Not to be outdone, I have already seen reports claiming that you can still get home-grown hacked ringtones to work in iTunes 7.4.1; Check this thread, for example. However, there may be some additional hassles to work around.

Does this mean there is an hack-blocking iTunes 7.4.2 in our immediate future?

Round and round it goes. Where it stops nobody knows.

And, with each iteration, I have had to start over and reinstall all my custom ringtones. For me, I am getting off the merry-go-round for the time being. Better off doing without custom ringtones until the dust finally settles on all of this. I don’t need to waste my time on this minor convenience any more.

New iPhones in January?

I admit it. I have absolutely no hard evidence for what I am about to say. None-the-less, I am almost certain it is true: New iPhone model(s) will be introduced at Macworld Expo in January.

What’s the basis for this prediction? It all comes down to parsing Apple’s (and Steve Job’s) language regarding the just announced price drop for the current iPhone.

Take a look at the Apple press release regarding the price drop. The release is titled “Apple Sets iPhone Price at $399 for this Holiday Season.” It goes on to state that Apple wants to “make iPhone affordable for even more customers this holiday season.”

Notice that the expression “holiday season” is always included in any mention of the price drop. Why? Why not just say, for example, that Apple wants to “make iPhone affordable for even more customers” without the “holiday season” addition?

It happens again in Steve Jobs’ “open letter” to iPhone customers, where he writes that all of us who purchased an iPhone prior to the price drop will get a $100 credit at the Apple Store. In this letter, he states: “iPhone is a breakthrough product, and we have the chance to ‘go for it’ this holiday season.” A few sentences later, he writes: “We strongly believe the $399 price will help us do just that this holiday season.”

Once again, there is that repeated and unneeded addition of the phrase “this holiday season.” Why?

I believe the answer is that the price will go up again after the holiday season is over. I specifically asked Apple reps about this at the Special Event on Wednesday. They denied there was any plan to raise the price in January. But their wording did not entirely rule the possibility. Just because there is no “announced” plan, for example, doesn’t mean that there is not an unannounced one. In any case, Apple reps at a “hands-on” display of new products are not about to reveal anything about Apple’s future plans that Steve himself had not revealed. So I don’t put much stock in these denials.

However, I seriously doubt that Apple will simply raise the price of the same 8GB model that is on sale now. Raising the price of an existing product is almost never done in this business. If anything, prices go down for existing or even improved technology over time; not the reverse.

So, if as I predict, the price will go up again in January, the justification for the price hike must be that a new model (or models) will be replacing the existing iPhone. Given the current price drop from $599 to $399, I expect that the price will not jump back to $599 again. Instead, my guess is that we will see a new iPhone model priced at $499. This could be simply a 16GB iPhone. Such a move would make sense because, with the 16GB iPod touch selling for $399, it would be awkward to offer a 16GB iPhone for the same price. Or, just as likely, Apple could introduce an “iPhone 2.0” with new features such as built-in GPS.

The only thing that doesn’t quite fit in this picture is this: Even if a new and improved iPhone is coming in January for $499, why not continue to sell the existing iPhone for $399? If that is the plan, all the caveats about “this holiday season” would not be required, as the $399 price would remain in place. So if my theory is correct, this is not going to happen.

Perhaps Apple isn’t quite ready to make $399 the permanent price point for an entry level iPhone. They still believe they can get the sales they want and maintain the higher margin of a $499 price. So they use the introduction of the new model to get rid of the lower price. Perhaps. Or perhaps it’s something else.

Regardless, I remain convinced that the repeated use of the “holiday season” phrase is not just superfluous language on Apple’s part. There is a reason behind it. And now you have my theory as to what that reason is.

Get the iPhone; Skip the case

Peripherals for iPhone may be a bit slow in coming, but there was one category of peripheral that was available the same day that iPhone was released: iPhone cases. The irony is that this is a peripheral that is not only unnecessary but may actually be a hinderance.

To be fair, I have never liked the idea of using protective cases on anything, even my iPods. It reminds me of putting slipcovers over a beautiful couch. What’s the point of having beautiful material for your couch, if you are going to cover it up and never see it?

Still, I typically use a case with my iPods, despite my reservations, because on balance I want to protect the device, especially the screen, from scratches and other potential damage.

The iPhone, however, is a different story. First, iPhone’s design is so elegant and striking that to cover it up with a case seems even more of a crime than with an iPod. A case also affects (probably negatively) how the iPhone feels when holding it to your ear for a call, something that is not an issue with an iPod.

The most critical factor is that you can’t cover up the iPhone screen with a case anyway. Because iPhone has a touchscreen, you need to be able to have your fingers come in direct contact with the display. A cover would prevent that. Added to that is that Apple did a great job of making the screen scratch-resistant. I have seen demos of trying to scratch the screen by scraping a coin across it; it had no effect. This means that the part of the iPhone you should be most concerned with protecting is the part that a case has no ability (and perhaps no need) to protect.

Making matters worse, a recent report on iPhone Atlas suggests that some cases may actually cause scratches and heat-related problems that would otherwise not occur.

I might consider something like Power Support Crystal Film Set for iPhone; it covers the screen, allows the touchscreen to still work and appears to be almost imperceptible. Even here though, it seems possible that the film might wind up getting “scratched” in a way that the glass itself would not, defeating the film’s purpose.

Bottom line: Get the iPhone; skip the case.