diff --git a/README.md b/README.md
index 294c7f0..89dea3c 100644
--- a/README.md
+++ b/README.md
@@ -1,35 +1,86 @@
 # libimobiledevice
 
-## About
+*A library to communicate with services on iOS devices using native protocols.*
 
-A library to communicate with services of Apple iOS devices using native
-protocols.
+## Features
 
-## Requirements
+libimobiledevice is a cross-platform software library that talks the protocols
+to interact with iOS devices.
 
-Development Packages of:
-* OpenSSL or GnuTLS
-* libplist
-* libusbmuxd
+Unlike other projects, it does not depend on using any existing proprietary
+libraries and does not require jailbreaking.
 
-Software:
-* usbmuxd (OSS or Apple's version)
-* make
-* autoheader
-* automake
-* autoconf
-* libtool
-* pkg-config
-* gcc or clang
+Some key features are:
 
-Optional:
-* cython (Python bindings)
-* doxygen (Documentation)
+- **Interface**: Implements many high-level interfaces for device services
+- **Implementation**: Object oriented architecture and service abstraction layer
+- **Cross-Platform:** Tested on Linux, macOS, Windows and Android platforms
+- **Utilities**: Provides various command-line utilities for device services
+- **SSL**: Allows choosing between OpenSSL or GnuTLS to handle SSL communication
+- **Network**: Supports network connections with "WiFi sync" enabled devices
+- **Python:** Provides Cython based bindings for Python
 
-## Installation
+The implemented interfaces of many device service protocols allow applications
+to:
 
-To compile run:
-```bash
+* Access filesystem of a device
+* Access documents of file sharing apps
+* Retrieve information about a device and modify various settings
+* Backup and restore the device in a native way compatible with iTunes
+* Manage app icons arrangement on the device
+* Install, remove, list and basically manage apps
+* Activate a device using official serviers
+* Manage contacts, calendars, notes and bookmarks
+* Retrieve and remove crashreports
+* Retrieve various diagnostics information
+* Establish a debug connection for app debugging
+* Mount filesystem images
+* Forward device notifications
+* Manage device provisioning
+* Take screenshots from the device screen (requires mounted developer image)
+* Simulate changed geolocation of the device (requires mounted developer image)
+* Relay the syslog of the device
+* Expose a connection for WebKit remote debugging
+
+... and much more.
+
+The library is in development since August 2007 with the goal to bring support
+for these devices to the Linux Desktop.
+
+## Installation / Getting started
+
+### Debian / Ubuntu Linux
+
+First install all required dependencies and build tools:
+```shell
+sudo apt-get install \
+	build-essential \
+	checkinstall \
+	git \
+	autoconf \
+	automake \
+	libtool-bin \
+	libplist-dev \
+	libusbmuxd-dev \
+	libssl-dev \
+	usbmuxd
+```
+
+If you want to optionally build the documentation or Python bindings use:
+```shell
+sudo apt-get install \
+	doxygen \
+	cython
+```
+
+Then clone the actual project repository:
+```shell
+git clone https://github.com/libimobiledevice/libimobiledevice.git
+cd libimobiledevice
+```
+
+Now you can build and install it:
+```shell
 ./autogen.sh
 make
 sudo make install
@@ -49,20 +100,63 @@
 ./autogen.sh --disable-openssl
 ```
 
-## Who/What/Where?
+## Usage
 
-* Home: https://libimobiledevice.org/
-* Code: `git clone https://git.libimobiledevice.org/libimobiledevice.git`
-* Code (Mirror): `git clone https://github.com/libimobiledevice/libimobiledevice.git`
-* Tickets: https://github.com/libimobiledevice/libimobiledevice/issues
+Documentation about using the library in your application is not available yet.
+The "hacker way" for now is to look at the implementation of the included
+utilities.
+
+### Utilities
+
+The library bundles the following command-line utilities in the tools directory:
+
+| Utility                    | Description                                                        |
+| -------------------------- | ------------------------------------------------------------------ |
+| `idevice_id`               | List attached devices or print device name of given device         |
+| `idevicebackup`            | Create or restore backup for devices (legacy)                      |
+| `idevicebackup2`           | Create or restore backups for devices running iOS 4 or later       |
+| `idevicecrashreport`       | Retrieve crash reports from a device                               |
+| `idevicedate`              | Display the current date or set it on a device                     |
+| `idevicedebug`             | Interact with the debugserver service of a device                  |
+| `idevicedebugserverproxy`  | Proxy a debugserver connection from a device for remote debugging  |
+| `idevicediagnostics`       | Interact with the diagnostics interface of a device                |
+| `ideviceenterrecovery`     | Make a device enter recovery mode                                  |
+| `ideviceimagemounter`      | Mount disk images on the device                                    |
+| `ideviceinfo`              | Show information about a connected device                          |
+| `idevicename`              | Display or set the device name                                     |
+| `idevicenotificationproxy` | Post or observe notifications on a device                          |
+| `idevicepair`              | Manage host pairings with devices and usbmuxd                      |
+| `ideviceprovision`         | Manage provisioning profiles on a device                           |
+| `idevicescreenshot`        | Gets a screenshot from the connected device                        |
+| `idevicesetlocation`       | Simulate location on device                                        |
+| `idevicesyslog`            | Relay syslog of a connected device                                 |
+
+Please consult the usage information or manual pages of each utility for a
+documentation of available command line options and usage examples like this:
+```shell
+ideviceinfo --help
+man ideviceinfo
+```
+
+## Links
+
+* Homepage: https://libimobiledevice.org/
+* Repository: https://git.libimobiledevice.org/libimobiledevice.git
+* Repository (Mirror): https://github.com/libimobiledevice/libimobiledevice.git
+* Issue Tracker: https://github.com/libimobiledevice/libimobiledevice/issues
 * Mailing List: https://lists.libimobiledevice.org/mailman/listinfo/libimobiledevice-devel
 * Twitter: https://twitter.com/libimobiledev
 
+## License
+
+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),
+also included in the repository in the `COPYING` file.
+
 ## Credits
 
 Apple, iPhone, iPod, and iPod Touch are trademarks of Apple Inc.
 
-libimobiledevice is an independent software library and has not been
-authorized, sponsored, or otherwise approved by Apple Inc.
+This project is an independent software and has not been authorized, sponsored,
+or otherwise approved by Apple Inc.
 
-README Updated on: 2020-06-08
+README Updated on: 2020-06-12
