diff options
| author | 2020-06-13 00:19:35 +0200 | |
|---|---|---|
| committer | 2020-06-13 01:56:10 +0200 | |
| commit | dbb127e24c2451bdea93269545692fee9e5a6287 (patch) | |
| tree | 4ee6c10db5695b1f41e57664dafed9cdda1880ee | |
| parent | f56a65f7bc08de0cd9bc5c1e4683b1d0c671b767 (diff) | |
| download | libimobiledevice-dbb127e24c2451bdea93269545692fee9e5a6287.tar.gz libimobiledevice-dbb127e24c2451bdea93269545692fee9e5a6287.tar.bz2 | |
Improve README.md with features, installation and usage sections
| -rw-r--r-- | README.md | 164 |
1 files changed, 129 insertions, 35 deletions
| @@ -1,35 +1,86 @@ | |||
| 1 | # libimobiledevice | 1 | # libimobiledevice |
| 2 | 2 | ||
| 3 | ## About | 3 | *A library to communicate with services on iOS devices using native protocols.* |
| 4 | 4 | ||
| 5 | A library to communicate with services of Apple iOS devices using native | 5 | ## Features |
| 6 | protocols. | 6 | |
| 7 | 7 | libimobiledevice is a cross-platform software library that talks the protocols | |
| 8 | ## Requirements | 8 | to interact with iOS devices. |
| 9 | 9 | ||
| 10 | Development Packages of: | 10 | Unlike other projects, it does not depend on using any existing proprietary |
| 11 | * OpenSSL or GnuTLS | 11 | libraries and does not require jailbreaking. |
| 12 | * libplist | 12 | |
| 13 | * libusbmuxd | 13 | Some key features are: |
| 14 | 14 | ||
| 15 | Software: | 15 | - **Interface**: Implements many high-level interfaces for device services |
| 16 | * usbmuxd (OSS or Apple's version) | 16 | - **Implementation**: Object oriented architecture and service abstraction layer |
| 17 | * make | 17 | - **Cross-Platform:** Tested on Linux, macOS, Windows and Android platforms |
| 18 | * autoheader | 18 | - **Utilities**: Provides various command-line utilities for device services |
| 19 | * automake | 19 | - **SSL**: Allows choosing between OpenSSL or GnuTLS to handle SSL communication |
| 20 | * autoconf | 20 | - **Network**: Supports network connections with "WiFi sync" enabled devices |
| 21 | * libtool | 21 | - **Python:** Provides Cython based bindings for Python |
| 22 | * pkg-config | 22 | |
| 23 | * gcc or clang | 23 | The implemented interfaces of many device service protocols allow applications |
| 24 | to: | ||
| 25 | |||
| 26 | * Access filesystem of a device | ||
| 27 | * Access documents of file sharing apps | ||
| 28 | * Retrieve information about a device and modify various settings | ||
| 29 | * Backup and restore the device in a native way compatible with iTunes | ||
| 30 | * Manage app icons arrangement on the device | ||
| 31 | * Install, remove, list and basically manage apps | ||
| 32 | * Activate a device using official serviers | ||
| 33 | * Manage contacts, calendars, notes and bookmarks | ||
| 34 | * Retrieve and remove crashreports | ||
| 35 | * Retrieve various diagnostics information | ||
| 36 | * Establish a debug connection for app debugging | ||
| 37 | * Mount filesystem images | ||
| 38 | * Forward device notifications | ||
| 39 | * Manage device provisioning | ||
| 40 | * Take screenshots from the device screen (requires mounted developer image) | ||
| 41 | * Simulate changed geolocation of the device (requires mounted developer image) | ||
| 42 | * Relay the syslog of the device | ||
| 43 | * Expose a connection for WebKit remote debugging | ||
| 44 | |||
| 45 | ... and much more. | ||
| 46 | |||
| 47 | The library is in development since August 2007 with the goal to bring support | ||
| 48 | for these devices to the Linux Desktop. | ||
| 49 | |||
| 50 | ## Installation / Getting started | ||
| 51 | |||
| 52 | ### Debian / Ubuntu Linux | ||
| 53 | |||
| 54 | First install all required dependencies and build tools: | ||
| 55 | ```shell | ||
| 56 | sudo apt-get install \ | ||
| 57 | build-essential \ | ||
| 58 | checkinstall \ | ||
| 59 | git \ | ||
| 60 | autoconf \ | ||
| 61 | automake \ | ||
| 62 | libtool-bin \ | ||
| 63 | libplist-dev \ | ||
| 64 | libusbmuxd-dev \ | ||
| 65 | libssl-dev \ | ||
| 66 | usbmuxd | ||
| 67 | ``` | ||
| 24 | 68 | ||
| 25 | Optional: | 69 | If you want to optionally build the documentation or Python bindings use: |
| 26 | * cython (Python bindings) | 70 | ```shell |
| 27 | * doxygen (Documentation) | 71 | sudo apt-get install \ |
| 72 | doxygen \ | ||
| 73 | cython | ||
| 74 | ``` | ||
| 28 | 75 | ||
| 29 | ## Installation | 76 | Then clone the actual project repository: |
| 77 | ```shell | ||
| 78 | git clone https://github.com/libimobiledevice/libimobiledevice.git | ||
| 79 | cd libimobiledevice | ||
| 80 | ``` | ||
| 30 | 81 | ||
| 31 | To compile run: | 82 | Now you can build and install it: |
| 32 | ```bash | 83 | ```shell |
| 33 | ./autogen.sh | 84 | ./autogen.sh |
| 34 | make | 85 | make |
| 35 | sudo make install | 86 | sudo make install |
| @@ -49,20 +100,63 @@ By default, OpenSSL will be used. If you prefer GnuTLS, configure with | |||
| 49 | ./autogen.sh --disable-openssl | 100 | ./autogen.sh --disable-openssl |
| 50 | ``` | 101 | ``` |
| 51 | 102 | ||
| 52 | ## Who/What/Where? | 103 | ## Usage |
| 104 | |||
| 105 | Documentation about using the library in your application is not available yet. | ||
| 106 | The "hacker way" for now is to look at the implementation of the included | ||
| 107 | utilities. | ||
| 108 | |||
| 109 | ### Utilities | ||
| 110 | |||
| 111 | The library bundles the following command-line utilities in the tools directory: | ||
| 112 | |||
| 113 | | Utility | Description | | ||
| 114 | | -------------------------- | ------------------------------------------------------------------ | | ||
| 115 | | `idevice_id` | List attached devices or print device name of given device | | ||
| 116 | | `idevicebackup` | Create or restore backup for devices (legacy) | | ||
| 117 | | `idevicebackup2` | Create or restore backups for devices running iOS 4 or later | | ||
| 118 | | `idevicecrashreport` | Retrieve crash reports from a device | | ||
| 119 | | `idevicedate` | Display the current date or set it on a device | | ||
| 120 | | `idevicedebug` | Interact with the debugserver service of a device | | ||
| 121 | | `idevicedebugserverproxy` | Proxy a debugserver connection from a device for remote debugging | | ||
| 122 | | `idevicediagnostics` | Interact with the diagnostics interface of a device | | ||
| 123 | | `ideviceenterrecovery` | Make a device enter recovery mode | | ||
| 124 | | `ideviceimagemounter` | Mount disk images on the device | | ||
| 125 | | `ideviceinfo` | Show information about a connected device | | ||
| 126 | | `idevicename` | Display or set the device name | | ||
| 127 | | `idevicenotificationproxy` | Post or observe notifications on a device | | ||
| 128 | | `idevicepair` | Manage host pairings with devices and usbmuxd | | ||
| 129 | | `ideviceprovision` | Manage provisioning profiles on a device | | ||
| 130 | | `idevicescreenshot` | Gets a screenshot from the connected device | | ||
| 131 | | `idevicesetlocation` | Simulate location on device | | ||
| 132 | | `idevicesyslog` | Relay syslog of a connected device | | ||
| 133 | |||
| 134 | Please consult the usage information or manual pages of each utility for a | ||
| 135 | documentation of available command line options and usage examples like this: | ||
| 136 | ```shell | ||
| 137 | ideviceinfo --help | ||
| 138 | man ideviceinfo | ||
| 139 | ``` | ||
| 140 | |||
| 141 | ## Links | ||
| 53 | 142 | ||
| 54 | * Home: https://libimobiledevice.org/ | 143 | * Homepage: https://libimobiledevice.org/ |
| 55 | * Code: `git clone https://git.libimobiledevice.org/libimobiledevice.git` | 144 | * Repository: https://git.libimobiledevice.org/libimobiledevice.git |
| 56 | * Code (Mirror): `git clone https://github.com/libimobiledevice/libimobiledevice.git` | 145 | * Repository (Mirror): https://github.com/libimobiledevice/libimobiledevice.git |
| 57 | * Tickets: https://github.com/libimobiledevice/libimobiledevice/issues | 146 | * Issue Tracker: https://github.com/libimobiledevice/libimobiledevice/issues |
| 58 | * Mailing List: https://lists.libimobiledevice.org/mailman/listinfo/libimobiledevice-devel | 147 | * Mailing List: https://lists.libimobiledevice.org/mailman/listinfo/libimobiledevice-devel |
| 59 | * Twitter: https://twitter.com/libimobiledev | 148 | * Twitter: https://twitter.com/libimobiledev |
| 60 | 149 | ||
| 150 | ## License | ||
| 151 | |||
| 152 | This library and utilities are licensed under the [GNU Lesser General Public License v2.1](https://www.gnu.org/licenses/lgpl-2.1.en.html), | ||
| 153 | also included in the repository in the `COPYING` file. | ||
| 154 | |||
| 61 | ## Credits | 155 | ## Credits |
| 62 | 156 | ||
| 63 | Apple, iPhone, iPod, and iPod Touch are trademarks of Apple Inc. | 157 | Apple, iPhone, iPod, and iPod Touch are trademarks of Apple Inc. |
| 64 | 158 | ||
| 65 | libimobiledevice is an independent software library and has not been | 159 | This project is an independent software and has not been authorized, sponsored, |
| 66 | authorized, sponsored, or otherwise approved by Apple Inc. | 160 | or otherwise approved by Apple Inc. |
| 67 | 161 | ||
| 68 | README Updated on: 2020-06-08 | 162 | README Updated on: 2020-06-12 |
