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