Live data from Hacker News

AirPods libreated from Apple's ecosystem

github.com

461–470 of 479 posts

Re: AirPods libreated from Apple's ecosystem

#461

Earlier quoted context omitted.

Man, HN really likes to make excuses for Apple. No, implementing multiple instances of the Battery Service to report battery state for several batteries has been there since the 1.0 spec. [0] This spec was released in 2011, five years before the first AirPods were released. Doing what several commenters claimed was impossible has in fact been possible with native Bluetooth for a decade and a half . [0] https://www.bl…

If you don't like the Apple device, use something else. It's not like a messaging platform where you'd need compatibility with other peoples' phones. If you'd bothered to dig into the spec, v1.0 basically says do what you want. v1.1 defines a proper namespace and well known descriptions for multiple batteries. Apple did well to avoid the interoperability minefield.

Stop moving the goalposts.

> If you don't like the Apple device, use something else. It's not like a messaging platform where you'd need compatibility with other peoples' phones.

I own and use lots of devices, for both work and personal tasks, including Apple and non-Apple devices. I own a pair of AirPods. I'd like them to work well across all the platforms that I use. There is nothing technically preventing Apple from achieving this, aside from Apple's arguably illegal tying behavior.

> If you'd bothered to dig into the spec, v1.0 basically says do what you want. v1.1 defines a proper namespace and well known descriptions for multiple batteries. Apple did well to avoid the interoperability minefield.

I have read the spec; please don't accuse me of not reading it. Have you written Bluetooth device firmware before? In case you haven't, at a high level:

* The BT device exposes a "profile," which defines one or more "services", which are essentially different types of data that can be read from or written to the device.

* Multiple instances of the same type of service (the Battery Service in this case) can be exposed in the profile. I don't know if this ability was always present in the spec or was added after the fact, but it was, at minimum, present in 2011 when the BAS 1.0 spec was released.

* So, if your device has more than one battery, its profile will have an instance of the Battery Service defined for each one.

I will grant that the 1.1 spec document is a lot clearer and provides lots of diagrammed examples, but the only net new functionality in 1.1 are a set of new battery-related fields (these are called out near the beginning).

1.0 absolutely does not say "do what you want."

Re: AirPods libreated from Apple's ecosystem

#462

Earlier quoted context omitted.

If you don't like the Apple device, use something else. It's not like a messaging platform where you'd need compatibility with other peoples' phones. If you'd bothered to dig into the spec, v1.0 basically says do what you want. v1.1 defines a proper namespace and well known descriptions for multiple batteries. Apple did well to avoid the interoperability minefield.

Stop moving the goalposts. > If you don't like the Apple device, use something else. It's not like a messaging platform where you'd need compatibility with other peoples' phones. I own and use lots of devices, for both work and personal tasks, including Apple and non-Apple devices. I own a pair of AirPods. I'd like them to work well across all the platforms that I use. There is nothing technically preventing Apple fr…

1.0 says:

  When a device has more than one instance of the Battery service, each Battery
  Level characteristic shall include a Characteristic Presentation Format
  descriptor that has a namespace/description value that is unique for that
  instance of the Battery service.
1.1 says:

  When a device has more than one instance of the Battery Service, each Battery
  Level characteristic shall include a Characteristic Presentation Format descriptor
  (Volume 3, Part G, Section 3.3.3.5 in [1]) that has the Name Space field set to
  ”Bluetooth SIG” and the Description field set to a valid value from the GATT
  Namespace Descriptors [4] and that is unique among all instances of the Battery
  Service exposed by the GATT Server.
1.0 was a mess and your anger over a poorly defined and relatively minor feature seems quite misplaced. Bluetooth interoperability has historically been a mess (still is from my experience). But go ahead be big mad that Airpods only play audio from third party devices and don't provide battery status in a way that adheres to a recent revision of the standard. Meanwhile I'm sure Sony would never use a proprietary format ever…

Re: AirPods libreated from Apple's ecosystem

#463

Earlier quoted context omitted.

Stop moving the goalposts. > If you don't like the Apple device, use something else. It's not like a messaging platform where you'd need compatibility with other peoples' phones. I own and use lots of devices, for both work and personal tasks, including Apple and non-Apple devices. I own a pair of AirPods. I'd like them to work well across all the platforms that I use. There is nothing technically preventing Apple fr…

1.0 says: When a device has more than one instance of the Battery service, each Battery Level characteristic shall include a Characteristic Presentation Format descriptor that has a namespace/description value that is unique for that instance of the Battery service. 1.1 says: When a device has more than one instance of the Battery Service, each Battery Level characteristic shall include a Characteristic Presentation…

[deleted]

