Non-free Bluetooth

A Material Design icon.

Bluetooth[O], conceptually, is a great idea. Wireless communications across short distances between devices! What could go wrong with that?

The problem is it is such a nifty idea that the companies involved in the technology are very insistent about licensing. And all devices using the standard must use certain proprietary blobs of code.

This is two problems in one:

First, you do not know what is in that blob of code. It could include spyware – after all, this is a form of communications. Because it is system-level, it could involve security risks. Those might not be deliberate – a black-hat might discover a vulnerability in the manufacturer’s code. In fact, that is rather more likely than the manufacturer installing a back door or inserting a malware directly. It also might be very inefficient; maybe, if it were open source, you could discover a way to speed up the data transfer, or reduce the battery drain, but because the code is closed you cannot.

Second, because it is closed source it is non-free. Many operating systems, out of an abundance of caution, do not allow any non-free code or drivers into their system – because history has shown unethical people will defraud users of open source. Imagine if FreeBSD[O] allowed non-free code to appear in its code base and the owner of that code suddenly demanded everyone who used it to pay them a license fee – this might affect millions of Apple computer users too, as MacOSX[O] uses the base. Everything downstream of the OS may be at risk, so the OS just does not go there.

Which is why I am usually not too worried about using – I just don’t.

An unfortunate series of events, however, pushed me to at least make it possible. My phone service unexpectedly did not work while traveling in a foreign country – a foreign country for which I had purchased a phone service add-on. Because of this I needed to use hotel wifi[en.WP], which is always risky, but I figured my VPN[en.WP] would be enough for the simple connectivity I would need. But the security certificates for the wifi service were self-signed, and rejected by my system.

(Security certificates are the basis for the chain of trust in your communications. The hotel’s wifi said it was the company providing service, but my computer found no evidence to prove that.)

So I turned to the data service of my partner’s device, which could only be shared over bluetooth.

Qualcomm Atheros logo.

And my operating system did not have any drivers available for the bluetooth card with which the computer is equipped.  Because, of course, my operating system uses only free (as in freedom) software. So I had to learn how to access non-free software repositories,  discover the exact card in my device and locate the driver (buster/non-free/firmware-atheros, just in case anyone else is setting up a 13[O] v4 laptop), and install.

By which time my partner had flown away, and I had survived other travel disasters.