AgeCommit message (Collapse)AuthorFilesLines
2021-10-12idevice: Add IDEVICE_E_CONNREFUSED and have idevice_connect() return ↵HEADmasterGravatar Nikias Bassen2-2/+18
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-21configure: Revert accidentally committed change with git-version-genGravatar Nikias Bassen1-1/+1
2021-09-21[github-actions] Add an explicit apt-get update before attempting to install ↵Gravatar Nikias Bassen2-1/+2
packages on ubuntu
2021-09-13[github-actions] macOS: build for arm64 tooGravatar Nikias Bassen1-0/+10
2021-09-13Check availability of constructor attribute and use it on Windows in favor ↵Gravatar Nikias Bassen2-10/+36
of DllMain
2021-09-06pkgconfig: Fix libimobiledevice-glue dependency in .pc fileGravatar Nikias Bassen1-1/+1
2021-09-06Add build status badge to README.mdGravatar Nikias Bassen1-0/+2
2021-09-06[github-actions] Build with --enable-debug for all platformsGravatar Nikias Bassen1-2/+2
2021-09-06[github-actions] Add build workflowGravatar Nikias Bassen1-0/+214
2021-09-04tools: Fix 'DSO missing from command line' when linking idevicepair on LinuxGravatar 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 Bassen32-2181/+71
2021-07-30tools/idevicebackup2: Move some declarations to the start of main functionGravatar Nikias Bassen1-6/+7
2021-07-30tools: idevicebackup2: Exit on service startup failure and improve error ↵Gravatar Nikias Bassen1-6/+14
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-29common: Return proper error codes from userpref_read_pair_recordGravatar Nikias Bassen2-18/+24
2021-07-27Update deprecated autoconf macros and update m4 filesGravatar Nikias Bassen3-116/+153
2021-07-27afc: Suppress compiler warning when compiling without --enable-debugGravatar Nikias Bassen1-2/+1
2021-07-27Add support for MbedTLSGravatar Nikias Bassen9-202/+626
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
2021-07-25idevice: Make sure to handle timeout condition for network connections tooGravatar Nikias Bassen1-9/+11
2021-06-30README: Fix typoGravatar Nikias Bassen1-1/+1
2021-06-22installation_proxy: Ignore non-status messages instead of terminating loopGravatar Simon Søndergaard1-6/+3
Some iOS versions will interleave a CFBundleIdentifier message into the Status messages, and the code would treat the CFBundleIdentifier message as an error. Terminating the loop, never seeing the last message - and even worse - never calling back to ideviceinstaller that would be stuck waiting for a callback with a message where Status == Complete.
2021-06-02mobilesync: Set DeviceLink version to 400 to support iOS 14b4+Gravatar Nikias Bassen1-1/+1
Thanks to @darshilgada24 for pointing this out.
2021-05-25tools/idevicecrashreport: Fix illegal filenames on WindowsGravatar zecops-team1-0/+8
Replace every ':' with '-' since ':' is an illegal character for file names on Windows
2021-04-13common: Add missing *_LIBS and *_CFLAGS to fix buildGravatar Nikias Bassen1-0/+5
2021-04-06tools: Fix usage of LDFLAGS and LDADD.Gravatar orbea1-20/+20
Signed-off-by: orbea <>
2021-03-05tools: Fix entering recovery mode on iOS 14.5+ which now requires a pairingGravatar Nikias Bassen1-8/+20
2021-02-17Remove redundent `select` call from idevicedebugserverproxy.cGravatar Nisarg Jhaveri2-11/+2
- Turns out `socket_receive` anyway internally calls `select` again. Use `socket_receive_timeout` instead. - Remove logging for timeout in socket.c as well, it is not really an error condition
2021-02-03tools: Flip order of winsock2.h and windows.h in idevicedebugserverproxy to ↵Gravatar Nikias Bassen1-1/+1
get rid of compiler warning
2021-02-03tools: Fix delays in idevicedebugserverproxy when using SSLGravatar Nikias Bassen1-23/+23
Turns out using select() wasn't the best idea for the debugserver connection. libimobildevice already does select internally, and doing it here again would cause delays especially when transferring larger amounts of data.
2021-02-03tools: Fix idevicedebugserverproxy compilation on WindowsGravatar Nikias Bassen1-0/+5
2021-02-01tools: Improve idevicedebugserverproxy with select() and less threadsGravatar Nikias Bassen1-135/+61
2021-02-01debugserver: Return success when a receive timed out but actualy bytes have ↵Gravatar Nikias Bassen1-1/+1
been read
2021-02-01idevice: Allow partial reads in idevice_connection_receive_timeout() and ↵Gravatar Nikias Bassen1-6/+9
handle timeouts more adequate idevice_connection_receive_timeout(), when in SSL mode, was assuming it should always try to read the exact amount of data specified in `len` parameter. While this works with most protocols that have length fields or fixed sized headers/packets, some others (e.g. debugserver) break because it will request a read but doesn't know the size that is expected to be returned beforehand. This commit will handle timeouts better and return the number of bytes that were read in such cases (instead of returning 0 bytes read + error). Note that in the event of a timeout, IDEVICE_E_TIMEOUT will be returned even though actual data might have been read. The number of bytes read will be returned in recv_bytes.
2021-01-11configure: Make sure to also search for cython3 if cython is not foundGravatar Nikias Bassen1-2/+2
2021-01-03Fixed method visibility in mobilebackup2.pxi APIGravatar wendyisgr33n1-13/+18
2021-01-03Fixed bytes/strings checks in lockdown.pxi for compatibility with Python2/3Gravatar wendyisgr33n1-3/+3
2021-01-03Fixed bytes/strings check in imobiledevice.pyx for compatibility with Python2/3Gravatar wendyisgr33n1-1/+1
2021-01-03Fixed debugserver.pxi PyString_AsString compatibility with Python3Gravatar wendyisgr33n1-1/+6
2021-01-03Fixed AFC afc.pxi definitions for Python2/3 compatibility. Added missing ↵Gravatar wendyisgr33n1-12/+16
public method 'remove_path_and_contents'
2020-12-30common: Merge socket changes from libusbmuxdGravatar Nikias Bassen4-49/+388
2020-12-13idevicescreenshot: Remove unnecessary math functions to find a unique filenameGravatar Nikias Bassen1-15/+23
Removes repeated malloc/free too, limits the maximum filenames to try to 65535 and fails if no unique filename could be found. I think this limit is VERY generous. If there are really so many files to test against it will also cause an unconveniently long delay, but I felt a lower limit could still be easily reached.
2020-12-10ideviceprovision: Fix date output by adding MAC_EPOCHGravatar Nikias Bassen1-1/+1
2020-12-10cython: Fix typo in mobilesync.pxiGravatar Nikias Bassen1-1/+1
Thanks to @corsac-s for spotting this.
2020-12-10docs: Improve --quiet command line switch description in idevicesyslog man pageGravatar Nikias Bassen1-1/+1
Thanks to @corsac-s for pointing this out.