Re: AirPods libreated from Apple's ecosystem

#464

Earlier quoted context omitted.

Stop moving the goalposts. > If you don't like the Apple device, use something else. It's not like a messaging platform where you'd need compatibility with other peoples' phones. I own and use lots of devices, for both work and personal tasks, including Apple and non-Apple devices. I own a pair of AirPods. I'd like them to work well across all the platforms that I use. There is nothing technically preventing Apple fr…

1.0 says: When a device has more than one instance of the Battery service, each Battery Level characteristic shall include a Characteristic Presentation Format descriptor that has a namespace/description value that is unique for that instance of the Battery service. 1.1 says: When a device has more than one instance of the Battery Service, each Battery Level characteristic shall include a Characteristic Presentation…

I had posted a reply addressing your points, but I don't think this discussion is productive and you don't seem to want to engage honestly with what I'm saying and stay on topic. So I'll just say have a good day.

Re: AirPods libreated from Apple's ecosystem

#465

Earlier quoted context omitted.

As someone who's implemented custom Bluetooth protocols, it's actually quite easy to condemn an Apple manufacturer ID check to expose custom services. And what do you mean by "conspiracy"? I would be shocked to find out this was done by some lone wolf and wasn't built with broad (even if grumbly) consensus in the relevant teams. That's how corporate software is built.

Every time someone opens an argument with the classic appeal to authority “as someone who has…” you can almost certainly expect to have that person miss the point of the discussion entirely.

What a fantastic way to keep from addressing anything I said while still allowing you to act condescendingly.

Re: AirPods libreated from Apple's ecosystem

#466

Earlier quoted context omitted.

1.0 says: When a device has more than one instance of the Battery service, each Battery Level characteristic shall include a Characteristic Presentation Format descriptor that has a namespace/description value that is unique for that instance of the Battery service. 1.1 says: When a device has more than one instance of the Battery Service, each Battery Level characteristic shall include a Characteristic Presentation…

I had posted a reply addressing your points, but I don't think this discussion is productive and you don't seem to want to engage honestly with what I'm saying and stay on topic. So I'll just say have a good day.

You're lambasting Apple for not implementing part of a standard that hadn't been standardized.

Re: AirPods libreated from Apple's ecosystem

#467

Hi. I'm not here to troll. This is an amazing project. Why did they select AGPL license over just plain ol' GPL? It seems hard to imagine where the "A" is useful for this software.

The developer here- I didn't plan to release an app for android, or even linux. The android app just started out as a personal project. My plan was to make a service for linux that can talk to various headphones, and any UI can talk to the service. And this was supposed to be under AGPL. But, as I graudally reverse-engineered most of the protocol from the bluetooth stack on macOS, I decided to release the app for And…

Thanks for the direct reply. I didn't consider the SaaS angle when I wrote my original post. As a result, your initial license choice makes sense. Also, if you are in control of copyright for all of the source code, then you can easily change the license. I am still blown away by how you did it. It must have been a lot of reverse engineering! Hats off -- keep up the good work.

Re: AirPods libreated from Apple's ecosystem

#468

Earlier quoted context omitted.

I had posted a reply addressing your points, but I don't think this discussion is productive and you don't seem to want to engage honestly with what I'm saying and stay on topic. So I'll just say have a good day.

You're lambasting Apple for not implementing part of a standard that hadn't been standardized.

Nope. Bye!

Re: AirPods libreated from Apple's ecosystem

#470
post #351

Earlier quoted context omitted.

The Bluetooth spec only supports one battery status. AirPods have three batteries. Is 1 On the subject of the multi-trillion-dollar behemoth, Apple is a private company. If you have the capital, you can acquire a controlling interest and then they’ll work on whatever you like. Until then, you’re out of luck.

Always this sad argument that X is a private company and they can do what they like. Companies are not acts of God or nature. They are a private company operating on a society that allows it to exist because it is believed to be the for the public good. The public has very much the right to question it's practices, and if they are anti consumer, monopolistic, or a list of other things, to correct them. Shareholders b…

So what's your argument then? Companies can't release a product unless each and every feature works with their competitors products? By that logic most of the software and hardware you use today simply would not exist.

Like a lot of parts of the (especially earlier revisions of) Bluetooth spec the battery status took a slapdash approach to defining things. Look at anyone who's used Bluetooth on Windows to see what a nightmare interoperability still is. So Apple released ear buds that implement poorly defined parts of the spec but otherwise work with third party bluetooth devices, and that's bad?

Yikes.

Meanwhile, the Bluetooth SIG released an update at the end of 2022 that actually starts to require some sort of standardization. You know who's name was on that little update? Big bad awful anticompetitive Apple.

Post reply on HN