libimobiledevice Changelog

What's new in libimobiledevice 1.2.0

Jan 29, 2015
  • Changes:
  • Require autoconf 2.64 or later
  • Remove dev tools, will return either as proper tools or website examples
  • Refactor installation proxy service implementation and normalize code
  • API: Added instproxy_lookup() to efficiently lookup app information
  • API: Added instproxy_check_capabilities_match() to check device capabilities
  • API: Added various instproxy command and status plist getters
  • API: Make debugserver_client_set_ack_mode() public
  • Fix handling of clients reconnecting in idevicedebugserverproxy which
  • previously didn't work properly
  • Flush stdout for every line in idevicesyslog
  • Fix shutdown of idevicedebugserverproxy tool which could hang
  • Notify user when erroneously using idevicebackup with iOS 4 or later
  • Enable build of idevicecrashreport on WIN32
  • Fix thread handle leaks on WIN32 adding thread_new and thread_free
  • cython: Add receive/receive_timeout methods for iDeviceConnection to receive raw data from a connection
  • cython: Add new FILE_RELAY_E_PERMISSION_DENIED(-6) error
  • API: Refactor lockdown service internal error checking and add a bunch of new native errors
  • Convert int16_t macro error types into enum within common module, too
  • Add new "idevicenotificationproxy" tool to post or observe notifications
  • Fix overlong blocking in np_client_free()
  • Improve maintainability and Requires of pkg-config file
  • API: Add new LOCKDOWN_E_SERVICE_LIMIT error to detect service limit states
  • API: Remove const argv requirement for debugserver_command_new
  • cython: Add get_path_for_bundle_identifier() method to
  • InstallationProxyClient
  • cython: Add DebugServerClient class to communicate with debugserver
  • Comply to strict function prototypes by using (void) instead of just ()
  • Fix notification proxy shutdown process which was incorrectly implemented
  • Fix linking problems on OS X
  • Fix missing debug output which broke with the last release
  • Unify and improve various debug messages
  • Fix re-pairing if pairing with existing pair record failed initially
  • Skip printing long plist (16kb+) files to prevent excessive debug output
  • Move a few common helpers from backup tools to common utility helper code
  • Remove incorrect flags from afc_file_open() documentation
  • Fix various memory leaks

New in libimobiledevice 1.1.7 (Oct 15, 2014)

  • Changes:
  • Fix broken app args, environment handling and memory leaks in idevicedebug
  • Make all tools print an error if lockdown connection fails
  • Convert int16_t macro error types into enum for better type-checking and or various debugging benefits
  • 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

New in libimobiledevice 1.1.6 (Jun 20, 2014)

  • 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 valigrind 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

New in libimobiledevice 1.1.5 (Mar 21, 2013)

  • 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

New in libimobiledevice 1.1.4 (Aug 10, 2012)

  • Changes:
  • Fix a bug in idevicesyslog causing the connection to close after timeout
  • Bump soname revision
  • API is UNSTABLE

New in libimobiledevice 1.1.3 (Aug 10, 2012)

  • 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

New in libimobiledevice 1.1.2 (Aug 10, 2012)

  • 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

New in libimobiledevice 1.1.1 (Aug 10, 2012)

  • 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

New in libimobiledevice 1.1.0 (Aug 10, 2012)

  • 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

New in libimobiledevice 1.0.7 (Aug 10, 2012)

  • 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

New in libimobiledevice 1.0.6 (Aug 10, 2012)

  • Quick follow up release
  • Changes:
  • Add ideviceenterrecovery which was missing in last release by accident

New in libimobiledevice 1.0.5 (Aug 10, 2012)

  • 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