1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
|
Version 1.2.1
~~~~~~~~~~~~~
* Development release "Let's get the party started."
* Changes:
- Fix Python 3 support
- Add more lockdown error codes
- Add new lockdownd_pair_with_options() function
- Fix GnuTLS support with iOS 10
- Make sure sockets only listen locally due to security reasons
- Plug various memory leaks
- Fix SSL version negotiation for newer versions of OpenSSL
- Optimize lockdown pair record handling
- Return proper error code when a lockdown pair record is missing
- Fix building with MingGW
- Store application information in Info.plist using idevicebackup2
- Fix application backup handling to allow the device to restore applications
that were installed using idevicebackup2
- Make idevicebackup2 reboot after restore the default to allow the device to
migrate data correctly and thus improve the restored device data state
- Improve console frontend information output in idevicebackup2
- Extend ideviceprovision tool to allow retrieving and removing all
provisioning profiles
- Fix parsing large provisioning profile using ideviceprovision
- Fix receiving large property lists in property list service
- Propagate lower level errors to callers instead of returning
IDEVICE_E_UNKNOWN_ERROR
- API: Add IDEVICE_DEVICE_PAIRED event type
- Detect screenshot format to support png, tiff and dat formats using
idevicescreenshot tool
- API: Add mobileactivation service implementation
- Wait for passcode entry if required using idevicesyslog
- Add HDMI option to diagnostics command for idevicediagnostics
- Fix IORegistry command for iOS 11+ devices in idevicediagnostics
- Remove 40-digit character limit for UDID in tools to support newer devices
- Fix broken validate command in idevicepair with iOS 11+
- Fix OpenSSL version checks for configure target when using LibreSSL
- Migrate latest improved common code from libusbmuxd
- Convert README file to markdown format
- Fix idevicecrashreport tool to work with iOS 13+
- Fix various errors in SSL communication logic
- API: Add preboard service implementation
- Output hint to user to enter passcode when changing password using
idevicebackup2
- Cython: Fix and improve debugserver and diagnostics service bindings
- API: Add WiFi device support via new idevice_new_with_options() function
- API: Add idevice_get_device_list_extended() to also list network devices
- API: Add lockdown_strerror() helper to get error representation as string
- Add network device support to idevicesyslog and ideviceinfo tools
- Make debug output consistently output to stderr
- Add new idevicesetlocation tool (requires mounted developer image)
- Add option to exit if device disconnects in idevicesyslog
- API: Add syslog_relay_start_capture_raw() for raw syslog capture
- Add color output and process filter support to idevicesyslog
- API: Add companion_proxy service implementation
- Bump dependency to libusbmuxd 2.0.2
- Bump dependency to libplist 2.2.0
- Improve error handling and reporting in library and tools
- Fix various memory leaks in library and tools
- Add "--network" and "--version" options to all tools
- Fix socket_connect_addr() not connecting to network devices using IPv6
in some cases.
- Improve IPv6 "scope id" detection to fix connecting to network devices with
link-local adresses.
- Fixed memory leaks
* API is UNSTABLE
Version 1.2.0
~~~~~~~~~~~~~
* Stable release "It took you so long baby!"
* 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
Version 1.1.7
~~~~~~~~~~~~~
* Development release "Cleaning up the yard."
* 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
for 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
* 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
|