Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fork Sync #1

Open
wants to merge 36 commits into
base: master
Choose a base branch
from
Open

Commits on Sep 21, 2022

  1. Fix preflight for older devices

    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.
    mexmer authored and nikias committed Sep 21, 2022
    Configuration menu
    Copy the full SHA
    7f24e9a View commit details
    Browse the repository at this point in the history

Commits on Oct 4, 2022

  1. preflight: Assume old iOS version if retrieval of ProductVersion fails

    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.
    nikias committed Oct 4, 2022
    Configuration menu
    Copy the full SHA
    12e24e4 View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2022

  1. autoconf: Automatically derive version number from latest git tag

    with a fallback to get the version string from a .tarball-version file
    nikias committed Oct 7, 2022
    Configuration menu
    Copy the full SHA
    bccae83 View commit details
    Browse the repository at this point in the history

Commits on Dec 22, 2022

  1. Support switching to different "modes" using vendor specific control …

    …messages.
    
    Use USBMUXD_DEFAULT_DEVICE_MODE env. var. to let the user control desired mode.
    Eliyahu Stern committed Dec 22, 2022
    Configuration menu
    Copy the full SHA
    6d0183d View commit details
    Browse the repository at this point in the history
  2. style

    Eliyahu Stern committed Dec 22, 2022
    Configuration menu
    Copy the full SHA
    9bc87cd View commit details
    Browse the repository at this point in the history
  3. Factor out device_complete_initialization and call it from get_mode_cb.

    Handle some memory issues.
    Eliyahu Stern committed Dec 22, 2022
    Configuration menu
    Copy the full SHA
    939595a View commit details
    Browse the repository at this point in the history

Commits on Dec 23, 2022

  1. - Add device to collection in usb_device_add

    - Find and use it when completing initialization
    - Mark device as not alive instead of directly closing it
    - Debug and plug memory leaks
    Eliyahu Stern committed Dec 23, 2022
    Configuration menu
    Copy the full SHA
    0fdad22 View commit details
    Browse the repository at this point in the history
  2. Best effort for old devices (potentially not supporting mode switch) …

    …to ignore unexpected responses and complete initializations.
    Eliyahu Stern committed Dec 23, 2022
    Configuration menu
    Copy the full SHA
    1eb5a01 View commit details
    Browse the repository at this point in the history
  3. Simplify finding valid configuration, interface and endpoints and ref…

    …actor to a separate function.
    
    This function can later be used to determine active mode.
    Eliyahu Stern committed Dec 23, 2022
    Configuration menu
    Copy the full SHA
    a2cbb59 View commit details
    Browse the repository at this point in the history
  4. correct log

    Eliyahu Stern committed Dec 23, 2022
    Configuration menu
    Copy the full SHA
    24a0265 View commit details
    Browse the repository at this point in the history

Commits on Dec 24, 2022

  1. Guess current mode based on available configurations and interfaces.

    Switch mode only if guess is different than desired mode.
    Eliyahu Stern committed Dec 24, 2022
    Configuration menu
    Copy the full SHA
    84801d8 View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2023

  1. Configuration menu
    Copy the full SHA
    e55e6e7 View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2023

  1. Fix use-after-free on get_mode_cb

    Clément Decoodt committed Mar 1, 2023
    Configuration menu
    Copy the full SHA
    dca3373 View commit details
    Browse the repository at this point in the history
  2. Set default value for ENV_DEV_MODE

    Fixes regression introduced in 84801d8 that removed the default value.
    Clément Decoodt committed Mar 1, 2023
    Configuration menu
    Copy the full SHA
    d0cda19 View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2023

  1. Configuration menu
    Copy the full SHA
    049877e View commit details
    Browse the repository at this point in the history

Commits on May 5, 2023

  1. conf: Fix false plist read/write errors caused by using new libplist API

    Thanks to @intelfx for spotting this.
    nikias committed May 5, 2023
    Configuration menu
    Copy the full SHA
    01c94c7 View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2023

  1. Configuration menu
    Copy the full SHA
    61b99ab View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2023

  1. Configuration menu
    Copy the full SHA
    56f013b View commit details
    Browse the repository at this point in the history
  2. systemd: use runstatedir

    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 <[email protected]>
    williamspatrick authored and nikias committed Sep 18, 2023
    Configuration menu
    Copy the full SHA
    2707534 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b9d5e3c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    91aa7be View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2023

  1. Configuration menu
    Copy the full SHA
    c7a0dd9 View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2023

  1. Configuration menu
    Copy the full SHA
    b5dfb25 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2023

  1. Configuration menu
    Copy the full SHA
    360619c View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2024

  1. Configuration menu
    Copy the full SHA
    243dedf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bc0b91c View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2024

  1. usb: Revert default mode back to 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] c7a0dd9
    [2] torvalds/linux@a2d274c
    [3] openwrt/openwrt@680f873
    
    Signed-off-by: Georgi Valkov <[email protected]>
    httpstorm committed Jul 19, 2024
    Configuration menu
    Copy the full SHA
    f8be60c View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2024

  1. configure.ac: Do not use '+=' to set CFLAGS to be POSIX-compliant

    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 <[email protected]>
    BalkanMadman authored and nikias committed Sep 14, 2024
    Configuration menu
    Copy the full SHA
    a2cafe2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    81a4165 View commit details
    Browse the repository at this point in the history
  3. usb: correctly display 10 Gbps USB 3.x

    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@7a91d7c
    Forst authored and nikias committed Sep 14, 2024
    Configuration menu
    Copy the full SHA
    a2dceac View commit details
    Browse the repository at this point in the history
  4. usb: add support for modes 4 and 5

    * 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
    Forst authored and nikias committed Sep 14, 2024
    Configuration menu
    Copy the full SHA
    df80b73 View commit details
    Browse the repository at this point in the history
  5. conf: fix false plist write error in config_set_device_record

    Thanks to @xunmod for reporting!
    nikias committed Sep 14, 2024
    Configuration menu
    Copy the full SHA
    10d9eae View commit details
    Browse the repository at this point in the history
  6. Use more reliabe macros to print --version output

    PACKAGE_STRING, in some cases, might not include the version.
    Use PACKAGE_NAME PACKAGE_VERSION instead.
    
    Thanks to @httpstorm to point this out!
    nikias committed Sep 14, 2024
    Configuration menu
    Copy the full SHA
    e9a0dce View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2024

  1. Configuration menu
    Copy the full SHA
    0b1b233 View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2024

  1. Configuration menu
    Copy the full SHA
    7c0c0eb View commit details
    Browse the repository at this point in the history
  2. Updated README

    nikias committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    0cdf92d View commit details
    Browse the repository at this point in the history