• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

common/H03-May-2022-1,9381,523

docs/H03-May-2022-662582

include/H03-May-2022-1,018624

m4/H15-Jun-2020-9,6058,657

src/H03-May-2022-2,5322,144

tools/H03-May-2022-1,5111,299

AUTHORSH A D20-May-2015140 1110

COPYINGH A D03-Oct-201425.8 KiB503418

Makefile.amH A D08-Jun-2020118 75

Makefile.inH A D03-May-202225.6 KiB842744

NEWSH A D15-Jun-20202.8 KiB7765

README.mdH A D15-Jun-20205.2 KiB164119

aclocal.m4H A D13-Jun-202053.5 KiB1,4871,340

compileH A D13-May-20207.2 KiB349259

config.guessH A D13-May-202043.5 KiB1,4871,293

config.h.inH A D13-Jun-20204.9 KiB180128

config.subH A D13-May-202035.4 KiB1,8081,667

configureH A D13-Jun-2020654.7 KiB21,41218,000

configure.acH A D08-Jun-20204.6 KiB143121

depcompH A D13-May-202023 KiB792502

install-shH A D13-May-202015 KiB519337

ltmain.shH A D11-Jun-2020316.5 KiB11,1487,979

missingH A D13-May-20206.7 KiB216143

README.md

1# libusbmuxd
2
3*A client library for applications to handle usbmux protocol connections with iOS devices.*
4
5## Features
6
7This project is a client library to multiplex connections from and to iOS
8devices alongside command-line utilities.
9
10It is primarily used by applications which use the [libimobiledevice](https://github.com/libimobiledevice/)
11library to communicate with services running on iOS devices.
12
13The library does not establish a direct connection with a device but requires
14connecting to a socket provided by the usbmuxd daemon.
15
16The usbmuxd daemon is running upon installing iTunes on Windows and Mac OS X.
17
18The [libimobiledevice project](https://github.com/libimobiledevice/) provides an open-source reimplementation of
19the [usbmuxd daemon](https://github.com/libimobiledevice/usbmuxd.git/) to use on Linux or as an alternative to communicate with
20iOS devices without the need to install iTunes.
21
22Some key features are:
23
24- **Protocol:** Provides an interface to handle the usbmux protocol
25- **Port Proxy:** Provides the `iproxy` utility to proxy ports to the device
26- **Netcat:** Provides the `inetcat` utility to expose a raw connection to the device
27- **Cross-Platform:** Tested on Linux, macOS, Windows and Android platforms
28- **Flexible:** Allows using the open-source or proprietary usbmuxd daemon
29
30Furthermore the Linux build optionally provides support using inotify if
31available.
32
33## Installation / Getting started
34
35### Debian / Ubuntu Linux
36
37First install all required dependencies and build tools:
38```shell
39sudo apt-get install \
40	build-essential \
41	checkinstall \
42	git \
43	autoconf \
44	automake \
45	libtool-bin \
46	libplist-dev \
47	usbmuxd
48```
49
50Then clone the actual project repository:
51```shell
52git clone https://github.com/libimobiledevice/libusbmuxd.git
53cd libusbmuxd
54```
55
56Now you can build and install it:
57```shell
58./autogen.sh
59make
60sudo make install
61```
62
63## Usage
64
65### iproxy
66
67This utility allows binding local TCP ports so that a connection to one (or
68more) of the local ports will be forwarded to the specified port (or ports) on
69a usbmux device.
70
71Bind local TCP port 2222 and forward to port 22 of the first device connected
72via USB:
73```shell
74iproxy 2222:22
75```
76
77This would allow using ssh with `localhost:2222` to connect to the sshd daemon
78on the device. Please mind that this is just an example and the sshd daemon is
79only available for jailbroken devices that actually have it installed.
80
81Please consult the usage information or manual page for a full documentation of
82available command line options:
83```shell
84iproxy --help
85man iproxy
86```
87
88### inetcat
89
90This utility is a simple netcat-like tool that allows opening a read/write
91interface to a TCP port on a usbmux device and expose it via STDIN/STDOUT.
92
93Use ssh ProxyCommand to connect to a jailbroken iOS device via SSH:
94```shell
95ssh -oProxyCommand="inetcat 22" root@localhost
96```
97
98Please consult the usage information or manual page for a full documentation of
99available command line options:
100```shell
101inetcat --help
102man inetcat
103```
104
105### Environment
106
107The environment variable `USBMUXD_SOCKET_ADDRESS` allows to change the location
108of the usbmuxd socket away from the local default one.
109
110An example of using an utility from the libimobiledevice project with an usbmuxd
111socket exposed on a port of a remote host:
112```shell
113export USBMUXD_SOCKET_ADDRESS=192.168.179.1:27015
114ideviceinfo
115```
116
117This sets the usbmuxd socket address to `192.168.179.1:27015` for applications
118that use the libusbmuxd library.
119
120## Contributing
121
122We welcome contributions from anyone and are grateful for every pull request!
123
124If you'd like to contribute, please fork the `master` branch, change, commit and
125send a pull request for review. Once approved it can be merged into the main
126code base.
127
128If you plan to contribute larger changes or a major refactoring, please create a
129ticket first to discuss the idea upfront to ensure less effort for everyone.
130
131Please make sure your contribution adheres to:
132* Try to follow the code style of the project
133* Commit messages should describe the change well without being to short
134* Try to split larger changes into individual commits of a common domain
135* Use your real name and a valid email address for your commits
136
137We are still working on the guidelines so bear with us!
138
139## Links
140
141* Homepage: https://libimobiledevice.org/
142* Repository: https://git.libimobiledevice.org/libusbmuxd.git
143* Repository (Mirror): https://github.com/libimobiledevice/libusbmuxd.git
144* Issue Tracker: https://github.com/libimobiledevice/libusbmuxd/issues
145* Mailing List: https://lists.libimobiledevice.org/mailman/listinfo/libimobiledevice-devel
146* Twitter: https://twitter.com/libimobiledev
147
148## License
149
150This library is licensed under the [GNU Lesser General Public License v2.1](https://www.gnu.org/licenses/lgpl-2.1.en.html),
151also included in the repository in the `COPYING` file.
152
153The utilities `iproxy` and `inetcat` are licensed under the [GNU General Public License v2.0](https://www.gnu.org/licenses/gpl-2.0.en.html).
154
155## Credits
156
157Apple, iPhone, iPad, iPod, iPod Touch, Apple TV, Apple Watch, Mac, iOS,
158iPadOS, tvOS, watchOS, and macOS are trademarks of Apple Inc.
159
160This project is an independent software library and has not been authorized,
161sponsored, or otherwise approved by Apple Inc.
162
163README Updated on: 2020-06-12
164