summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Martin Szulecki2020-06-13 00:19:35 +0200
committerGravatar Nikias Bassen2020-06-13 01:56:10 +0200
commitdbb127e24c2451bdea93269545692fee9e5a6287 (patch)
tree4ee6c10db5695b1f41e57664dafed9cdda1880ee
parentf56a65f7bc08de0cd9bc5c1e4683b1d0c671b767 (diff)
downloadlibimobiledevice-dbb127e24c2451bdea93269545692fee9e5a6287.tar.gz
libimobiledevice-dbb127e24c2451bdea93269545692fee9e5a6287.tar.bz2
Improve README.md with features, installation and usage sections
-rw-r--r--README.md164
1 files changed, 129 insertions, 35 deletions
diff --git a/README.md b/README.md
index 294c7f0..89dea3c 100644
--- a/README.md
+++ b/README.md
@@ -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
5A library to communicate with services of Apple iOS devices using native 5## Features
6protocols. 6
7 7libimobiledevice is a cross-platform software library that talks the protocols
8## Requirements 8to interact with iOS devices.
9 9
10Development Packages of: 10Unlike other projects, it does not depend on using any existing proprietary
11* OpenSSL or GnuTLS 11libraries and does not require jailbreaking.
12* libplist 12
13* libusbmuxd 13Some key features are:
14 14
15Software: 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 23The implemented interfaces of many device service protocols allow applications
24to:
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
47The library is in development since August 2007 with the goal to bring support
48for these devices to the Linux Desktop.
49
50## Installation / Getting started
51
52### Debian / Ubuntu Linux
53
54First install all required dependencies and build tools:
55```shell
56sudo 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
25Optional: 69If you want to optionally build the documentation or Python bindings use:
26* cython (Python bindings) 70```shell
27* doxygen (Documentation) 71sudo apt-get install \
72 doxygen \
73 cython
74```
28 75
29## Installation 76Then clone the actual project repository:
77```shell
78git clone https://github.com/libimobiledevice/libimobiledevice.git
79cd libimobiledevice
80```
30 81
31To compile run: 82Now you can build and install it:
32```bash 83```shell
33./autogen.sh 84./autogen.sh
34make 85make
35sudo make install 86sudo 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
105Documentation about using the library in your application is not available yet.
106The "hacker way" for now is to look at the implementation of the included
107utilities.
108
109### Utilities
110
111The 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
134Please consult the usage information or manual pages of each utility for a
135documentation of available command line options and usage examples like this:
136```shell
137ideviceinfo --help
138man 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
152This library and utilities are licensed under the [GNU Lesser General Public License v2.1](https://www.gnu.org/licenses/lgpl-2.1.en.html),
153also included in the repository in the `COPYING` file.
154
61## Credits 155## Credits
62 156
63Apple, iPhone, iPod, and iPod Touch are trademarks of Apple Inc. 157Apple, iPhone, iPod, and iPod Touch are trademarks of Apple Inc.
64 158
65libimobiledevice is an independent software library and has not been 159This project is an independent software and has not been authorized, sponsored,
66authorized, sponsored, or otherwise approved by Apple Inc. 160or otherwise approved by Apple Inc.
67 161
68README Updated on: 2020-06-08 162README Updated on: 2020-06-12