summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2022-12-24Guess current mode based on available configurations and interfaces.Gravatar Eliyahu Stern1-15/+73
Switch mode only if guess is different than desired mode.
2022-12-23correct logGravatar Eliyahu Stern1-1/+1
2022-12-23Simplify finding valid configuration, interface and endpoints and refactor ↵Gravatar Eliyahu Stern1-99/+87
to a separate function. This function can later be used to determine active mode.
2022-12-23Best effort for old devices (potentially not supporting mode switch) to ↵Gravatar Eliyahu Stern1-7/+28
ignore unexpected responses and complete initializations.
2022-12-23- Add device to collection in usb_device_addGravatar Eliyahu Stern1-52/+67
- Find and use it when completing initialization - Mark device as not alive instead of directly closing it - Debug and plug memory leaks
2022-12-22Factor out device_complete_initialization and call it from get_mode_cb.Gravatar Eliyahu Stern1-127/+141
Handle some memory issues.
2022-12-22styleGravatar Eliyahu Stern1-15/+17
2022-12-22Support switching to different "modes" using vendor specific control messages.Gravatar Eliyahu Stern2-8/+113
Use USBMUXD_DEFAULT_DEVICE_MODE env. var. to let the user control desired mode.
2022-10-04preflight: Assume old iOS version if retrieval of ProductVersion failsGravatar Nikias Bassen1-11/+12
Some older devices (e.g. iOS 2.x) wouldn't allow querying the iOS version if the device is not paired. In this case we just assume an old version instead of erroring out, and this way the device will be made available.
2022-09-21Fix preflight for older devicesGravatar Josef Micka1-11/+11
On older devices with iOS 5 and even before there is no "ProductName", only "ProductType" or "DeviceClass" (which is still present). usbmuxd fails to connect these devices, because it can't receive product name. "DeviceClass", like "ProductVersion", can be retrieved even in locked state, so this commit changes it to use that instead.
2022-06-20Add support for PID 0x1905Gravatar Clément Decoodt1-1/+1
This is the PID used by the mac studio when in recovery mode.
2021-09-25usb: Add more Apple Silicon retstore PIDsGravatar Hector Martin2-2/+4
1904 is the M1 iMac; presumably this is now a range Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-01Remove common code in favor of new libimobiledevice-glueGravatar Nikias Bassen8-354/+70
2021-08-30preflight: Check platform before attempting to preflightGravatar Nikias Bassen1-7/+25
2021-08-02preflight: Reflect device_class member addition to struct idevice_privateGravatar Nikias Bassen1-0/+2
2021-05-08usb: Enable Apple Silicon restore modeGravatar Benjamin BOURGEAIS2-1/+3
2021-01-20Don't call libusb_set_option if libusb_init failsGravatar Frederik Carlier1-5/+5
2021-01-11Add option to allow changing the location of or disabling the pidfileGravatar Nikias Bassen1-37/+59
2021-01-11Fix parsing -S as short option for --socketGravatar Nikias Bassen1-3/+3
2021-01-10Allow specifying a custom listen address:port or unix socketGravatar Nikias Bassen1-20/+167
2021-01-09Fix typo in usbmuxd-proto.hGravatar Nikias Bassen1-1/+1
Thanks to @timgates32 for spotting this.
2021-01-09usb: Don't warn about old configuration descriptor if device is unconfiguredGravatar Nikias Bassen1-1/+3
2021-01-09usb: Allow configuration 5 after verifying it is actualy usableGravatar Nikias Bassen1-1/+25
VMware on macOS somehow exposes a bad configuration 5 for iDevices. Trying to use it breaks things and can end up in a kernel panic on the device. The code change introduced with this commit tries its best to make sure the USB configuration 5 is not 'bad' before switching to it, and otherwise falling back to configuration 4.
2020-08-05device: Prevent calling client_close() from connection_teardown() when ↵Gravatar Nikias Bassen1-0/+1
called from device_abort_connect() ... which itself is only called from within client_close()
2020-08-02device: Add payload type 5 support to device_control_input()Gravatar Nikias Bassen1-0/+7
2020-08-02device: Add device id to device_control_input() log messagesGravatar Nikias Bassen1-6/+6
2020-08-02device: Remove unnecessary copy in device_control_input() loggingGravatar Nikias Bassen1-12/+4
2020-08-02client: Prevent UaF in client_close() by checking if client is validGravatar Nikias Bassen1-1/+14
2020-07-30client: First go at renaming key internal functions for easier refactoringGravatar Martin Szulecki1-28/+28
2020-07-30main: Increase listen socket backlog sizeGravatar Nikias Bassen1-1/+1
In environments with a larger number of devices, especially when these are connected at the time usbmuxd starts, there will be a lot of simultaneous connection attemps. With a backlog size of 5 these connection attempts will easily get a ECONNREFUSED thus failing to perform the required preflight operations. Increasing this to 256 will help to mitigate this.
2020-06-08Remove trailing whitespace errors from all filesGravatar Martin Szulecki2-3/+3
2020-06-08Unfold automake variables into multiple lines for maintainabilityGravatar Martin Szulecki1-11/+24
2020-06-08Extend libusb version log output on startup to include micro version, tooGravatar Martin Szulecki1-1/+1
2020-06-08Add more logging to catch more possible cases in device_control_input()Gravatar Martin Szulecki1-0/+3
2020-06-08Improve and unify log message output for client, device and configGravatar Martin Szulecki3-19/+19
2020-06-08Log client process name alongside pid if possible on accept and disconnectGravatar Martin Szulecki1-5/+44
This helps identifing a problematic client software much quicker.
2020-06-08Use libusb_set_option() to set debug level depending on libusb versionGravatar Martin Szulecki1-1/+5
2020-06-07Use more descriptive libusb_error_name() instead of numeric codesGravatar Martin Szulecki1-23/+23
This makes it easier to recognize the related libusb error code in the logs rather than numeric error codes which needed to be looked up in the documentation
2020-06-07Map debug to log levels and enable debug output for libusbGravatar Martin Szulecki1-1/+3
2020-06-07Use helper to show current libusb version instead of hardcoding itGravatar Martin Szulecki1-1/+2
2020-06-04Unify usage output with other tools and add project URLsGravatar Martin Szulecki1-1/+6
2020-05-07Do not perform preflight on T2 devicesGravatar Rick Mark3-6/+22
2020-05-07Show debug message upon successful connectionGravatar Rick Mark1-3/+4
2020-04-28fix: Typo in src/Makefile.amGravatar Max Kaulmann1-1/+1
CFLAGS for libimobiledevice are correctly used now.
2020-01-17device: Fix potential deadlock (#130)Gravatar Nikias Bassen1-3/+2
2019-12-16Support T2 chip in restore modeGravatar Rick Mark2-2/+4
2019-11-11Fix compatibility with latest changes in libimobiledeviceGravatar Nikias Bassen1-3/+6
2019-11-02Define _BSD_SOURCE again for older platforms.Gravatar Nikias Bassen2-0/+2
While defining _BSD_SOURCE prints deprecation warnings, defining both _DEFAULT_SOURCE and _BSD_SOURCE will not.
2019-10-07preflight: Prevent possible UaF if usb device is removed while preflight is ↵Gravatar Nikias Bassen1-0/+5
in progress The device serial number is only used by reference, however since the preflight helper runs in a separate thread the usb device might be invalidated before the preflight operation is complete, leading to a use-after-free when passing on the device info, followed by accessing the device serial number. By copying the serial number this can be avoided.
2019-10-07device: Make sure to operate on the copy of the device list in device_get_list()Gravatar Nikias Bassen1-1/+1