HoRNDIS: USB tethering driver for Mac OS X
HoRNDIS is now maintained by Mikhail Iakhiaev, and this web page is in a state of transition – maintain your eyes peeled for updates quickly …
HoRNDIS (pronounce: “horrendous”) is a driver for Mac OS X that permits you to use your Android cellphone’s native USB tethering mode to get Web entry. It’s identified to work with Mac OS X variations 10.6.8 (Snow Leopard) by way of 10.14 (Mojave – see notes under), and has been examined on all kinds of telephones. Though you have to be cautious with all drivers that you just set up in your laptop, HoRNDIS has been examined a minimum of effectively sufficient for the writer (and plenty of others) to run full time on their very own private computer systems.
HoRNDIS is applied as a kext, reasonably than as a user-space program that opens a TAP or TUN machine; because of this it doesn’t battle with different TAP/TUN kexts that you just may need put in (like OpenVPN, Tunnelblick, or Cisco VPN). The motive force implements Microsoft’s proprietary RNDIS protocol, which is the one protocol supported natively by Android units; though Linux and Home windows customers have loved native RNDIS drivers for years, Mac OS X helps solely CDC Ethernet units out of the field.1)
The chief benefit of HoRNDIS over different tethering options is that it makes use of the a first-class supported function within the cellphone’s firmware. Different options both take over the cellphone’s Wi-Fi stack with out the Android working system’s data, or create an emulation IP stack in userspace on the cellphone; in lots of instances, the built-in USB tethering assist will be extra steady, extra dependable, and sooner.2)
This web page can be accessible in Russian: HoRNDIS: драйвер USB-модема для Mac OS X. My because of Vlad Brown for his effort in translation!
HoRNDIS is obtainable in supply kind from its mission web page on GitHub, and in binary kind on this web site. For fast begin directions:
Assuming that the set up proceeds with out errors, after it completes, join your cellphone to your Mac by USB.
Enter the settings menu in your cellphone.
Within the connections part, under Wi-Fi and Bluetooth, choose “Extra…”.
Choose “Tethering & transportable hotspot”.
Verify the “USB tethering” field. It ought to flash as soon as, after which turn out to be solidly checked.
On some variations of OS X, a dialog field could pop up, prompting you to configure the machine; observe its directions. To confirm that the machine is related, begin the System Preferences program, and choose “Community”; you need to see your cellphone seem within the field at left. Optimistically, you need to have the ability to flip off Wi-Fi in your Mac, and browse the Web by way of your cellphone’s community connection.
Out there variations
- The newest model accessible is 9.2: HoRNDIS-9.2.pkg (46919 bytes) (md5sum
8207800ef89dc1bb0cca530e4ef39009; GPG signature). Improves assist for units together with Nokia 7 Plus. This launch was developed by Mikhail Iakhiaev, who’s the present maintainer of HoRNDIS. This model solely helps MacOS 10.11 and up.
A particular word about 32-bit machines
In earlier variations, HoRNDIS required a 64-bit kernel. For those who get an error message about 64-bit assist on putting in HoRNDIS, please attempt once more with the model Three bundle (or newer).
Notes about particular Mac OS X variations
OS X 10.9 (Mavericks) and 10.10 (Yosemite) are supported by HoRNDIS, however there are some gotchas. For those who upgraded from an earlier model of OS X, chances are you’ll discover that telephones seem like replicating with abandon in your community management panel. If this occurs to you, one considerably heavy-handed workaround is to wash your community configuration recordsdata – take a backup of
/Library/Preferences/SystemConfiguration/preferences.plist, after which both transfer them out of the way in which or delete them. (Observe that this can take away any customized community configuration that you’ve carried out!) I’m nonetheless undecided what causes this drawback, and so I don’t but have a workaround with finer granularity.
Variations of Mac OS X 10.11 and newer have a rewritten USB stack that’s considerably much less appropriate than that in 10.10 and under. HoRNDIS 9.Zero has been rewritten to assist MacOS 10.11 and above (El Capitan, Sierra, Excessive Sierra, and Mojave); for these variations of MacOS, please attempt the newest model of HoRNDIS! The newest model of HoRNDIS that helps older variations of MacOS (Yosemite and under) is HoRNDIS rel8.
If, for some motive, it’s worthwhile to uninstall HoRNDIS, you may merely drag the extension to the trash. Within the Finder, go to the “Go” menu, and choose “Go to folder…”; in that, sort ”/System/Library/Extensions”. Discover “HoRNDIS.kext”, and drag it to the trash. When prompted, sort your password. Do the identical for the “HoRNDIS.kext” that lives in ”/Library/Extensions”, as effectively. Then, restart your Mac to make certain it’s unloaded.
(Fork me on GitHub!) The supply is obtainable on GitHub; it’s licensed beneath the GNU Basic Goal License, model 3. To construct the supply, you will want Xcode 4.0+ put in; to construct a model that may work beneath Snow Leopard, additionally, you will want the Snow Leopard SDK put in. Sadly, the Snow Leopard SDK is tough to return by these days; you will want to search out it someplace on the internet, and manually set up it into your Xcode SDKs folder. (For many functions, it is OK to construct towards a more moderen SDK; for a kernel module, the magic vtable space-saving tips require you to compile towards the bottom frequent denominator.)
xcodebuild within the checkout listing must be adequate to construct the kext. For those who want to bundle it up, you may run
make to assemble the bundle within the
construct/ listing (although please do not publish variations you constructed as in the event that they had been official!).
On the shoulders of giants, I stand. My obscure because of Apple for having a minimum of some IOKit pattern code accessible (although the final time it efficiently constructed was 10.2.x); it was an honest begin studying to grasp how I’d wish to construction this. Substantial because of David Brownell, who wrote the
rndis_host driver for Linux; some parts of HoRNDIS had been ported over from that work. David Brownell additionally wrote the
f_rndis driver that permits Android/Linux units to behave like RNDIS units; studying that supply helped to grasp why HoRNDIS wasn’t working within the early phases. (Sadly, David Brownell handed away in April of 2011. Thanks for your entire onerous work, David; could you relaxation in peace.)
Thanks additionally to those that helped take a look at HoRNDIS earlier than I launched it, in addition to the entire people from the times of the unrEVOked mission, with out whom I might seemingly not be concerned in Android growth in any respect…
Lastly, because of Mikhail Iakhiaev, who’s the present maintainer of HoRNDIS, and who did the onerous work of porting HoRNDIS to the brand new USB APIs within the newest variations of MacOS.
Being free software program, HoRNDIS comes with no guarantee (not even a assure that it will not break your cellphone or laptop! However I am fairly positive it will not.), categorical or implied. (For extra on that, learn the license.) Nonetheless, I hope that it really works for you; if it would not, and also you’re in a position to help in debugging, I might like to listen to from you.
So, for suggestions, be happy to get in contact with me, or HoRNDIS’s present maintainer, Mikhail Iakhiaev; particularly if it really works for you, or makes your life simpler, I might like to listen to about it!