summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2024-09-14Use more reliabe macros to print --version outputGravatar Nikias Bassen1-1/+1
PACKAGE_STRING, in some cases, might not include the version. Use PACKAGE_NAME PACKAGE_VERSION instead. Thanks to @httpstorm to point this out!
2024-09-14conf: fix false plist write error in config_set_device_recordGravatar Nikias Bassen1-1/+1
Thanks to @xunmod for reporting!
2024-09-14usb: add support for modes 4 and 5Gravatar Foster Snowhill1-2/+12
* Mode 4 USB Ethernet + CDC-NCM iOS >= 16.0 * Mode 5 CDC-NCM Direct only (no usbmux, no USB Ethernet, no PTP) iOS >= 17.0
2024-09-14usb: correctly display 10 Gbps USB 3.xGravatar Foster Snowhill1-0/+3
iPhone 15 Pro/Pro Max support up to 10 Gbps USB 3.x. Add the necessary case to display the correct link speed. Requires libusb 1.0.22 (2018-03-25) or newer, introduced in libusb/libusb@7a91d7cdccaa7dfc3db0828a5230d6260e9338d7
2024-09-14configure.ac: Don't explicitly add -g to compiler flagsGravatar Nikias Bassen1-1/+1
2024-09-14configure.ac: Do not use '+=' to set CFLAGS to be POSIX-compliantGravatar BalkanMadman1-1/+1
The '+=' operator used in configure.ac to append to the CFLAGS variable is present in Bash, but not the POSIX sh specification. Therefore, the aforementioned part of the configure.ac (from which the configure script is obtained) might not run correctly under non Bash-like POSIX compliant shells (dash - default shell on Debian, ash, etc). Bug: https://bugs.gentoo.org/924200 Signed-off-by: Zurab Kvachadze <zurabid2016@gmail.com>
2024-07-19usb: Revert default mode back to 1Gravatar Georgi Valkov1-1/+1
[1] changes to mode 3 CDC NCM by default. Revert back to mode 1: Originally mode 1 was used, where a tethered iPhone appears as an Ethernet interface, handled by the ipheth driver. This has been the default for many years and is known to work on iPhone 3G, 4S, 7 Plus, 11 and newer. Since [2-3] ipheth supports CDC NCM in mode 1, and configures the iPhone to use it. In mode 3, the Ethernet interface is handled by kmod-usb-net-cdc-ncm. This driver has better performance, but now the iPhone does not provide DHCP or Internet connectivity, so we should revert to mode 1. Analysing the network traffic, shows that both the iPhone and OpenWRT are DHCP clients. The iPhone does not act as a DHCP server. I can set a static IP on OpenWRT and lease 172.20.10.1 to the iPhone. Then I can ping the iPhone and I have IPv4 connectivity. However the iPhone does not provide Internet connectivity to OpenWRT. Maybe in mode 3, the iPhone is a client meant to receive Internet over USB and therefore it is not a gateway? Attempts to switch old iPhones, such as 3G and 4S to mode 3 fail. They remain in mode 1 and work correctly using the ipheth driver. Comparison, tested on iPhone 7 Plus and 11 - mode 1 eth0 kmod-usb-net-ipheth 264 Mbit/s DHCP server, Internet - mode 3 usb0 kmod-usb-net-cdc-ncm 304 Mbit/s DHCP client, no Internet [1] https://github.com/libimobiledevice/usbmuxd/commit/c7a0dd9b82633ea347497626282e3051a469ef50 [2] https://github.com/torvalds/linux/commit/a2d274c62e44b1995c170595db3865c6fe701226 [3] https://github.com/openwrt/openwrt/commit/680f8738d02a1876ae4cd11aacf9cd56e520fadf Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
2024-06-13usb: Rename usb_device struct member 'dev' to more appropriate 'handle'Gravatar Nikias Bassen1-15/+15
2024-06-13device: Fix crash caused by wrong variable when logging an errorGravatar Imre Ehreth1-1/+1
2023-10-11client: Add missing include for FreeBSDGravatar Nikias Bassen1-0/+1
2023-09-29usb: Make sure buffer for vendor specific request is 0-initializedGravatar Nikias Bassen1-1/+1
2023-09-19usb: Set default mode to 3 to include CDC NCM, and fix a log messageGravatar Nikias Bassen1-2/+2
2023-09-18[github-actions] Update build config to use checkout@v3 and upload-artifact@v3Gravatar Nikias Bassen1-2/+2
2023-09-18autoconf: Add workaround for runstatedir for old autoconf versionsGravatar Nikias Bassen1-0/+5
2023-09-18systemd: use runstatedirGravatar Patrick Williams2-2/+2
On newer versions of systemd, there is an expectation that `/run` is used instead of `/var/run`. The current service file template can result in the following error message in the service: ``` systemd[1]: /lib/systemd/system/usbmuxd.service:7: PIDFile= references a path below legacy directory /var/run/, updating /var/run/usbmuxd.pid → /run/usbmuxd.pid; please update the unit file accordingly. ``` Prefer the `@runstatedir@` over `@localstatedir/run@` pattern as suggested by [1]. [1]: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
2023-09-18autoconf: Fix processing of --with-preflight and --with-systemd optionsGravatar Nikias Bassen1-2/+2
2023-07-21udev: Make sure iBridge (T1) doesn't end up in an unconfigured stateGravatar Nikias Bassen1-1/+4
2023-05-05conf: Fix false plist read/write errors caused by using new libplist APIGravatar Nikias Bassen1-3/+3
Thanks to @intelfx for spotting this.
2023-04-21Update to use latest libplist codeGravatar Nikias Bassen2-5/+6
2023-03-01Set default value for ENV_DEV_MODEGravatar Clément Decoodt1-1/+2
Fixes regression introduced in 84801d8 that removed the default value.
2023-03-01Fix use-after-free on get_mode_cbGravatar Clément Decoodt1-1/+1
2023-02-22udev: Fix freezing on OpenRC caused by a raced execution of usbmuxdGravatar BalkanMadman1-1/+1
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-08autoconf: Automatically derive version number from latest git tagGravatar Nikias Bassen2-2/+26
with a fallback to get the version string from a .tarball-version file
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 Decoodt2-5/+5
This is the PID used by the mac studio when in recovery mode.
2022-04-04Updated README with pkg-config requirementGravatar Nikias Bassen1-1/+2
2021-09-25usb: Add more Apple Silicon retstore PIDsGravatar Hector Martin3-6/+8
1904 is the M1 iMac; presumably this is now a range Signed-off-by: Hector Martin <marcan@marcan.st>
2021-09-21[github-actions] Add an explicit apt-get update before attempting to install ↵Gravatar Nikias Bassen1-0/+1
packages on ubuntu
2021-09-07Add build status badge to README.mdGravatar Nikias Bassen1-0/+2
2021-09-06[github-actions] Add missing dependency in build workflowGravatar Nikias Bassen1-3/+10
2021-09-06[github-actions] Print config.log on errorGravatar Nikias Bassen1-0/+3
2021-09-06[github-actions] Add build workflowGravatar Nikias Bassen1-0/+62
2021-09-01Remove common code in favor of new libimobiledevice-glueGravatar Nikias Bassen10-357/+74
2021-08-31Update deprecated autoconf macros and update m4 filesGravatar Nikias Bassen2-9/+8
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-06-30README: Fix typoGravatar Nikias Bassen1-1/+1
2021-05-08usb: Enable Apple Silicon restore modeGravatar Benjamin BOURGEAIS2-1/+3
2021-05-08udev: Add Apple Silicon restore mode to rulesGravatar Benjamin BOURGEAIS1-4/+4
2021-01-20Don't call libusb_set_option if libusb_init failsGravatar Frederik Carlier1-5/+5
2021-01-15configure.ac: Drop AC_FUNC_MALLOC/REALLOC and use AC_CHECK_FUNCS instead to ↵Gravatar Nikias Bassen1-3/+1
allow cross compiliation