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

Conversation

github-actions[bot]
Copy link

No description provided.

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.
Copy link
Author

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto approved

nikias and others added 11 commits October 4, 2022 15:31
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.
with a fallback to get the version string from a .tarball-version file
…messages.

Use USBMUXD_DEFAULT_DEVICE_MODE env. var. to let the user control desired mode.
- Find and use it when completing initialization
- Mark device as not alive instead of directly closing it
- Debug and plug memory leaks
…to ignore unexpected responses and complete initializations.
…actor to a separate function.

This function can later be used to determine active mode.
Switch mode only if guess is different than desired mode.
nikias and others added 11 commits July 21, 2023 00:36
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]>
[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]>
BalkanMadman and others added 6 commits September 14, 2024 13:30
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]>
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
* 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
PACKAGE_STRING, in some cases, might not include the version.
Use PACKAGE_NAME PACKAGE_VERSION instead.

Thanks to @httpstorm to point this out!
@nikias nikias force-pushed the master branch 2 times, most recently from 0163cd9 to e9a0dce Compare September 15, 2024 22:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

9 participants