diff options
| author | 2009-08-13 00:56:59 +0200 | |
|---|---|---|
| committer | 2009-08-13 01:29:55 +0200 | |
| commit | 882543b1e42a960b714fa3aa9b05f9029513b5c1 (patch) | |
| tree | 48ed88ceb58b5b3072b17623b7fbe31fbae9fc7b /README | |
| parent | 339112a796f774600a55ab143cad0a6123496606 (diff) | |
| download | usbmuxd-882543b1e42a960b714fa3aa9b05f9029513b5c1.tar.gz usbmuxd-882543b1e42a960b714fa3aa9b05f9029513b5c1.tar.bz2 | |
Remove obsolete patches, update code and comments for libusb git.
Please use libusb git as of the time of this writing, or 1.0.3 whenever
it comes out.
Diffstat (limited to 'README')
| -rw-r--r-- | README | 26 |
1 files changed, 12 insertions, 14 deletions
| @@ -8,22 +8,18 @@ command/response payloads instead of binary blobs. The outer binary protocol is | |||
| 8 | still the same used but now the only command/response format is 8 (plist). | 8 | still the same used but now the only command/response format is 8 (plist). |
| 9 | 9 | ||
| 10 | The server is under the usbmuxd directory. You'll need CMake and libusb 1.0 to | 10 | The server is under the usbmuxd directory. You'll need CMake and libusb 1.0 to |
| 11 | build it. In addition, you need to apply the libusb patch in the patches/ | 11 | build it. Due to a bug in zero-length packet handling, you'll need either the |
| 12 | directory. If you want to debug using valgrind, apply the valgrind patch to | 12 | git version of libusb or 1.0.3, whenever it comes out. |
| 13 | improve the handling of the USB device filesystem ioctls. | ||
| 14 | 13 | ||
| 15 | There is a Python client library in the python-client directory. It should be | 14 | There is a Python client library in the python-client directory. It should be |
| 16 | compatible with Windows, Linux, and OSX (using the Apple usbmuxd on Win and OSX) | 15 | compatible with Windows, Linux, and OSX (using the Apple usbmuxd on Win and OSX) |
| 17 | tcprelay.py implements a TCP connection forwarder that lets you pipe TCP | 16 | tcprelay.py implements a TCP connection forwarder that lets you pipe TCP |
| 18 | connections to localhost to the phone. Run it with --help for usage. Note that | 17 | connections to localhost to the phone. Run it with --help for usage. The Python |
| 19 | under OSX you'll have to change the socket path from /tmp/usbmuxd to | 18 | client lib is also compatible with the new plist-based protocol and should |
| 20 | /var/run/usbmuxd (there is no socket path on Windows, only a TCP connection to | 19 | automatically select it if it sees such a server. However, you need Python 2.6 |
| 21 | localhost). The Python client lib is also compatible with the new plist-based | 20 | for Windows and Linux in this case, since the plistlib module doesn't come with |
| 22 | protocol and should automatically select it if it sees such a server. However, | 21 | older versions under these OSes (not that you'll have a server that supports |
| 23 | you need Python 2.6 for Windows and Linux in this case, since the plistlib | 22 | this protocol under Linux. TODO: does Windows iTunes use this yet?) |
| 24 | module doesn't come with older versions under these OSes (not that you'll have a | ||
| 25 | server that supports this protocol under Linux. TODO: does Windows iTunes even | ||
| 26 | use this yet?) | ||
| 27 | 23 | ||
| 28 | ARCHITECTURE | 24 | ARCHITECTURE |
| 29 | 25 | ||
| @@ -100,7 +96,9 @@ GOTCHAS AND ANNOYANCES | |||
| 100 | The usbmuxd CONNECT request port field is byte-swapped (network-endian). This is | 96 | The usbmuxd CONNECT request port field is byte-swapped (network-endian). This is |
| 101 | even more annoying for the plist based protocol, since it's even true there | 97 | even more annoying for the plist based protocol, since it's even true there |
| 102 | (where the field is plain text). So even for the plain text int, you need to | 98 | (where the field is plain text). So even for the plain text int, you need to |
| 103 | swap the bytes (port 22 becomes <integer>5632</integer>). | 99 | swap the bytes (port 22 becomes <integer>5632</integer>). I have no clue if this |
| 100 | is the case on the new plist protocol on PPC macs (is the newer iTunes available | ||
| 101 | for those?) | ||
| 104 | 102 | ||
| 105 | There are a bunch of gotchas due to the USB framing, and this is even worse | 103 | There are a bunch of gotchas due to the USB framing, and this is even worse |
| 106 | because implementations tend to get it wrong (i.e. libusb, and this is the | 104 | because implementations tend to get it wrong (i.e. libusb, and this is the |
| @@ -135,7 +133,7 @@ is normally not an issue, but it's annoying for debugging because lost packets | |||
| 135 | gets out of sync and then might crash and burn dozens of packets later. | 133 | gets out of sync and then might crash and burn dozens of packets later. |
| 136 | 134 | ||
| 137 | The server needs a proper front-end (i.e. daemonizing, commandline options, | 135 | The server needs a proper front-end (i.e. daemonizing, commandline options, |
| 138 | etc), a lot of testing, and some optimizing. | 136 | etc), more testing, and some optimizing. |
| 139 | 137 | ||
| 140 | Someone should probably do some edge-case testing on the TCP stuff. | 138 | Someone should probably do some edge-case testing on the TCP stuff. |
| 141 | 139 | ||
