Version 1.1.7 ~~~~~~~~~~~~~ * Development release "Cleaning up the yard." * Changes: - Avoid exporting non-public symbols for better ABI stability - Fix failing backup process for devices having a passcode set and entering lock state during the process in idevicebackup2 - API: Added lockdownd_start_service_with_escrow_bag() - API: Added afc_remove_path_and_contents() for recursive deletion - Fix last memory leak with OpenSSL through proper library deinitialization - Add new idevicedebug tool to interact with debugserver on a device - API: Add debugserver service implementation - Handle new PermissionDenied error of file_relay due new security in iOS 8+ - Fix retry loop problem when device requests 0 files in idevicebackup2 - Add trust dialog related error codes to Cython bindings - Fix various memory leaks in AFC implementation - Fix disk image upload with latest iOS 8 in ideviceimagemounter - Add new "dump" command to print information about a provisioning profile in ideviceprovision - Refactor plist print helper code and move it into common module for better reuse accross the tools - Do not crash if retrieving the system buid fails - API: Make generic "propery_list_service_client" public - Moved doc comments from private to public headers - Fix possible segfault when using lockdownd_get_value() due to always returning success - Do not read files entirely into memory during restore in idevicebackup - Plug a few memory leaks and fix invalid password check in idevicebackup2 - Add support for file sizes > 4GB on Win32 in idevicebackup2 - Fix declaration for DllMain on Win32 - Silence various compiler warnings - Fix assert within pairing logic * API is UNSTABLE Version 1.1.6 ~~~~~~~~~~~~~ * Development release "Way too overdue." * Changes: - Remove segmentation code from afc_file_read() to provide raw interface and more control to API consumer I/O logic - Implement global thread safe library initialization, especially to control SSL backend lifecycle - Major refactoring of pair record code and logic to use new usbmuxd pair record management interface - Replace user level with system wide pair record file handling - Bump dependency to libplist 1.11 and remove use of "plist_dict_insert_item" - Bump dependency to libusbmuxd 1.0.9 - Finish pair record and trust dialog handling for iOS 7+ - Improve AFC write performance and memory usage - Add support for custom output filename to idevicescreenshot - Fix detection and compilation for Python 3.x - API: Added file_relay_request_sources_timeout() - Fix broken HouseArrestClient class in cython bindings - Add new idevicecrashreport tool to retrieve crash reports and logs from a device - Prevent "Failed to restart/shutdown device" messages in idevicediagnostics - Link against ws2_32.dll on Win32 - Add support for iOS 7+ disk image mounting to ideviceimagemounter - Add new idevicename tool to get or set the device name - Allow unbacking of encrypted backups with a given password to idevicebackup2 - Remove sending "Goodbye" request on lockdown - Add support for newer PLIST_REAL based time type to idevicedate - Add note about setting time not working on iOS 6+ to idevicedate - Handle partial SSL reads correctly now to prevent random crashes - Fix duplicated output in ideviceinfo output - Remove a bunch of dead code - Fix deprecated OpenSSL "RSA_generate_key" with "RSA_generate_key_ex" which is available since OpenSSL 0.9.8 (July 2005) - Improve debug messages - Enforce "-fsigned-char" to fix issues on embedded platforms - Fix compilation with Clang/LLVM - Avoid versioning for shared library on Win32 - Add experimental support for controlling cloud backup mode to idevicebackup2 - Save EscrowBag when starting service for automatic unlocking in pair record - Remove pairing logic which is obsoleted by usbmuxd's preflight handler - Fix shutdown of SSL connection to be correct and no longer generate errors on device - Add support for GnuTLS 3.x and fix broken GnuTLS backend - Add extensions to generated certificates to match native ones - Add "systembuid" command to idevicepair - Allow starting service without the need for a running SSL session - Refactor more code into common module - Add option to filerelaytest to specify a source to request - Fix support for partial messages in webinspector implementation - Implement support for encrypted backups in idevicebackup2 - API: Export SSL control functions for idevice_connection_t - API: Make generic service client public to allow external service implementations - Implement *_start_service() helper for easier creation of service clients - Add public *_SERVICE_NAME defines for each service - Fix a great bunch of memory leaks after intensive valgrind session - Security: Fix insecure use of the /tmp directory (CVE-2013-2142) - A bunch of memory leak fixes - Python: Various fixes and support for "with" statement for AfcFile class - Python: Add Afc2Client class to allow jailbroken filesystem access - Fix linking issue with newer libtool as reported for Ubuntu - Fix stuck thread in idevicesyslog which broke quit from within the tool - Add syslog_relay service implementation and use it in idevicesyslog - API: Add instproxy_client_get_path_for_bundle_identifier() helper - API: Add afc_dictionary_free() helper - Move thread, socket, debug and userpref code to "common" source directory in order to improve code reuse - Fix broken byte order detection in configure.ac which could lead to broken AFC protocol communication on platforms without endian.h (Raspberry PI) * API is UNSTABLE Version 1.1.5 ~~~~~~~~~~~~~ * Development release * Changes: - Implement automatic reconnecting in idevicesyslog - Refactor all services to use new base service - Add new generic service_client_factory_start_service() helper - Implement a base service that all services inherit from - API: Refactor use of "port numbers" into a "service descriptor" which is a needed change as all services must now transparently support SSL. Fortunately, only minor changes are needed to migrate your code properly. - Add experimental ideviceheartbeat to allow service checkin over the network - Add heartbeat service implementation to keep alive network connections - Add webinspector service implementation for WebKit remote debugging - Fix idevicebackup2 failing due to integer overflow in free disk space calculation on 32 bit architectures and large disk capacities - Add support for encrypted and password protected backups to idevicebackup2 - Fix major "too long filename received" bug in idevicebackup2 - Various fixes for proper and tested WIN32 support including MinGW building - Fix various crashers and improve quality of idevicebackup2 tool - Add endianness helpers for systems lacking support - Fix idevicedate to work on iOS 6+ - Add idevicediagnostics tool - Add diagnostics_relay service implementation - Add idevicedebugserverproxy tool for remote lldb debugging - Add ideviceprovision tool - Add misagent service implementation to manage provisioning profiles - Fix crash if $HOME is empty or not defined - Fix non-ASCII characters being stripped when using plist communication - Improve compile support for cython and check it at configure time - Bump cython requirement to 0.17.0+ - Fix compilation of cython bindings - Python bindings now cover all C APIs - Fix iOS 6 compatibility for mobilesync, mobilebackup, mobilebackup2 and screenshotr by bumping device link protocol version number - Do not strip non_ASCII characters from XML plists - Fix possible crash when using OpenSSL * API is UNSTABLE Version 1.1.4 ~~~~~~~~~~~~~ * Development release * Changes: - Fix a bug in idevicesyslog causing the connection to close after timeout - Bump soname revision * API is UNSTABLE Version 1.1.3 ~~~~~~~~~~~~~ * Development release * Changes: - Bump libusbmuxd dependency to 1.0.8 - Fix reading from syslog_relay and remove null characters - Relicense ideviceimagemounter and idevicescreenshot to LGPL - Fix a crash when using restored_client_free() - API: Add sbservices_get_interface_orientation() - Update man pages and code comments for documentation - Minor cleanup * API is UNSTABLE Version 1.1.2 ~~~~~~~~~~~~~ * Development release * Changes: - Add Python bindings generated by Cython - Bump libplist requirement to latest 1.8 - Add support for OpenSSL with fallback to GNUTLS - Improvements and various fixes for Win32 and OS X build - Remove glib dependency - Improve restored implementation - Fix various memory leaks - Fix support for iOS 5 and later * SWIG Python Bindings are removed * API is UNSTABLE Version 1.1.1 ~~~~~~~~~~~~~ * Development release * Changes: - Add new idevicebackup2 tool for full backup and restore support on iOS 4+ - Add a workaround for a bug in iOS 4.3 affecting lockdown_get_value() which most prominently affected libgpod, gvfs, ideviceinfo and some other tools - Read ProxyDeath message to preventing obsolete messages in device syslog - Rework SWIG detection and includes - Add new idevicedate tool to get or set the clock on iDevices - API: Add mobilesync_clear_all_records_on_device() - API: Change device_link_service_disconnect() to accept a message - Add manpages for ideviceenterrecovery, idevicepair, idevicebackup2 and idevicedate - Add missing libgen.h include to silence compiler warnings - Fix a segfault that might occour if locally stored certs could not be read - Fix various memory leaks - Update documentation * Python Bindings will get refactored completely * API is UNSTABLE Version 1.1.0 ~~~~~~~~~~~~~ * Development release * Changes: - Implement restoring backups using idevicebackup - Allow connecting without pairing using "ideviceinfo -s" - Add ideviceenterrecovery tool - Add mobilesync service implementation - Add restored service implementation for restore mode - Add home_arrest service implementation for document sharing - Add API afc_client_new_from_connection() - Support to fetch wallpaper in sbservices - Support for formatVersion 2 of iOS 4+ in sbservices - Add new lockdownd domains to ideviceinfo - Give the device time to prepare backup data to prevent abort - Improve idevicebackup output - notification_proxy fixes and new notification type - Silence some 64bit compiler warnings - Fix various memory leaks - Update documentation * Python Bindings will get refactored completely * API is UNSTABLE Version 1.0.7 ~~~~~~~~~~~~~ * Maintenance release of stable series * Changes: - Fix SWIG 2.x detection - Fix support for iOS 5 and later - Flush output of idevicesyslog immediately - Replace deprecated GNUTLS functions properly - Fix segfaults in library and some tools - Fix memory leaks - Build fixes Version 1.0.6 ~~~~~~~~~~~~~ * Quick follow up release * Changes: - Add ideviceenterrecovery which was missing in last release by accident Version 1.0.5 ~~~~~~~~~~~~~ * Maintenance release of stable series * Changes: - Add a workaround for a bug in iOS 4.3 affecting lockdown_get_value() which most prominently affected libgpod, gvfs, ideviceinfo and some other tools - Read ProxyDeath message to preventing obsolete messages in device syslog - Rework SWIG detection and includes - Add manpages for ideviceenterrecovery and idevicepair - Add missing libgen.h include to silence compiler warnings Version 1.0.4 ~~~~~~~~~~~~~ * Maintenance release of stable series * Changes: - Fix a possible crash in lockdownd_client_new_with_handshake() - Do not not check for Swig/Python if --without-swig is set - Fail with an error message if libgcrypt is not found - Pass host certificate with GNUTLS correctly - Fix connecting to iOS 4.2.1+ devices Version 1.0.3 ~~~~~~~~~~~~~ * Maintenance release of stable series * Changes: - Terminate idevicesyslog on receive errors (like device unplug) - Bugfixes for idevicebackup tool - Hopefully the last fixes for big endian machines - Build fixes for FreeBSD Python support - Fix build on Mac OS X Version 1.0.2 ~~~~~~~~~~~~~ * Maintenance release of stable series * Changes: - Backport new idevicepair tool to manage pairings - Fix a bug causing bad backup data - Silence 64bit compiler warnings - Plug some memory leaks Version 1.0.1 ~~~~~~~~~~~~~ * Maintenance release of stable series * Changes: - Cleanup includes of files - Use glib instead of netinet for endianess - Fix installation_proxy not adding client options correctly - idevicebackup: better handle broken or missing plist files - Fix some memory leaks in pairing/handshake process - Fix label not being used in lockdownd_client_new() - Update AUTHORS, README and installation instructions Version 1.0.0 ~~~~~~~~~~~~~ * Changes: - Update and fix documentation for full coverage - Add man pages for tools - Extend mobilebackup interface - Add user data argument to notification callback function - Fix broken Python bindings - Add Python bindings for notification proxy interface - Add screenshotr interface and tool - Add mobile_image_mounter interface and tool - Remove HAL fdi rules Version 0.9.7 (RC1) ~~~~~~~~~~~~~~~~~~~ * Project is now called libimobiledevice due to legal reasons * Changes: - Project renamed to libimobiledevice - Add soname versioning for future releases - Fix regression causing never paired devices to not work by adding auto-pairing for devices in lockdownd_client_new_with_handshake - Add file_relay service implementation and dev test tool - Minor device link service fixes - New idevicebackup tool with support for full and incremental backups - Add mobilebackup service implementation Version 0.9.6 ~~~~~~~~~~~~~ * Changes: - Minor public API changes to prepare for 1.0 release: * lockdownd_client_new -> lockdownd_client_new_with_handshake * fooservice_recv -> fooservice_receive * iphone_device_send/_recv -> iphone_connection_send/_receive - Rename some code for consistency - Refactor pairing to allow custom pair records - Move SSL handling out of lockdownd code - Refactor lockdown session handling code - Remove debug mask support - No longer do a full lockdown handshake on client_new - Refactor debug code to be consistent and easier to use - Run validate_pair by default during lockdown handshake - Allow retrieving the type for lockdown query_type request - Add new property_list_service and device_link_service abstractions - Detect pairing failure due to having a password set on the device - Implement lockdown phone activation and deactivation - Fix iphoneinfo not printing values in key/value mode - Implement lockdownd_unpair() request - Add more notification ids and lockdown domains - Implement label support for lockdown requests - Add new installation_proxy interface - Add new sbservices interface - Implement lockdownd_validate_pair() request - Add endian safety to AFC - Make lockdown sessions without SSL work - Fix linking on Mandriva Linux - Minor bugfixes and documentation updates Version 0.9.5 ~~~~~~~~~~~~~ * Changes: - Updated to the latest libplist 0.16 API - Fixed various minor leaks and issues - Updated Python bindings and module name Version 0.9.4 ~~~~~~~~~~~~~ * Changes: - Update to libplist 0.15 API rework - Update Python bindings - Bufixes around usbmuxd daemon usage - Use automake 1.11 silent rules if available - Various bugfixes Version 0.9.3 ~~~~~~~~~~~~~ * Changes: - Bump libplist requirement to 0.13 and remove deprecated code Version 0.9.2 ~~~~~~~~~~~~~ * Changes: - Migrate to use the new usbmuxd daemon - Refactor whole API - Add iPhone 3GS support - Add hard/symlink support for AFC - New iphone_id tool to list connected devices and get the device name - iphoneinfo now allows plist/xml output and queries by domain/key - Fix a lot of bugs/crashes, compiler warnings and comments Version 0.9.1 ~~~~~~~~~~~~~ * Changes: - Fix make distcheck - Bump libplist requirement to 0.12 and remove deprecated code - A bunch of autotools fixes Version 0.9.0 ~~~~~~~~~~~~~ * Changes: - Fix pkg-config dependancies - Fix Python binding generation - AFC cleanup and improved error handling - Add support for the notification proxy service - Add tools to show device information and relay syslog - More robust pairing implementation - Remove libiphone-initconf, SSL implementation handles it at runtime now - Fix receive of plists larger than a packet - Return an error if failed to start a service on the device - Fix usb enumeration - Fix udev rule to catch usb hubs, too - Add large file support - Move out plist handling into libplist and depend on it - Add Python bindings - Lots of bugfixes Version 0.1.0 ~~~~~~~~~~~~~ * Changes: - Use udev to set usb configuration; iphone kmod is obsolete now - Remove HAL mounting - Bugfixes