summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2024-06-27Add support for iOS 17+ Personalized Developer Disk image mountingGravatar Nikias Bassen1-4/+270
2024-03-16Add libimobiledevice_version() function to interfaceGravatar Nikias Bassen1-0/+8
2024-02-01Add afc_strerror function to interfaceGravatar Nikias Bassen1-0/+67
2024-01-31Move LIBIMOBILEDEVICE_API to public headersGravatar Nikias Bassen55-321/+348
2023-12-16idevice: Update for LibreSSL >= 3.6.0Gravatar orbea1-1/+2
Since LibreSSL 3.6.0 SSL_CTX_set_security_level() has been available.
2023-12-16lockdown-cu: Fix the build with LibreSSL >= 3.5.0Gravatar orbea1-2/+2
In LibreSSL >= 3.5.0 many structs are defined as opaque as they are in OpenSSL 1.1.
2023-12-16mobilebackup: Add missing includeGravatar Nikias Bassen1-0/+1
2023-12-16sbservices: Read setIconState responseGravatar Dave Nicolson1-1/+4
This allows the same connection to be used again after sbservices_set_icon_state is called. Fixes #928.
2023-12-12Fix iOS 1 SSL connectionGravatar tihmstar1-0/+14
Detect if we're talking to iOS 1 `if (connection->device->version == 0)` and set `SSL_CTX_set_min_proto_version(ssl_ctx, 0);` to support SSL3. iOS 1 doesn't understand TLS1_VERSION, it can only speak SSL3_VERSION. However, modern OpenSSL is usually compiled without SSLv3 support. So if we set min_proto_version to SSL3_VERSION on an OpenSSL instance which doesn't support it, it will just ignore min_proto_version altogether and fall back to an even higher version. To avoid accidentally breaking iOS 2.0+, we set min version to 0 instead.
2023-10-07automake: Reorder CFLAGS to fix build issues and use correct SSL library ↵Gravatar Nikias Bassen1-7/+7
flags across Makefiles
2023-07-05Silence (v)asprintf related compiler warningsGravatar Nikias Bassen1-2/+5
2023-07-05Updated OpenSSL-specific code to use OpenSSL 3.0+ APIGravatar Nikias Bassen1-2/+32
2023-06-28idevice: Add missing include for WindowsGravatar Nikias Bassen1-0/+1
2023-06-28idevice: Fix network address handling in other code paths tooGravatar Nikias Bassen1-4/+37
2023-06-27idevice: Use network addresses as is from what we get from (lib)usbmuxdGravatar Nikias Bassen1-19/+8
2023-04-21Updated to use latest libplist API changesGravatar Nikias Bassen1-1/+1
2023-03-23installation_proxy: Handle BundleIDs in instproxy_client_options_addGravatar Nikias Bassen1-1/+1
BundleIDs are passed as an array so we need to make sure it gets added as such. In fact though we just copy the node from the va_arg :)
2023-02-21reverse_proxy: Fix use-after-freeGravatar Nikias Bassen1-1/+2
2023-01-11idevice: Use more reliable version check macro for OpenSSL 3 specific thingsGravatar Nikias Bassen1-1/+1
OpenSSL versions pre 3.0 do not define OPENSSL_VERSION_MAJOR etc.
2023-01-11idevice: Fix connections to <= iOS 5 devices with OpenSSL 3Gravatar Nikias Bassen1-1/+10
Thanks @tihmstar for pointing this out.
2023-01-11idevice: Simplify TLS version selection code for older devicesGravatar Nikias Bassen1-6/+4
Turns out that SSL_CTX_set_options does *not* clear options that have been set before.
2022-10-04lockdown: Fix error parsing for older iOS versionsGravatar Nikias Bassen1-35/+19
A logical bug did prevent parsing the 'Error' node since the code path is never reached when a 'Result' node is found first. This is mitigated by always checking for the 'Error' node first.
2022-10-04mobilebackup: Fix version check to allow operability with really old iOS ↵Gravatar Nikias Bassen1-2/+18
versions
2022-09-14restore: Remove incorrect invocation of free() in restored_get_valueGravatar Nikias Bassen1-1/+1
The free would cause a use-after-free when the plist is later freed, which eventually ends up in a crash. Thanks @TrungNguyen1909 for catching this.
2022-09-04Fix iOS SDK buildGravatar Kabir Oberai1-1/+2
2022-07-03idevice: Fix OpenSSL 3.0 internal error on read timeoutGravatar Ruipu Ma1-0/+12
2022-05-10idevice: Restore original behavior for idevice_event_unsubscribe()Gravatar Nikias Bassen1-0/+1
Due to an implementation detail from the past, a call to idevice_event_unsubscribe would not cause the callback function to be called with IDEVICE_DEVICE_REMOVE events, even though originally it was planned to be that way. Due to the internal changes for the newer idevice_events_subscribe/unsubscribe API, that behavior changed and it would call the callback. Now to not break current software implementations depending on the original behavior we modify the old API to behave the same as before the change.
2022-05-09instproxy: Use synchronous mode when callbacks are NULL, as documentedGravatar Marc Prud'hommeaux1-6/+6
Synchronous modes for `instproxy_install`, `instproxy_upgrade`, `instproxy_uninstall`, `instproxy_archive`, `instproxy_restore`, and `instproxy_remove_archive` appear to be ignoring the documented behavior that “If NULL is passed, this function will run synchronously”. This commit fixes the advertised behavior.
2022-05-09Add new idevice_events_subscribe/unsubscribe API with contextGravatar Nikias Bassen1-10/+49
The older API idevice_event_subscribe/unsubscribe can only be used by a single instance. With the addition of a context, is is now possible to register multiple callback functions in different threads. For backwards compatibility the old API will still be available for a while before being removed in a future release.
2022-05-05idevicebtlogger: update for libimobiledevice-glueGravatar Matthias Ringwald1-1/+1
2022-05-05idevicebtlogger: Minor cleanupGravatar Geoffrey Kruse2-1/+2
2022-05-05idevicebtlogger: Cleanup warnings, todos and magic numbersGravatar Geoffrey Kruse2-21/+16
2022-05-05Initial commit of working packet logger (idevicebtlogger)Gravatar Geoffrey Kruse3-1/+273
2022-05-02idevice: Fix sign issue in idevice_get_device_list_extendedGravatar Семён Марьясин1-1/+1
In sync with idevice_from_mux_device, line 384. Without this fix, data size 128 (the common value) is treated as -128, resulting in incorrect allocation. Related to #1248 but doesn't fully fix it.
2022-05-02lockdownd: Fix memory leaks in error conditionsGravatar Sami Kortelainen1-0/+3
2022-04-30[clang-tidy] Do not use else after returnGravatar Rosen Penev9-94/+93
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-04-22[clang-tidy] Fix bugprone string compareGravatar Rosen Penev6-9/+9
Found with bugprone-suspicious-string-compare Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-04-22[clang-tidy] add parentheses to macrosGravatar Rosen Penev3-6/+6
Found with bugprone-macro-parentheses Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-04-22[clang-tidy] use const pointer parameterGravatar Rosen Penev1-1/+1
Found with readability-non-const-parameter Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-04-22Fix a few inconsistent declarationsGravatar Nikias Bassen1-7/+4
2022-04-22idevice: Fix mistreatment of 0-byte sent casesGravatar Li Beinan1-1/+4
Currently if 0 byte gets sent, it is treated as not-enough-data. This is wrong, because with TCP, 0-byte-sent usually means the receiver end is closed. We must set a new case for this and must not normalize the sent-bytes to 0 in general.
2022-04-12Add property_list_client_get_service_client() and service_get_connection() ↵Gravatar Nikias Bassen2-0/+14
functions This allows for custom service implementations to easier switch to non-plist communication after the service has been started.
2022-03-29idevice: Fix debug message showing function name twiceGravatar Nikias Bassen1-1/+1
2022-03-29Remove buggy and redundant debug outputGravatar Ben Wagner1-2/+0
2022-03-29Handle connection failures in debugserver_client_receive_response; also ↵Gravatar Ben Wagner1-92/+85
simplify the code
2022-03-29FormatGravatar Ben Wagner1-6/+7
2022-03-29Fix compileGravatar Ben Wagner1-1/+1
2022-03-29Add timeout and interrupt handling to debugserver. Fix ↵Gravatar Ben Wagner2-3/+24
debugserver_client_handle_response
2022-03-29debugserver: Check return value of asprintf to eliminate compiler warningsGravatar Baodong Chen1-6/+14
2022-03-29reverse_proxy: Add asprintf.h include to make sure vasprintf is available on ↵Gravatar Nikias Bassen1-0/+1
Windows