iOS14 tethering issues

same topic here. Very anoying and no workaround so far! I need an urgent solution!

Same here with Ubuntu 18. Does not work with iOS 14.0.1. A moment ago, confirmed it does work with iOS 13.7

It looks like we can consider the issue with iOS 14 confirmed due to multiple evidences.
I've added a link to this thread as proof.

my observations if anyone can find it helpful.

  • openwrt router with 172.20.10.2 assigned cannot ping out anything except 172.20.10.1 but able to resolve dns queries.

  • openwrt router arp command shows the iphone’s wireless interface mac address while ifconfig registers another different mac address (last 6 different).

  • openwrt router arp can register other wireless clients’ HWmac connected to the iphone’s wireless personal hotspot.

  • possible to make a ssh connection from the iphone (172.20.10.1) to openwrt router (172.20.10.2).

  • wireless clients connected to personal hotspot can access each other but not the openwrt router via the USB.

1 Like

Here's some discussion that might be helpful.

1 Like

Are there any news? I‘m not able to get the tethering working. SUPER annoying! My setup is not working anymore because of this :face_with_symbols_over_mouth:

https://discussions.apple.com/thread/251829006?answerId=253622748022#253622748022

Synology has fixed the issue for one of their products. Does that help? At least somehow the issue seems to be fixable.

There has been a patch create, I found this patch mail via another thread:


Doesn't look to complicated.

How can I get this patch for 19.07.02 (or 19.07.04)?

I noticed that luochongjun, who posted above, has recently posted in the GitHub thread relating to this topic:


that he has built a set of GL.iNet snapshots with the patch, and gives a link to them. I just tried one of his snapshots on my GL.iNet B1300 router, and tethered perfectly with my iPhone SE 2016 iOS 14.2. Great stuff, good to know this has been solved!

I just wondered if anyone was now building any OpenWRT snapshots with the patch? I see Sebastian0816 says above it 'doesn't look too complicated', but I fear it may stretch my own expertise, unless someone can point to some very clear instructions for this kind of thing!

Also, does anyone know how long it might take for a patch of this kind to percolate through to a stable release version of OpenWRT? Thanks.

I tried a build myself and generated a patched kernel module. But his now causes an immediate reboot when starting usbmuxd. However I am not really familiar with git and how to build for exactly the image that is on my router:
TP-Link TL-WR1043ND v2
OpenWrt 19.07.4 r11208-ce6496d796 / LuCI openwrt-19.07 branch git-20.247.75781-0d0ab01.

The original package says:
Package: kmod-usb-net-ipheth
Version: 4.14.195-1
Depends: kernel (=4.14.195-1-b84a5a29b1d5ae1dc33ccf9ba292ca1d), kmod-usb-net

My homebrewn one provides:
Package: kmod-usb-net-ipheth
Version: 4.14.195-1
Depends: kernel (=4.14.195-1-86e3a5bc76ee824a6696965af03e7578), kmod-usb-net

Maybe someone can provide a step by step instruction for getting exactly the right version for the package. I just did a git clone , then a git checkout v19.07.4. then the make menuconfig and make, as described in the openWRT developers docs.

User wnienhaus on Gitub posted a fix at https://github.com/libimobiledevice/libimobiledevice/issues/1038#issuecomment-735213839 that worked for me on openwrt 19.07.4 running on a router EA6350.

This modifies the iphone binary to change all references from 1516 buffer size to 1514 buffer size. Here are the instructions:

opkg update
opkg install kmod-usb-net-ipheth usbmuxd libimobiledevice usbutils
opkg install xxd
cd /lib/modules/$(uname -r)
cp -ia ipheth.ko ipheth.ko.orig
xxd ipheth.ko.orig | sed 's/ec15/ea15/g;s/ecc5/eac5/g;s/ec75/ea75/g' | xxd -r > ipheth.ko
rmmod ipheth; modprobe ipheth
opkg remove xxd

After this change, I was able to tether and ping on an iPhone XR running iOS 14. The user notes that the changes to the binary representation may not be the same with your router, so it depends on the underlying architecture.

4 Likes

coming soon , to a master near you!

2 Likes

I can confirm that the wnienhaus/languagegame recipe above just worked for me (OpenWRT 19.07.04 on GL.iNet GL-B1300, iOS 14.2, iPhone SE 2016). Phew!

As an 'intermediate-level' user, I did not fancy my chances following some of the expert solutions posted, involving recompiling Linux kernel etc. - though I see why they are superior if one is able to execute. Whereas the wnienhaus/languagegame recipe is much easier to follow!

Hopefully the next OpenWRT supported build release will include a full fix (done the expert way, of course!), to complement the excellent work of luochongjun, who has compiled a full new set of patched GL.iNet snapshots (which are built on OpenWRT, of course).

I believe Apple broke this functionality deliberately for the Linux/OpenWRT community - their inadequate response since speaking for itself - so it is great the community has fixed it so quickly, thereby sticking two fingers up to the money men!

2 Likes

Is it in the 19.07.5 branch or not since it is just 1 commit behind???

I don't think so. I had to do the same workaround as posted previously for openwrt 19.07.4, and it worked again for 19.07.5.

Workaround worked for me but had to change sed line to

xxd ipheth.ko.orig | sed 's/05EC/05EA/g' | xxd -r > ipheth.ko

on Netgear WNDR3700

1 Like

I'm new around here and would consider myself a beginner user. Wondering if anyone can assist with the sed command that I should be using for my router architecture? I'm not sure how to interpret the hexdump from xxd so as to make the appropriate changes... I am using an ASUS RT-AC51U router and im running OpenWrt v19.07.5

I'm using an Archer C7 V5. I got it working with this modification to Walterav's post.

xxd ipheth.ko.orig | sed 's/5ec/5ea/g' | xxd -r > ipheth.ko
(noticed that this is just the same as crispypants fix so I can confirm it works)

I am no expert but I think it simply looks for 1516 (5ec) and replaces it with 1514 (5ea) as described in the Github fix. I don't really see why this wouldn't work for any version if it worked for me.

objdump is really handy to check if it has worked. If you still see 1516 references not 1514 it hasn't worked.

Anyway it worked for me tethering to an iphone (ios 14.4) on my Arched C7 V5.

Out of curiosity, are you guys trying to use iOS 14's tether feature or trying to use libimobiledevice tools to interact with it?

Upstream kernel fixed the issue and backported it everywhere AFAIK. libimobiledevice has been updated and fixed for master and 19.07.