path: root/src
AgeCommit message (Collapse)AuthorFilesLines
14 daysrestore: Remove incorrect invocation of free() in restored_get_valueHEADmasterGravatar 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 <>
2022-04-22[clang-tidy] Fix bugprone string compareGravatar Rosen Penev6-9/+9
Found with bugprone-suspicious-string-compare Signed-off-by: Rosen Penev <>
2022-04-22[clang-tidy] add parentheses to macrosGravatar Rosen Penev3-6/+6
Found with bugprone-macro-parentheses Signed-off-by: Rosen Penev <>
2022-04-22[clang-tidy] use const pointer parameterGravatar Rosen Penev1-1/+1
Found with readability-non-const-parameter Signed-off-by: Rosen Penev <>
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
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
2022-03-29reverse_proxy: Make sure ECONNRESET and ETIMEDOUT are definedGravatar Nikias Bassen1-1/+7
2022-03-29idevice: win32: Add winsock2.h include for struct sockaddr_storageGravatar Nikias Bassen1-4/+5
2022-03-29idevice: Make sure ECONNREFUSED is definedGravatar Nikias Bassen1-0/+4
2022-03-25afc: Some minor code polishingGravatar Nikias Bassen1-24/+25
2022-03-01diagnostics_relay: Check for errors after sending requests to service connectionGravatar 怯花颜1-0/+9
2022-02-09Add support for wireless pairingGravatar Nikias Bassen5-3/+1219
2022-02-09companion_proxy: Fix invalid argument passed to plist_dict_mergeGravatar Nikias Bassen1-1/+1
2022-02-04service: Silence compiler warning when configured without --enable-debugGravatar Nikias Bassen1-1/+1
2022-02-04tools: Print meaningful error messages when service startup failsGravatar Nikias Bassen1-2/+2
2021-11-24Add Reverse Proxy implementationGravatar Nikias Bassen3-0/+850
2021-10-12idevice: Add IDEVICE_E_CONNREFUSED and have idevice_connect() return ↵Gravatar Nikias Bassen1-2/+17
meaningful error codes This allows clients to properly detect that a connection to the requested port failed because it is not open on the device, instead of just returning an "unknown error"
2021-09-13Check availability of constructor attribute and use it on Windows in favor ↵Gravatar Nikias Bassen1-10/+18
of DllMain
2021-09-06pkgconfig: Fix libimobiledevice-glue dependency in .pc fileGravatar Nikias Bassen1-1/+1
2021-09-01Updated pkg-config file with libimobiledevice-glue dependencyGravatar Nikias Bassen1-1/+1
2021-09-01Remove common code in favor of new libimobiledevice-glueGravatar Nikias Bassen13-13/+16
2021-07-30idevice: Reset receive length variable in internal_ssl_read retry loop and ↵Gravatar Nikias Bassen1-1/+2
fix wrong variable in debug message
2021-07-29lockdown: Replace udid and mux_id members from client struct with idevice_t ↵Gravatar Nikias Bassen2-26/+19
2021-07-29lockdown: Get DeviceClass to make sure OS version dependent code is executed ↵Gravatar Nikias Bassen3-1/+34
correctly The code in lockdownd_client_new_with_handshake would call the function lockdownd_validate_pair based on the OS version being less than 7.0 without taking into account that Watch OS has a different versioning scheme compared to the other device classes. For this and any future version/device specific checks, the code now queries the DeviceClass and stores it in the idevice_private struct.
2021-07-29Handle error cases in relevant code when retrieving pair record failsGravatar Nikias Bassen2-11/+43
2021-07-27afc: Suppress compiler warning when compiling without --enable-debugGravatar Nikias Bassen1-2/+1
2021-07-27Add support for MbedTLSGravatar Nikias Bassen3-37/+188
2021-07-26idevice: Remove unnecessary memcpy from internal_ssl_read()Gravatar Nikias Bassen1-29/+15
2021-07-26idevice: Route OpenSSL reads/writes through internal_connection_*Gravatar Kabir Oberai2-42/+66
Let's not allow OpenSSL to directly access our file descriptors