USB tethering gone after upgrading to iOS 9 and iTunes 12.3

Solution 1:

Update:

Per @SeeMeCode's answer, you can re-install iTunes to solve the problem.


Solved.

I found the solution here. It's caused by a damaged kernel extension /System/Library/Extensions/AppleUSBEthernetHost.kext.

When I check /var/log/system.log, sure enough there is:

Sep 17 08:00:58 wagner.local com.apple.kextd[45]: Kext id com.apple.driver.AppleUSBHostMergeProperties not found; removing personalities from kernel.
Sep 17 08:00:58 wagner.local com.apple.kextd[45]: ERROR: invalid signature for com.apple.macos.driver.AppleUSBEthernetHost, will not load

This extension is installed with iTunes, so the cause was update to iTunes 12.3, not iOS 9. I tried to download iTunes and reinstall it, but it just installed the same damaged version of the kernel extension. So instead, I replaced it from a Time Machine backup as both the currently installed and the backed up version had the same version number 7.0.

After a restart, USB tethering works again.

To distinguish between the two, here's what the working one looks like:

working kext

$ ls -lR /System/Library/Extensions/AppleUSBEthernetHost.kext
total 0
drwxr-xr-x  6 root  wheel  204 Jan 10  2015 Contents

/System/Library/Extensions/AppleUSBEthernetHost.kext/Contents:
total 16
-rw-r--r--  1 root  wheel  3202 Jan 10  2015 Info.plist
drwxr-xr-x  3 root  wheel   102 Jan 10  2015 MacOS
drwxr-xr-x  3 root  wheel   102 Jan 10  2015 _CodeSignature
-rw-r--r--  1 root  wheel   474 Jan 10  2015 version.plist

/System/Library/Extensions/AppleUSBEthernetHost.kext/Contents/MacOS:
total 128
-rwxr-xr-x  1 root  wheel  63024 Jan 10  2015 AppleUSBEthernetHost

/System/Library/Extensions/AppleUSBEthernetHost.kext/Contents/_CodeSignature:
total 8
-rw-r--r--  1 root  wheel  3668 Jan 10  2015 CodeResources

And the damaged one:

damaged kext

$ ls -lR AppleUSBEthernetHost.kext
total 0
drwxr-xr-x  5 ischeini  staff  170 Aug  5 00:30 Contents

Contents:
total 16
-rw-r--r--@ 1 ischeini  staff  3202 Aug  5 00:30 Info.plist
drwxr-xr-x  3 ischeini  staff   102 Aug  5 00:30 MacOS
-rw-r--r--@ 1 ischeini  staff   473 Aug  5 00:30 version.plist

Contents/MacOS:
total 144
-rwxr-xr-x@ 1 ischeini  staff  71792 Aug  5 00:30 AppleUSBEthernetHost

Solution 2:

Looks like Apple may have published a new build of iTunes 12.3 with the old version of the kext file per a comment here from earlier today.

Tried it and confirmed the issue is resolved.

PS: If you want to check, the MD5 checksum of the new version is 77bad7ebb366433672169d40c5659224.

Solution 3:

This required even further action for me. There was a checkbox to disable USB tethering.

enter image description here