Replies: 23 comments 1 reply
-
|
I was able to get network connectivity by following those instructions from the thread, all running from the companion VM. I used NetworkManager and had to install dnsmasq (it did not install with NetworkManager) and also installed usbmuxd-git instead of usbmuxd (although I think it might have just been because I was missing dnsmasq). |
Beta Was this translation helpful? Give feedback.
-
@MrMan314 How did you configure the NetworkManager? |
Beta Was this translation helpful? Give feedback.
-
|
I used App Store does not seem to work unfortunately, I believe you will have to jailbreak to install IPA files |
Beta Was this translation helpful? Give feedback.
-
Did you make any additional configuration on iOS? Are you able to access Safari? I connected my |
Beta Was this translation helpful? Give feedback.
-
|
I did not do anything on iOS. Make sure that cdc_ncm is loaded rather than ipheth (it should show in nmcli), I think that this is done through setting the usbmuxd config as said in the linked issue:
Safari seems to connect, but no webpages render, likely due to the lack of graphics acceleration and the filesystem patches done to allow iOS to boot. |
Beta Was this translation helpful? Give feedback.
-
|
The |
Beta Was this translation helpful? Give feedback.
-
|
Check My logs show: |
Beta Was this translation helpful? Give feedback.
-
Does this connection require manual activation? This USB Ethernet connection always requires me to activate it manually. After I activated the connection, dnsmasq was started, but no DHCP request from the iPhone was received (I have tried to re-pair the iPhone).
I can’t figure out what’s causing the issue. Are there any special parameters in your companion VM's startup command? |
Beta Was this translation helpful? Give feedback.
-
|
I noticed the flags for the iPhone interface displayed in According to this stackoverflow answer, it means that the interface is up but not operational ( Here is the nmconnection file used for the iPhone in the companion: |
Beta Was this translation helpful? Give feedback.
-
You're right. I think the root cause is that the ethernet interface is not working properly. Could you share the output of |
Beta Was this translation helpful? Give feedback.
-
|
After executing the above steps, the iOS virtual machine seems to be connected to the Internet, but stops sending packets after the following error occurs NetworkManager logs: ifconfig output: |
Beta Was this translation helpful? Give feedback.
-
|
After following the steps and setting the IPv4 configuration of
ping works from companion to iPhone. Then I created an HTTP service on companion, using iPhone's Shortcut App to test the connectivity. iPhone can connect to the server in companion. But iPhone cannot access public websites. Access to public sites in IP address also failed. |
Beta Was this translation helpful? Give feedback.
-
|
I got networking like so: On the companion VM, run: systemctl edit usbmuxdAdd the following: and run Then, setup dnsmasq: pacman -S dnsmasq
systemctl stop systemd-resolved
systemctl disable systemd-resolved
systemctl mask systemd-resolved
systemctl disable dnsmasq
rm /etc/resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.confBoot up the iOS VM, then check interfaces with Now we run the following commands: Then just wait a bit. You should eventually see in the logs that the VM requested and got an IP. Alternatively, you can try to force DHCP bringup by running Now, run these commands to set up networking: COMPAN_VM_INTERFACE=eth0
IOS_VM_INTERFACE=eth1
iptables -t nat -A POSTROUTING -o $COMPAN_VM_INTERFACE -j MASQUERADE
iptables -A FORWARD -i $IOS_VM_INTERFACE -o $COMPAN_VM_INTERFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $COMPAN_VM_INTERFACE -o $IOS_VM_INTERFACE -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/70-forwarding.conf |
Beta Was this translation helpful? Give feedback.
-
I followed your steps, but cannot access public site. Only address in 192.168.1.1/24 can be accessed. Accessing to other addresses takes some time and show |
Beta Was this translation helpful? Give feedback.
-
|
follow these steps libimobiledevice/libimobiledevice#1348 (comment) If the IP is not obtained or the IP is wrong, you may need to restart IOS, usbmuxd |
Beta Was this translation helpful? Give feedback.
-
Are you sure that you aren't missing a default route? That's Networking 101. |
Beta Was this translation helpful? Give feedback.
-
I |
Beta Was this translation helpful? Give feedback.
-
|
https://eshard.com/posts/emulating-ios-14-with-qemu-part2 If you scroll down to network support, they might work on this project too considering it's a fork of this? |
Beta Was this translation helpful? Give feedback.
-
I'm observing this issue on a macOS host. I tried on a Linux host and it seems to work fine. I setup the reverse USB Ethernet tether using the instructions in #79 (comment) Basically after a bit of time while the reverse USB Ethernet tethering is being used I get those timeouts in the
|
Beta Was this translation helpful? Give feedback.
-
Because Qemu only stubbed the device, and Trung's version of it isn't perfect. I put in some hacks, so that at least the reverse tethering would work as well, but I don't feel like going into that darn USB rabbit hole. It's a shitshow. Just ignore it, as long as it still works somehow. :-D |
Beta Was this translation helpful? Give feedback.
-
Oh I failed to mention that once I observe those timeouts, that the tethering stops working as per comment #79 (comment) But I can stick with Linux as the host for now, just curious if there was a way to get it working on a macOS a bit better (so that the timeouts don't cause all tethering to stop working) |
Beta Was this translation helpful? Give feedback.
-
|
I've put together a comprehensive set of instructions to set up the companion VM, including network configuration, specifically for Debian 13. Here are the steps:
First, install the necessary packages using sudo apt-get update
sudo apt-get install \
network-manager \
build-essential \
pkg-config \
checkinstall \
git \
autoconf \
automake \
libtool-bin \
libreadline-dev \
libusb-1.0-0-dev \
libcurl4-openssl-dev \
libssl-dev \
libzip-dev \
zlib1g-dev
Patch idevicerestore with the patch from the wiki as per usual
Edit the sudo systemctl edit --full usbmuxd.serviceReplace the existing content with the following: [Unit]
Description=Socket daemon for the usbmux protocol used by Apple devices
Documentation=man:usbmuxd(8)
[Service]
Environment=USBMUXD_DEFAULT_DEVICE_MODE=3
ExecStart=/usr/local/sbin/usbmuxd --user usbmux --systemd
[Install]
WantedBy=multi-user.targetAdd the sudo useradd --system --no-create-home --group dialout --shell /usr/sbin/nologin usbmuxRestart and enable the sudo systemctl restart usbmuxd.service
sudo systemctl enable usbmuxd.service
Create a udev rule for Apple USB devices: sudo nano /etc/udev/rules.d/39-usbmuxd.rulesAdd the following line to the file: Reload udev rules and trigger them: sudo udevadm control --reload-rules
sudo udevadm triggerAdd the sudo usermod -aG plugdev usbmux
sudo systemctl restart usbmuxd
Finally, you'll need to configure network sharing for the USB interface using sudo nmtuiNavigate through the
Run Jul 12 04:19:06 debian NetworkManager[546]: <info> [1752308346.2669] device (enxacde48001122): state change: ip-check -> secondaries (reason 'none', managed-type: 'full')
Jul 12 04:19:06 debian NetworkManager[546]: <info> [1752308346.2671] device (enxacde48001122): state change: secondaries -> activated (reason 'none', managed-type: 'full')
Jul 12 04:19:06 debian NetworkManager[546]: <info> [1752308346.2673] device (enxacde48001122): Activation: successful, device activated.
Jul 12 04:19:07 debian NetworkManager[546]: <info> [1752308347.2539] policy: ipv6-pd: none of 0 prefixes of ens4 can be shared on enxacde48001122
Jul 12 04:19:07 debian dnsmasq-dhcp[790]: DHCPDISCOVER(enxacde48001122) ac:de:48:33:44:55
Jul 12 04:19:07 debian dnsmasq-dhcp[790]: DHCPOFFER(enxacde48001122) 10.42.0.214 ac:de:48:33:44:55
Jul 12 04:19:08 debian dnsmasq-dhcp[790]: DHCPREQUEST(enxacde48001122) 10.42.0.214 ac:de:48:33:44:55
Jul 12 04:19:08 debian dnsmasq-dhcp[790]: DHCPACK(enxacde48001122) 10.42.0.214 ac:de:48:33:44:55 iPhone |
Beta Was this translation helpful? Give feedback.
-
Changing the |
Beta Was this translation helpful? Give feedback.





Uh oh!
There was an error while loading. Please reload this page.
-
How can I connect my device using the technique described here but on CLI?
libimobiledevice/libimobiledevice#1348
Beta Was this translation helpful? Give feedback.
All reactions