Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
- [License](#license)
- [Credits](#credits)

## Features
## Overview

This project is a client library to multiplex connections from and to iOS
devices alongside command-line utilities.
Expand All @@ -28,15 +28,11 @@ It is primarily used by applications which use the [libimobiledevice](https://gi
library to communicate with services running on iOS devices.

The library does not establish a direct connection with a device but requires
connecting to a socket provided by the usbmuxd daemon.
connecting to a socket provided by the `usbmuxd` daemon.

The usbmuxd daemon is running upon installing iTunes on Windows and Mac OS X.
On Windows and Mac OS X, the `usbmuxd` daemon is provided by iTunes upon installing. For Linux, the [libimobiledevice project](https://github.com/libimobiledevice/) provides an open-source reimplementation of the [usbmuxd daemon](https://github.com/libimobiledevice/usbmuxd.git/) to use on Linux or as an alternative to communicate with iOS devices.

The [libimobiledevice project](https://github.com/libimobiledevice/) provides an open-source reimplementation of
the [usbmuxd daemon](https://github.com/libimobiledevice/usbmuxd.git/) to use on Linux or as an alternative to communicate with
iOS devices without the need to install iTunes.

Some key features are:
## Key features

- **Protocol:** Provides an interface to handle the usbmux protocol
- **Port Proxy:** Provides the `iproxy` utility to proxy ports to the device
Expand All @@ -56,7 +52,12 @@ available. This project uses autotools for the build process, allowing to
have common build steps across different platforms.
Only the prerequisites differ and they are described in this section.

libusbmuxd requires [libplist](https://github.com/libimobiledevice/libplist) and [libimobiledevice-glue](https://github.com/libimobiledevice/libimobiledevice-glue). On Linux, it also requires [usbmuxd](https://github.com/libimobiledevice/usbmuxd) installed on the system, while macOS has its own copy and on Windows AppleMobileDeviceSupport package provides it.
`libusbmuxd` requires [libplist](https://github.com/libimobiledevice/libplist) and [libimobiledevice-glue](https://github.com/libimobiledevice/libimobiledevice-glue).

- On Linux it also requires [usbmuxd](https://github.com/libimobiledevice/usbmuxd) to be installed and running on the system.
- On macOS this service is already provided by the operating system.
- On Windows [the Apple Mobile Device Service](https://support.apple.com/102347) is automatically provided when iTunes is installed.

Check [libplist's Building](https://github.com/libimobiledevice/libplist?tab=readme-ov-file#building) and [libimobiledevice-glue's Building](https://github.com/libimobiledevice/libimobiledevice-glue?tab=readme-ov-file#building)
section of the respective README on how to build them. Note that some platforms might have them as a package.

Expand All @@ -76,7 +77,7 @@ section of the respective README on how to build them. Note that some platforms
libimobiledevice-glue-dev \
usbmuxd
```
In case libplist-dev, libimobiledevice-glue-dev, or usbmuxd are not available, you can manually build and install them. See note above.
In case `libplist-dev`, `libimobiledevice-glue-dev`, or `usbmuxd` are not available, you can manually build and install them. See note above.

#### macOS

Expand All @@ -95,6 +96,7 @@ section of the respective README on how to build them. Note that some platforms

#### Windows

* Make sure iTunes is installed, which provides the `usbmuxd` service.
* Using [MSYS2](https://www.msys2.org/) is the official way of compiling this project on Windows. Download the MSYS2 installer
and follow the installation steps.

Expand Down