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