HoRNDIS MacGyvers your Mac to get online with Androids
- Reference: 1707304513
- News link: https://www.theregister.co.uk/2024/02/07/horndis_android_mac/
- Source link:
If you want to use a smartphone to provide internet access for a laptop, the obvious way is to create a Wi-Fi hotspot. Look at the list of Wi-Fi networks on any public transport to see how many people do this, then forget about them. This, for the sake of clarity, works fine from Android to Mac. The snag is that this is ruinous for phones' battery life. There are better ways, but Apple doesn't make these easy.
A much more power-efficient way is to [1]make a Bluetooth hotspot . Pair phone and laptop, then in the phone's Settings, turn on Bluetooth internet connection sharing. From a Windows laptop, [2]just connect to this and you're away. In Linux, it depends on distro and desktop, but it's [3]still pretty easy . If you have super-fast phone, Bluetooth speed may prove a bottleneck, but for normal 4G downloads it's fine and it uses a tiny fraction of the battery power.
[4]
This used to be [5]easy from a Mac , but macOS 11 "Big Sur" [6]made it harder , and since macOS 12 "Monterey" [7]it's gone .
[8]
[9]
All is not lost, though. You can still just plug your Android phone into a Mac's USB port and tether that way. Joshua Wise's [10]tiny HoRNDIS driver is what makes this work and it's a mere 46 kB [11]GitHub download . The name is a pun on Microsoft's [12]RNDIS driver standard and is pronounced horrendous , which gave us a smile. Of course, if you need to be online to download it, that's a slight snag, but you can use a temporary Wi-Fi hotspot to get the driver. If you have [13]macOS FOSS package manager Homebrew installed, you can also install it that way: brew install --cask horndis
sudo kextload /Library/Extensions/HoRNDIS.kext
Install the driver, possibly granting it permissions in System Settings | Privacy & Security , reboot, and you can plug in your phone, [14]tick the "USB Tethering" box , and your Mac will be online.
[15]Apple antique aficionados can boot to the future with OpenCore Legacy Patcher
[16]UTM: An Apple hypervisor with some unique extra abilities
[17]The return of the classic Flying Toasters screensaver
[18]Pop open a cask: Homebrew version 4.0.0 is here
You can also enjoy the small extra frisson of pleasure of having defied Google's admonition on that page:
Important: Mac computers can't tether with Android by USB.
Once you have HoRNDIS installed, yes, they can, and The Reg FOSS Desk can report that this worked fine on a desktop iMac with MacOS 10.14 "Mojave" when the Vulture Towers FOSS division relocated to the Isle of Man this time last year.
However, Apple is constantly increasing the security measures in macOS and more recent releases won't let the driver install. There is a [19]newer fork for macOS 11 and later. There's also a [20]workaround for installation , and this vulture can report that it worked successfully, even with the latest macOS 14.3 "Sonoma" on an M1 MacBook Air, from Brussels' somewhat connectivity-challenged Midi station.
Other wins are increased privacy – nobody else can join a wired connection – as well as speed and reliability. Whether it's a pro or a con that this also charges the phone from the laptop may depend on your situation at the time.
[21]
Because this is a kernel extension, you need to turn off modern macOS's protections against installing these. Some might consider that worrying and an unacceptable price to pay, which is legitimate for the extra-paranoid. However, it works for us. ®
Get our [22]Tech Resources
[1] https://support.google.com/android/answer/9059108?hl=en
[2] https://support.microsoft.com/en-us/windows/connect-to-a-bluetooth-network-in-windows-0d371763-6297-4eef-9d39-f8c469d181c2
[3] http://www.scaine.net/site/2013/10/ubuntu-to-android-tethering-over-bluetooth/
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2ZcO3Olv6RYB9IAK2HkaATQAAAMI&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[5] https://support.speedify.com/article/416-tether-android-mac-bluetooth
[6] https://discussions.apple.com/thread/252540030
[7] https://www.reddit.com/r/MacOS/comments/qhcun6/bluetooth_tethering_does_not_work_with_monetery/
[8] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZcO3Olv6RYB9IAK2HkaATQAAAMI&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[9] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZcO3Olv6RYB9IAK2HkaATQAAAMI&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[10] https://www.joshuawise.com/horndis
[11] https://github.com/jwise/HoRNDIS
[12] https://learn.microsoft.com/en-us/windows-hardware/drivers/network/overview-of-remote-ndis--rndis-
[13] https://www.theregister.com/2023/02/27/homebrew_version_4_is_here/
[14] https://support.google.com/android/answer/9059108?hl=en#zippy=%2Ctether-by-usb-cable
[15] https://www.theregister.com/2023/10/09/opencore_legacy_patcher/
[16] https://www.theregister.com/2023/09/29/utm_apple_hypervisor_foss_fest/
[17] https://www.theregister.com/2023/04/14/return_flying_toasters/
[18] https://www.theregister.com/2023/02/27/homebrew_version_4_is_here/
[19] https://github.com/TomHeaven/HoRNDIS
[20] https://elitemacx86.com/threads/how-to-use-android-usb-tethering-on-m1-macs.747/
[21] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZcO3Olv6RYB9IAK2HkaATQAAAMI&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[22] https://whitepapers.theregister.com/
See below: a standard wifi hotspot works fine.
And I don't care.
Because my phone has bluetooth, the Mac has bluetooth (supposedly!), and a standard bluetooth function is to set up PAN etc. functions to function as a hotspot.
And, yes, I have actually used this (if you are travelling, and you join the paid-for wifi on a plane or similar, they will only allow you to connect on one Wifi MAC address... and they often shut down third-party wifi networks using technology like Meraki Air Marshal - which deauths clients on all other wifi it finds in range! If you instead configure your phone to join the wifi and then tether with other devices over Bluetooth - they are blissfully unaware that you're sharing that connection with a dozen other devices). I use this trick all the time, not least because my phone tends to be an amazing 5G / Wifi 6 router, but it also saves me paying out for connecting EVERY device that we're using (e.g. my daughter's Steam Deck can connect to my phone via Bluetooth, as can everyone's phone, etc.).
I did it once in France to work around some silly restrictions on a cafe wifi and it worked so well, I've done it several times since and teach people how to do it.
But in this case, this is an artificial limitation that doesn't apply to iPhone because they CHOOSE to make it not apply, hence they have CHOSEN to deliberately make it apply to non-iPhones.
And I don't play that game. That kind of trick "costs" you my money as a consumer, every time.
If I have a device with Bluetooth / PAN functionality, I expect to be able to use it with all my other devices that have such capability too (my car also has this, for example, plus the Steam Deck, etc.). I do not expect, nor tolerate, devices arbitrarily choosing what they'll "allow" me to do based on the brand of my unrelated devices.
And it all factors into my purchasing decisions that a company is playing such games, knowingly and deliberately. I don't even care if it "would ever affect me". I don't do business on those terms.
Power consumption
For a hotspot power consumption is generally driven by data speed and distance between the devices. I don't think that, for similar data rates, there will be much between Bluetooth and modern WiFi, certainly hasn't been my experience. After all, modern portable hotspots use the same technology and bigger batteries. But if I'm setting up anything for any period of time, I'll be looking to connect devices to a power socket.
Bluetooth is great for for data transfer between devices, where you don't need a network at all, and are happy to wait. But MacOS and I-Phones have traditionally been shit at that: I remember when you simply couldn't send files to I-Phones. In fact, I stopped using Bluetooth peripherals with my Macs years ago because the support was so poor: connected to a speaker a couple of metres away, music would invariably cut out after a couple of hours on the Mac, but happily run all day from the phone. However, I think many Mac owners don't know or care and are happy to pay an Apple tax for some proprietary bits and a "works with Mac" sticker on the box. SWMBO has got comfortable pairing with the various speakers we have when she wants to listen to something, but usually finds it easier to ask me to do it.
Whenever I find myself having to battle such nonsense, I just make sure that the nonsense never affects me ever again.
In this case, by removing Apple from the equation rather than my choice of smartphone (because if I go Apple on phone, I have to have Apple everywhere else... but if I stick with Android, the only thing that doesn't work is having a Mac...).