1Version 1.3.0
2~~~~~~~~~~~~~
3
4* Development release "Let's get the party started."
5* Changes:
6  - Fix Python 3 support
7  - Add more lockdown error codes
8  - Add new lockdownd_pair_with_options() function
9  - Fix GnuTLS support with iOS 10
10  - Make sure sockets only listen locally due to security reasons
11  - Plug various memory leaks
12  - Fix SSL version negotiation for newer versions of OpenSSL
13  - Optimize lockdown pair record handling
14  - Return proper error code when a lockdown pair record is missing
15  - Fix building with MingGW
16  - Store application information in Info.plist using idevicebackup2
17  - Fix application backup handling to allow the device to restore applications
18    that were installed using idevicebackup2
19  - Make idevicebackup2 reboot after restore the default to allow the device to
20    migrate data correctly and thus improve the restored device data state
21  - Improve console frontend information output in idevicebackup2
22  - Extend ideviceprovision tool to allow retrieving and removing all
23    provisioning profiles
24  - Fix parsing large provisioning profile using ideviceprovision
25  - Fix receiving large property lists in property list service
26  - Propagate lower level errors to callers instead of returning
27    IDEVICE_E_UNKNOWN_ERROR
28  - API: Add IDEVICE_DEVICE_PAIRED event type
29  - Detect screenshot format to support png, tiff and dat formats using
30    idevicescreenshot tool
31  - API: Add mobileactivation service implementation
32  - Wait for passcode entry if required using idevicesyslog
33  - Add HDMI option to diagnostics command for idevicediagnostics
34  - Fix IORegistry command for iOS 11+ devices in idevicediagnostics
35  - Remove 40-digit character limit for UDID in tools to support newer devices
36  - Fix broken validate command in idevicepair with iOS 11+
37  - Fix OpenSSL version checks for configure target when using LibreSSL
38  - Migrate latest improved common code from libusbmuxd
39  - Convert README file to markdown format
40  - Fix idevicecrashreport tool to work with iOS 13+
41  - Fix various errors in SSL communication logic
42  - API: Add preboard service implementation
43  - Output hint to user to enter passcode when changing password using
44    idevicebackup2
45  - Cython: Fix and improve debugserver and diagnostics service bindings
46  - API: Add WiFi device support via new idevice_new_with_options() function
47  - API: Add idevice_get_device_list_extended() to also list network devices
48  - API: Add lockdown_strerror() helper to get error representation as string
49  - Add network device support to idevicesyslog and ideviceinfo tools
50  - Make debug output consistently output to stderr
51  - Add new idevicesetlocation tool (requires mounted developer image)
52  - Add option to exit if device disconnects in idevicesyslog
53  - API: Add syslog_relay_start_capture_raw() for raw syslog capture
54  - Add color output and process filter support to idevicesyslog
55  - API: Add companion_proxy service implementation
56  - Bump dependency to libusbmuxd 2.0.2
57  - Bump dependency to libplist 2.2.0
58  - Improve error handling and reporting in library and tools
59  - Fix various memory leaks in library and tools
60  - Add "--network" and "--version" options to all tools
61  - Fix socket_connect_addr() not connecting to network devices using IPv6
62    in some cases.
63  - Improve IPv6 "scope id" detection to fix connecting to network devices with
64    link-local adresses.
65  - Update man pages
66  - Fix various inconsistent declarations in public headers
67  - Allow OpenSSL >= 1.1.0 to use older/disallowed TLS versions fixing issues
68    where pairing records were getting removed repeatingly
69  - Fixed memory leaks
70  - Cython: Rewrite version detection logic in configure.ac
71  - Rename "--enable-debug-code" configure option to "--enable-debug"
72  - Improve README.md with project description, installation, contributing and
73    usage sections
74  - Rename library and all related files by adding an API version resulting
75    in "libimobiledevice-1.0"
76  - Bump soname version
77* API is UNSTABLE
78
79Version 1.2.0
80~~~~~~~~~~~~~
81
82* Stable release "It took you so long baby!"
83* Changes:
84  - Require autoconf 2.64 or later
85  - Remove dev tools, will return either as proper tools or website examples
86  - Refactor installation proxy service implementation and normalize code
87  - API: Added instproxy_lookup() to efficiently lookup app information
88  - API: Added instproxy_check_capabilities_match() to check device capabilities
89  - API: Added various instproxy command and status plist getters
90  - API: Make debugserver_client_set_ack_mode() public
91  - Fix handling of clients reconnecting in idevicedebugserverproxy which
92    previously didn't work properly
93  - Flush stdout for every line in idevicesyslog
94  - Fix shutdown of idevicedebugserverproxy tool which could hang
95  - Notify user when erroneously using idevicebackup with iOS 4 or later
96  - Enable build of idevicecrashreport on WIN32
97  - Fix thread handle leaks on WIN32 adding thread_new and thread_free
98  - cython: Add receive/receive_timeout methods for iDeviceConnection to
99    receive raw data from a connection
100  - cython: Add new FILE_RELAY_E_PERMISSION_DENIED(-6) error
101  - API: Refactor lockdown service internal error checking and add a bunch of
102    new native errors
103  - Convert int16_t macro error types into enum within common module, too
104  - Add new "idevicenotificationproxy" tool to post or observe notifications
105  - Fix overlong blocking in np_client_free()
106  - Improve maintainability and Requires of pkg-config file
107  - API: Add new LOCKDOWN_E_SERVICE_LIMIT error to detect service limit states
108  - API: Remove const argv requirement for debugserver_command_new
109  - cython: Add get_path_for_bundle_identifier() method to
110    InstallationProxyClient
111  - cython: Add DebugServerClient class to communicate with debugserver
112  - Comply to strict function prototypes by using (void) instead of just ()
113  - Fix notification proxy shutdown process which was incorrectly implemented
114  - Fix linking problems on OS X
115  - Fix missing debug output which broke with the last release
116  - Unify and improve various debug messages
117  - Fix re-pairing if pairing with existing pair record failed initially
118  - Skip printing long plist (16kb+) files to prevent excessive debug output
119  - Move a few common helpers from backup tools to common utility helper code
120  - Remove incorrect flags from afc_file_open() documentation
121  - Fix various memory leaks
122
123Version 1.1.7
124~~~~~~~~~~~~~
125
126* Development release "Cleaning up the yard."
127* Changes:
128  - Fix broken app args, environment handling and memory leaks in idevicedebug
129  - Make all tools print an error if lockdown connection fails
130  - Convert int16_t macro error types into enum for better type-checking and
131    for various debugging benefits
132  - Avoid exporting non-public symbols for better ABI stability
133  - Fix failing backup process for devices having a passcode set and entering
134    lock state during the process in idevicebackup2
135  - API: Added lockdownd_start_service_with_escrow_bag()
136  - API: Added afc_remove_path_and_contents() for recursive deletion
137  - Fix last memory leak with OpenSSL through proper library deinitialization
138  - Add new idevicedebug tool to interact with debugserver on a device
139  - API: Add debugserver service implementation
140  - Handle new PermissionDenied error of file_relay due new security in iOS 8+
141  - Fix retry loop problem when device requests 0 files in idevicebackup2
142  - Add trust dialog related error codes to Cython bindings
143  - Fix various memory leaks in AFC implementation
144  - Fix disk image upload with latest iOS 8 in ideviceimagemounter
145  - Add new "dump" command to print information about a provisioning profile in
146    ideviceprovision
147  - Refactor plist print helper code and move it into common module for better
148    reuse accross the tools
149  - Do not crash if retrieving the system buid fails
150  - API: Make generic "propery_list_service_client" public
151  - Moved doc comments from private to public headers
152  - Fix possible segfault when using lockdownd_get_value() due to always
153    returning success
154  - Do not read files entirely into memory during restore in idevicebackup
155  - Plug a few memory leaks and fix invalid password check in idevicebackup2
156  - Add support for file sizes > 4GB on Win32 in idevicebackup2
157  - Fix declaration for DllMain on Win32
158  - Silence various compiler warnings
159  - Fix assert within pairing logic
160* API is UNSTABLE
161
162Version 1.1.6
163~~~~~~~~~~~~~
164
165* Development release "Way too overdue."
166* Changes:
167  - Remove segmentation code from afc_file_read() to provide raw interface and
168    more control to API consumer I/O logic
169  - Implement global thread safe library initialization, especially to control
170    SSL backend lifecycle
171  - Major refactoring of pair record code and logic to use new usbmuxd pair
172    record management interface
173  - Replace user level with system wide pair record file handling
174  - Bump dependency to libplist 1.11 and remove use of "plist_dict_insert_item"
175  - Bump dependency to libusbmuxd 1.0.9
176  - Finish pair record and trust dialog handling for iOS 7+
177  - Improve AFC write performance and memory usage
178  - Add support for custom output filename to idevicescreenshot
179  - Fix detection and compilation for Python 3.x
180  - API: Added file_relay_request_sources_timeout()
181  - Fix broken HouseArrestClient class in cython bindings
182  - Add new idevicecrashreport tool to retrieve crash reports and logs from a
183    device
184  - Prevent "Failed to restart/shutdown device" messages in idevicediagnostics
185  - Link against ws2_32.dll on Win32
186  - Add support for iOS 7+ disk image mounting to ideviceimagemounter
187  - Add new idevicename tool to get or set the device name
188  - Allow unbacking of encrypted backups with a given password to idevicebackup2
189  - Remove sending "Goodbye" request on lockdown
190  - Add support for newer PLIST_REAL based time type to idevicedate
191  - Add note about setting time not working on iOS 6+ to idevicedate
192  - Handle partial SSL reads correctly now to prevent random crashes
193  - Fix duplicated output in ideviceinfo output
194  - Remove a bunch of dead code
195  - Fix deprecated OpenSSL "RSA_generate_key" with "RSA_generate_key_ex" which
196    is available since OpenSSL 0.9.8 (July 2005)
197  - Improve debug messages
198  - Enforce "-fsigned-char" to fix issues on embedded platforms
199  - Fix compilation with Clang/LLVM
200  - Avoid versioning for shared library on Win32
201  - Add experimental support for controlling cloud backup mode to idevicebackup2
202  - Save EscrowBag when starting service for automatic unlocking in pair record
203  - Remove pairing logic which is obsoleted by usbmuxd's preflight handler
204  - Fix shutdown of SSL connection to be correct and no longer generate errors
205    on device
206  - Add support for GnuTLS 3.x and fix broken GnuTLS backend
207  - Add extensions to generated certificates to match native ones
208  - Add "systembuid" command to idevicepair
209  - Allow starting service without the need for a running SSL session
210  - Refactor more code into common module
211  - Add option to filerelaytest to specify a source to request
212  - Fix support for partial messages in webinspector implementation
213  - Implement support for encrypted backups in idevicebackup2
214  - API: Export SSL control functions for idevice_connection_t
215  - API: Make generic service client public to allow external service
216    implementations
217  - Implement *_start_service() helper for easier creation of service clients
218  - Add public *_SERVICE_NAME defines for each service
219  - Fix a great bunch of memory leaks after intensive valgrind session
220  - Security: Fix insecure use of the /tmp directory (CVE-2013-2142)
221  - A bunch of memory leak fixes
222  - Python: Various fixes and support for "with" statement for AfcFile class
223  - Python: Add Afc2Client class to allow jailbroken filesystem access
224  - Fix linking issue with newer libtool as reported for Ubuntu
225  - Fix stuck thread in idevicesyslog which broke quit from within the tool
226  - Add syslog_relay service implementation and use it in idevicesyslog
227  - API: Add instproxy_client_get_path_for_bundle_identifier() helper
228  - API: Add afc_dictionary_free() helper
229  - Move thread, socket, debug and userpref code to "common" source directory
230    in order to improve code reuse
231  - Fix broken byte order detection in configure.ac which could lead to broken
232    AFC protocol communication on platforms without endian.h (Raspberry PI)
233* API is UNSTABLE
234
235Version 1.1.5
236~~~~~~~~~~~~~
237
238* Development release
239* Changes:
240  - Implement automatic reconnecting in idevicesyslog
241  - Refactor all services to use new base service
242  - Add new generic service_client_factory_start_service() helper
243  - Implement a base service that all services inherit from
244  - API: Refactor use of "port numbers" into a "service descriptor" which is
245    a needed change as all services must now transparently support SSL.
246    Fortunately, only minor changes are needed to migrate your code properly.
247  - Add experimental ideviceheartbeat to allow service checkin over the network
248  - Add heartbeat service implementation to keep alive network connections
249  - Add webinspector service implementation for WebKit remote debugging
250  - Fix idevicebackup2 failing due to integer overflow in free disk space
251    calculation on 32 bit architectures and large disk capacities
252  - Add support for encrypted and password protected backups to idevicebackup2
253  - Fix major "too long filename received" bug in idevicebackup2
254  - Various fixes for proper and tested WIN32 support including MinGW building
255  - Fix various crashers and improve quality of idevicebackup2 tool
256  - Add endianness helpers for systems lacking support
257  - Fix idevicedate to work on iOS 6+
258  - Add idevicediagnostics tool
259  - Add diagnostics_relay service implementation
260  - Add idevicedebugserverproxy tool for remote lldb debugging
261  - Add ideviceprovision tool
262  - Add misagent service implementation to manage provisioning profiles
263  - Fix crash if $HOME is empty or not defined
264  - Fix non-ASCII characters being stripped when using plist communication
265  - Improve compile support for cython and check it at configure time
266  - Bump cython requirement to 0.17.0+
267  - Fix compilation of cython bindings
268  - Python bindings now cover all C APIs
269  - Fix iOS 6 compatibility for mobilesync, mobilebackup, mobilebackup2 and
270    screenshotr by bumping device link protocol version number
271  - Do not strip non_ASCII characters from XML plists
272  - Fix possible crash when using OpenSSL
273* API is UNSTABLE
274
275Version 1.1.4
276~~~~~~~~~~~~~
277
278* Development release
279* Changes:
280  - Fix a bug in idevicesyslog causing the connection to close after timeout
281  - Bump soname revision
282* API is UNSTABLE
283
284Version 1.1.3
285~~~~~~~~~~~~~
286
287* Development release
288* Changes:
289  - Bump libusbmuxd dependency to 1.0.8
290  - Fix reading from syslog_relay and remove null characters
291  - Relicense ideviceimagemounter and idevicescreenshot to LGPL
292  - Fix a crash when using restored_client_free()
293  - API: Add sbservices_get_interface_orientation()
294  - Update man pages and code comments for documentation
295  - Minor cleanup
296* API is UNSTABLE
297
298Version 1.1.2
299~~~~~~~~~~~~~
300
301* Development release
302* Changes:
303  - Add Python bindings generated by Cython
304  - Bump libplist requirement to latest 1.8
305  - Add support for OpenSSL with fallback to GNUTLS
306  - Improvements and various fixes for Win32 and OS X build
307  - Remove glib dependency
308  - Improve restored implementation
309  - Fix various memory leaks
310  - Fix support for iOS 5 and later
311* SWIG Python Bindings are removed
312* API is UNSTABLE
313
314Version 1.1.1
315~~~~~~~~~~~~~
316
317* Development release
318* Changes:
319  - Add new idevicebackup2 tool for full backup and restore support on iOS 4+
320  - Add a workaround for a bug in iOS 4.3 affecting lockdown_get_value() which
321    most prominently affected libgpod, gvfs, ideviceinfo and some other tools
322  - Read ProxyDeath message to preventing obsolete messages in device syslog
323  - Rework SWIG detection and includes
324  - Add new idevicedate tool to get or set the clock on iDevices
325  - API: Add mobilesync_clear_all_records_on_device()
326  - API: Change device_link_service_disconnect() to accept a message
327  - Add manpages for ideviceenterrecovery, idevicepair, idevicebackup2 and
328    idevicedate
329  - Add missing libgen.h include to silence compiler warnings
330  - Fix a segfault that might occour if locally stored certs could not be read
331  - Fix various memory leaks
332  - Update documentation
333* Python Bindings will get refactored completely
334* API is UNSTABLE
335
336Version 1.1.0
337~~~~~~~~~~~~~
338
339* Development release
340* Changes:
341  - Implement restoring backups using idevicebackup
342  - Allow connecting without pairing using "ideviceinfo -s"
343  - Add ideviceenterrecovery tool
344  - Add mobilesync service implementation
345  - Add restored service implementation for restore mode
346  - Add home_arrest service implementation for document sharing
347  - Add API afc_client_new_from_connection()
348  - Support to fetch wallpaper in sbservices
349  - Support for formatVersion 2 of iOS 4+ in sbservices
350  - Add new lockdownd domains to ideviceinfo
351  - Give the device time to prepare backup data to prevent abort
352  - Improve idevicebackup output
353  - notification_proxy fixes and new notification type
354  - Silence some 64bit compiler warnings
355  - Fix various memory leaks
356  - Update documentation
357* Python Bindings will get refactored completely
358* API is UNSTABLE
359
360Version 1.0.7
361~~~~~~~~~~~~~
362
363* Maintenance release of stable series
364* Changes:
365  - Fix SWIG 2.x detection
366  - Fix support for iOS 5 and later
367  - Flush output of idevicesyslog immediately
368  - Replace deprecated GNUTLS functions properly
369  - Fix segfaults in library and some tools
370  - Fix memory leaks
371  - Build fixes
372
373Version 1.0.6
374~~~~~~~~~~~~~
375
376* Quick follow up release
377* Changes:
378  - Add ideviceenterrecovery which was missing in last release by accident
379
380Version 1.0.5
381~~~~~~~~~~~~~
382
383* Maintenance release of stable series
384* Changes:
385  - Add a workaround for a bug in iOS 4.3 affecting lockdown_get_value() which
386    most prominently affected libgpod, gvfs, ideviceinfo and some other tools
387  - Read ProxyDeath message to preventing obsolete messages in device syslog
388  - Rework SWIG detection and includes
389  - Add manpages for ideviceenterrecovery and idevicepair
390  - Add missing libgen.h include to silence compiler warnings
391
392Version 1.0.4
393~~~~~~~~~~~~~
394
395* Maintenance release of stable series
396* Changes:
397  - Fix a possible crash in lockdownd_client_new_with_handshake()
398  - Do not not check for Swig/Python if --without-swig is set
399  - Fail with an error message if libgcrypt is not found
400  - Pass host certificate with GNUTLS correctly
401  - Fix connecting to iOS 4.2.1+ devices
402
403Version 1.0.3
404~~~~~~~~~~~~~
405
406* Maintenance release of stable series
407* Changes:
408  - Terminate idevicesyslog on receive errors (like device unplug)
409  - Bugfixes for idevicebackup tool
410  - Hopefully the last fixes for big endian machines
411  - Build fixes for FreeBSD Python support
412  - Fix build on Mac OS X
413
414Version 1.0.2
415~~~~~~~~~~~~~
416
417* Maintenance release of stable series
418* Changes:
419  - Backport new idevicepair tool to manage pairings
420  - Fix a bug causing bad backup data
421  - Silence 64bit compiler warnings
422  - Plug some memory leaks
423
424Version 1.0.1
425~~~~~~~~~~~~~
426
427* Maintenance release of stable series
428* Changes:
429  - Cleanup includes of files
430  - Use glib instead of netinet for endianess
431  - Fix installation_proxy not adding client options correctly
432  - idevicebackup: better handle broken or missing plist files
433  - Fix some memory leaks in pairing/handshake process
434  - Fix label not being used in lockdownd_client_new()
435  - Update AUTHORS, README and installation instructions
436
437Version 1.0.0
438~~~~~~~~~~~~~
439
440* Changes:
441  - Update and fix documentation for full coverage
442  - Add man pages for tools
443  - Extend mobilebackup interface
444  - Add user data argument to notification callback function
445  - Fix broken Python bindings
446  - Add Python bindings for notification proxy interface
447  - Add screenshotr interface and tool
448  - Add mobile_image_mounter interface and tool
449  - Remove HAL fdi rules
450
451Version 0.9.7 (RC1)
452~~~~~~~~~~~~~~~~~~~
453
454* Project is now called libimobiledevice due to legal reasons
455* Changes:
456  - Project renamed to libimobiledevice
457  - Add soname versioning for future releases
458  - Fix regression causing never paired devices to not work by adding
459    auto-pairing for devices in lockdownd_client_new_with_handshake
460  - Add file_relay service implementation and dev test tool
461  - Minor device link service fixes
462  - New idevicebackup tool with support for full and incremental backups
463  - Add mobilebackup service implementation
464
465Version 0.9.6
466~~~~~~~~~~~~~
467
468* Changes:
469  - Minor public API changes to prepare for 1.0 release:
470    * lockdownd_client_new -> lockdownd_client_new_with_handshake
471    * fooservice_recv -> fooservice_receive
472    * iphone_device_send/_recv -> iphone_connection_send/_receive
473  - Rename some code for consistency
474  - Refactor pairing to allow custom pair records
475  - Move SSL handling out of lockdownd code
476  - Refactor lockdown session handling code
477  - Remove debug mask support
478  - No longer do a full lockdown handshake on client_new
479  - Refactor debug code to be consistent and easier to use
480  - Run validate_pair by default during lockdown handshake
481  - Allow retrieving the type for lockdown query_type request
482  - Add new property_list_service and device_link_service abstractions
483  - Detect pairing failure due to having a password set on the device
484  - Implement lockdown phone activation and deactivation
485  - Fix iphoneinfo not printing values in key/value mode
486  - Implement lockdownd_unpair() request
487  - Add more notification ids and lockdown domains
488  - Implement label support for lockdown requests
489  - Add new installation_proxy interface
490  - Add new sbservices interface
491  - Implement lockdownd_validate_pair() request
492  - Add endian safety to AFC
493  - Make lockdown sessions without SSL work
494  - Fix linking on Mandriva Linux
495  - Minor bugfixes and documentation updates
496
497Version 0.9.5
498~~~~~~~~~~~~~
499
500* Changes:
501  - Updated to the latest libplist 0.16 API
502  - Fixed various minor leaks and issues
503  - Updated Python bindings and module name
504
505Version 0.9.4
506~~~~~~~~~~~~~
507
508* Changes:
509  - Update to libplist 0.15 API rework
510  - Update Python bindings
511  - Bufixes around usbmuxd daemon usage
512  - Use automake 1.11 silent rules if available
513  - Various bugfixes
514
515Version 0.9.3
516~~~~~~~~~~~~~
517
518* Changes:
519  - Bump libplist requirement to 0.13 and remove deprecated code
520
521Version 0.9.2
522~~~~~~~~~~~~~
523
524* Changes:
525  - Migrate to use the new usbmuxd daemon
526  - Refactor whole API
527  - Add iPhone 3GS support
528  - Add hard/symlink support for AFC
529  - New iphone_id tool to list connected devices and get the device
530    name
531  - iphoneinfo now allows plist/xml output and queries by
532    domain/key
533  - Fix a lot of bugs/crashes, compiler warnings and comments
534
535Version 0.9.1
536~~~~~~~~~~~~~
537
538* Changes:
539  - Fix make distcheck
540  - Bump libplist requirement to 0.12 and remove deprecated code
541  - A bunch of autotools fixes
542
543Version 0.9.0
544~~~~~~~~~~~~~
545
546* Changes:
547  - Fix pkg-config dependancies
548  - Fix Python binding generation
549  - AFC cleanup and improved error handling
550  - Add support for the notification proxy service
551  - Add tools to show device information and relay syslog
552  - More robust pairing implementation
553  - Remove libiphone-initconf, SSL implementation handles it at
554    runtime now
555  - Fix receive of plists larger than a packet
556  - Return an error if failed to start a service on the device
557  - Fix usb enumeration
558  - Fix udev rule to catch usb hubs, too
559  - Add large file support
560  - Move out plist handling into libplist and depend on it
561  - Add Python bindings
562  - Lots of bugfixes
563
564Version 0.1.0
565~~~~~~~~~~~~~
566
567* Changes:
568  - Use udev to set usb configuration; iphone kmod is obsolete now
569  - Remove HAL mounting
570  - Bugfixes
571
572