HACKING
================================================================================
This document describes the things that I have learned while reverse
engineering the iPhone so that others may benefit.

The first piece of information that people should know is that the iPhone comes
with 3 configurations. If you want to be able to sync and pull pictures off
then you want to use the 3rd configuration.

You also want to use the 3rd interface (on the 3rd configuration), which has
been kindly named by Apple, the Apple Mobile Device interface. The 1st
interface is the PTP camera interface, which gphoto 2.4.0 has preliminary
support for (some people got it to work while others have not, it will probably
get sorted out soon).

The next thing you will probably notice is that if you try to poke the iPhone
at all (either through /proc or libusb) it immediately disconnects and
reconnects. I haven't been able to track down this interesting behavior but it
sure would be alot easier if it didn't keep disconnecting.

Finally you have probably also noticed (since you have downloaded this driver)
that the iPhone doesn't charge when connected. In order to do that you need to
send an other USB control request. The setup packet should be as follows:

40 40 64 00 00 00 00 00

and it should be directed to endpoint 0. 

Next up is figuring out the communication process for the Apple Mobile
Interface.


