Saturday, July 25, 2009

The Pre in iPod's Clothing by Michael Jones

Palm has quite a checkered history when it comes to syncing your Pre with iTunes, going as far as to make the device report itself as an iPod, and leaving lingering speculation that Apple would block the device with future iTunes updates -- which is exactly what has happened. But many Pre owners were surprised (and relieved) to hear that Palm had already fixed the issue, only a week after the problem surfaced.

So, how did Palm manage to get sync working again? Well, the good folks over at PreCentral have discovered that they pulled it off by making the Pre report that its USB chipset is developed by Apple. This change effectively makes the device appear even more like an iPod, as well as further ensnares Palm into what could potentially be a nasty web of legal issues.

While it may not seem like such a bad thing to let iTunes recognize the Pre as an iPod, the problem lies in how Palm is going about doing it. All USB devices report a plethora of information back to the operating system when they are plugged in, including a device ID, a vendor ID that usually identifies the chipset manufacturer, a manufacturer string to identify the name of the company that built the device, as well as other information that identifies various capabilities that the device might have.

Typically, a combination of the vendor ID and device ID can be easily used to identify a specific device, which is how most applications and drivers communicate with USB devices. When you plug in your iPhone, for example, the system sees a device with a vendor ID of 0x05ac (which identifies it as an Apple device), and a product ID like 0x1294. The system then checks to see if any drivers have registered to be notified when this device combination is plugged in, and it continues from there. In the case of the Pre, however, Palm is identifying the vendor ID as 0x05ac, tricking the operating system into thinking it sees an Apple USB device.

As you can see, this process relies on the IDs provided to be correct in order for things to work properly. Because of this, the USB Implementers Forum (commonly called USB-IF) oversees the assignment and handling of these IDs to ensure that things go smoothly. Companies who wish to manufacture USB chipsets have to apply for a vendor ID number, as well as pay annual membership or licensing fees to the USB-IF to be an authorized vendor. So not only is Palm causing technical problems by misrepresenting the device to the computer, but it is doing so by using an ID that Apple has paid for and has the sole legal right to use. Palm, on the other hand, is likely in violation of their own agreement with the USB-IF, which clearly states that "Unauthorized use of assigned or unassigned USB Vendor ID Numbers and associated Product ID Numbers are strictly prohibited." And yes, they do have their own ID for use on their other hardware.

So what does Palm have to say about all of this? They have turned the tables back on Apple, saying that they believe Apple is improperly using the vendor ID to limit the devices that consumers are able to use with iTunes. Wait, what? Isn't that *exactly* what the ID is there for? Most programs that communicate with any USB device check the vendor and device IDs to ensure that they are talking to the right device. If you've ever used the tools that came with your scanner, you've seen this before. HP's Scan Pro checks the USB devices to see if any of them are supported scanners. This is the sole reason these IDs exist, so that the software can identify a connected piece of hardware, and determine whether or not it is compatible. You wouldn't expect HP's Scan Pro to be able to download pictures from your Fujitsu ScanSnap, so why expect iTunes to show the Pre some love?

Don't take this the wrong way, I do think that iTunes and the Pre should get along, but Palm needs to go about it the proper way. Disguising the Pre as an iPod is just like a wolf dressing in sheep's clothing, but things won't go well for the wolf when the shepherd catches up with it.

No comments: