A cool project, when you want to use AirPods outside of Apples ecosystem. Sadly, you have to use a rooted android device with a small patch due to a bug in the Android Bluetooth implementation.
https://issuetracker.google.com/issues/371713238
It doesn't seem obvious to me that this is actually a bug in the Android implementation, it seems like this is due to AirPods violating the spec and requiring a special handshake before responding to standard requests. It doesn't seem reasonable to expect Android to work around a device that appears to be intentionally breaking the spec for vendor lock-in purposes: the possibility of them just OTAing an update that breaks in some other way means that you'd have to be entirely bug compatible with iOS's bluetooth implementation.
It not that hard to imagine Apple going out of their way to do something that would break functionality on Android, honestly. Although, I believe Fluoride also is to be blamed here because a simple timeout can not possible cause any issues (it seems that a timeout is there, but never called- at least from my tinkering). I am not planning to spend a single second tracing back the actual problem and suggesting a fix, given that Google just asked me to reproduce twice (!!) and did nothing about it.
when you’ve worked long enough in any given industry you know that all companies "violate" standards to satisfy requirements of their product management.
Apple have been ‘extending’ the Bluetooth stack for quite awhile. They introduced some BLE features before the spec was finished (I think some 3rd party hearing aids were also compatible).
I haven’t used non apple earphones for awhile but the seamless connectivity performance of AirPods would suggest this was done for performance, not to deliberately lock in devices.
> They introduced some BLE features before the spec was finished
In their defence, they went with Lightning shortly before the USB-C spec was finalized. Then, to avoid their customers being screwed over by constantly changing the connector, they kind of had to stick with it for a decade.
People will complain if they push features that are ahead of the spec, and they'll complain if they let the spec be finalized before they use it. Being guided by "What's the best we can do for UX, assuming out users are our users in every product category we enter" seems to be their reasonable middle ground.
is there evidence it’s for vendor lock in purposes? airpods have a pretty stellar connection for bluetooth, wouldn’t be surprised if there were performance reasons for them going off spec
I doubt it’s for any reason at all. The obvious explanation is that they just developed and tested these extra firmware features against Apple devices because that was the product decision. Since nobody was tasked with targeting Android they might not have even noticed that it wasn’t perfectly spec-compliant if those states were never encountered, nor expected to be encountered.
You can still connect AirPods to an android device using Bluetooth, you just don’t get the seamless connection or support for Spatial Audio that use the extended protocols
> Why use Bluetooth at all if they don't actually use it properly?
Because they needed a way to get audio to the AirPods wirelessly and to work with their devices? That’s a pretty good reason to use Bluetooth.
I doubt they got together and tried to scheme a way to break Bluetooth in this one tiny little way for vendor lock in. You can use the basic AirPod features with other Bluetooth devices. It’s just these extended features that were never developed for other platforms.
HN comments lean heavily conspiratorial but I think the obvious explanation is that the devs built and tested it against iPhone and Mac targets and optimized for that. This minor discrepancy wasn’t worked around because it isn’t triggered on Apple platforms and it’s not a target for them.
I'm convinced it's impossible to implement the BT spec without MANY of these kinds of bugs popping up.
Apple mercy-killed Adobe Flash, we should be asking they do the same to Bluetooth. I'm sick of living in a reality where no one thinks to make something better. It has to be possible.
Mercy killed? Flash was great. There were so many inventive games and animations in that era. Apple didn’t mercy kill anything - they just removed a threat to their walled garden ecosystem using their anticompetitive position, but dressed it up as a security issue.
I’m amazed by the retconning of Flash into a great system.
I agree that some of the content produced in that era was great and it was nice to have tools available, but using Flash and doing the whole browser plugin thing was not great at all.
It’s actually great now that we have actual standards compliant ways of doing animations and other things in the browser without restricting it to one company’s little domain that must be used as a plugin for browsers.
Adobe said it was only because of mean old Apple that they couldn’t get it to run on the original iPhone. When it finally came to Android around 2010, it barely ran on a 1Ghz Android phone with 1GB of RAM.
Mind you that the first iPhone cake with 128MB RAM with a 400Mhz processor.
An iPhone with the theoretical specs didn’t come out until 2011.
Also see the first “iPad Killer” the Motorola Xoom’s marquee feature was suppose to be that it could run Flash. But Adobe was late releasing the Xoom in the unenviable problem of that you couldn’t view its home page on the device.
Nah, Flash was awful. Terrible performance on low end devices. Unforgivably terrible for web video. Nightmare on Linux. Nightmare in enterprise environments.
There were cool games, but there still are cool games. And the indie/hacker/homebrew gaming ecosystems are bigger, richer, and more accessible than ever (due in no small part to the web, both as a gaming platform and for learning/community).
This take doesn’t make sense unless you’re comparing Flash to current technology, rather than the tech of its time. It’s like saying CD players were awful: sure they’re awful NOW, but they had a time and a place when they were the coolest thing around.
Similarly, the only reason Flash had “bad performance” on low end devices is because people were using it to do stuff that web tech could not do. It took over a decade for web tech to catch up, and 20 years later we still don’t have tooling that’s as good as Flash was (other than Adobe Animate itself).
Calling it “terrible for video” is completely backwards! Flash became the standard for video on the web for years because everything else was terrible and Flash was the only thing that worked. There’s a reason that YouTube used Flash to play videos for the first ten years.
If there's ever a project for an alternative OSS Flash authoring tool, something intended to be as accessible as Flash 5 or so, I'd love to contribute somehow
As someone who did a bunch of work on Ruffle a while back, "mercy kill" is almost the correct word. There's about a decade it spent rotting before the actual kill, and Apple's not the one who fired the final shot. I've heard stories from both the Apple and Adobe side on this, but basically both companies wanted Flash on iOS and neither of them were capable of actually shipping a good version of it.
Apple begged Adobe to ship a working Flash mobile build at least four times and each time they rejected it for all sorts of various UX or performance issues. At one point Apple asked for and was delivered Flash Player source code, which they reportedly couldn't get to compile. Adobe tried to brand Flash as an open standard, and then went over Apple's head by just shipping an AIR runtime that could be packaged into an IPA and submitted to Apple. Jobs then wrote the infamous "Thoughts on Flash" letter, which was really there to justify going scorched-earth and banning all third-party development tools. This only lasted for about three months before the Obama DOJ threatened to sue[0].
Also, Steve Jobs was probably pissed off that he couldn't get the CEO of Adobe on speed-dial. At that point in time everyone involved with shipping iPhone software was in his contacts and in regular contact with him. Google logo looks weird on the phone screen? Have Jobs call Page and get it fixed in 10 minutes.
As it stood after that moment, Flash was a viable development platform for iPhone apps and remained so for many years. This is entirely separate from its use in the browser. Practically speaking, you have probably played plenty of Flash games on iOS without even knowing it, because all the hard work of building touch-friendly UX and a performant UI was shunted over to the developers of individual games rather than trying to make, say, the core Flash rendering model GPU capable[1].
Adobe then shipped Flash Player for Android to huge fanfare, and it sucked just as hard as it did on Apple's dev iPhones and was unceremoniously canned a year later.
At this point it was obvious Flash Player needed a rewrite, even within Adobe, so they announced "FP Next" along with an AS4 language for new movies to run in. Except the Adobe execs were angry about the cost so they tried to shake down their customers for the funds. They wanted any cross-compiled 3D engine code to have to pay a revshare to Adobe. Everyone jumped ship to Unity, so Adobe canned the revshare requirement... and FP Next/AS4, the thing that was supposed to modernize Flash's aging codebase.
And then right after Adobe starts disinvesting from Flash, a bunch of CVEs land and all the browser vendors pushed hard to actually, once and for all, excise plugins from the browser. That was the actual mercy kill, but it was preceded by almost a decade in which all the people who knew how Flash actually worked didn't have the budget to fix it, and all the people who wanted it fixed didn't have the expertise to do it.
[0] For the record, Obama was the guy who saw Zuckerberg illegally buying Instagram to keep people from moving off of Facebook and said "sure thing, wave it through".
[1] There's an AS3 project called Starling that gives you hardware rendering by pre-rendering a bunch of assets in advance into bitmaps, which kind of betrays the whole point of Flash. But I also can't imagine Adobe doing it any other way as the Flash renderer was both highly optimized and bespoke.
By stitching together an inconsistent hodgepodge of sometimes overlapping languages, technologies and APIs. On the user-side, I'm glad I don't need a proprietary player for such things any longer, but I sure hate doing anything remotely touching Web, in particular for the kind of highly interactive experiences Flash was good at.
In truth, the Web has eclipsed Flash, the player, but not the product.
That is such a typical bug report to a large company. A user who spent a lot of time debugging and finding the root cause of an issue, and a few faceless peons at the large company spending a few minutes on it, realizing it’s not a priority, and abandoning it.
Not really. There wasn’t a true patch attempt submitted, as far as I can see. There was some helpful info about how commenting out a couple lines could work around the issue, but doing a real engineering evaluation to check spec compliance and make sure it’s all covered in the Bluetooth testing infrastructure is a much bigger task.
And not a small bug either. This large an interoperability issue and it takes a nerd not in the employ of Google to fix their shit? This is why Apple's vertical integration makes it one of richest companies in the world. Google's only up there because of their success in that one business of theirs.
What does Apple being Apple have to do with Google not paying somebody to work on getting Airpods, which presumably should conform to some Bluetooth spec, in order to get Airpods to work on Android?
>>...due to a bug in the Android Bluetooth implementation.
The issue can be resolved because an android bug can be debugged by a contributor. A similar issue can't even be analyzed from the apple side by anyone but an apple employee.
We are assuming there are bugs in iOS, but their closed sourceness can mislead people to believe there aren't. Then, yes, their vertical integration makes them rich, which in this case is bad for users, in the guise of being good.
I’m trying to connect my airports pro 2 to my old, old 2011 iPod. It’s not going very well.
While I haven’t managed to find anything close to an answer using google, chatgpt is quite confident it’s because of Bluetooth versions.
Surely Bluetooth 5 is backwards compatible, but then again if the AirPods thinks it’s connected to an iOS device it seems reasonable that it will start using all the proprietary iOS features and then communication breaks down.
Mark Zuckerberg explicitly called out the airpod pairing being closed as unfair in a semi recent interview, maybe he can throw some dollars that way and get it all working nicely in some meta products.
Cool project, not cool that it needs to exist. Apple isn’t only content to leech off OSS software, they have to force the existence of more of it to workaround what they closed off.
To be clear, you can use AirPods with an Android device for audio.
It’s the extra convenience features integrated into iOS and macOS to change certain settings that have been reverse engineered here. And you can’t actually even use them without rooting your phone and applying a patch to Android’s Bluetooth stack.
Unsurprisingly, you cannot assign a single intent to 166k+ people.
Just like Microsoft there are parts of the company who are hostile to open source, and there parts of the company whose success is attributable to open source.
You mean the language that approximately nobody uses outside XCode, which requires you to register an Apple developer account to function? The same language that only switched to an OSS license after they realized nobody wanted to contribute to a proprietary language?
Swift is OSS, but it's not a great example to illustrate your point.
"[Swift] was initially a proprietary language, but version 2.2 was made open-source software under the Apache License 2.0 on December 3, 2015"
Darwin is also a bad example:
"On July 25, 2006, the OpenDarwin team announced that the project was shutting down, as they felt OpenDarwin had "become a mere hosting facility for Mac OS X related projects", and that the efforts to create a standalone Darwin operating system had failed.[40] They also state: "Availability of sources, interaction with Apple representatives, difficulty building and tracking sources, and a lack of interest from the community have all contributed to this."[41]"
"PureDarwin is a project to create a bootable operating system image from Apple's released source code for Darwin.[43] Since the halt of OpenDarwin and the release of bootable images since Darwin 8.x, it has been increasingly difficult to create a full operating system as many components became closed source."
Seeing how much effort this takes makes me feel vindicated for never buying in to the wireless-earbud trend at all. I love love love having one of the few modern Androids with a real TRRS jack (REDMAGIC 9S Pro) and wired earbuds (Etymōtic ER4XR), that I never need to charge, that can't get lost, and that can't spy on me: https://i.imgur.com/4yymgYO.jpeg
What a silly feature list the AirPods have, too. Transparency? I use earbuds to avoid having to hear the outside world. Ear Detection? My phone does the same thing with my default music app when it detects the jack plugged back in. Multiple devices (up to two)? lol. Head Gestures? How many people even answer the phone at all now after years of relentless spam? Conversational Awareness? I got a $3 clip to attach the wire to my shirt collar, and if I talk to someone or someone talks to me I yank one or both buds out and let them dangle freely with no worry of getting lost or stolen: https://www.amazon.com/dp/B08BL44TW4
I would be totally down to adopt a new paradigm if it was actually better in any way I cared about, but it's just not and never was. People seem to like 'em a lot, though, so I'm still glad to see these supported on non-Apple gear :)
> What a silly feature list the AirPods have, too. Transparency? I use earbuds to avoid having to hear the outside world.
What a silly thing to dismiss a product over. The transparency levels are actually a great feature. You can go from noise cancelling to being able to have a perfect conversation with someone or listen for the kids with a quick squeeze of the earbud. I use it all the time.
Likewise your comment that it’s superior to buy a separate clip and attach the wire to yourself so people can yank them out is just asinine. Or is this parody? It’s hard to tell.
This whole comment feels like someone trying to convince themselves that the thing they didn’t buy is actually terrible and bad, so they can pat themself on the back for not buying it.
Been using it with my airpods 3 anc on a pixel with custom rom (what a curious setup thinking about it). And it's good enough but kinda annoying the airpods don't seem to save my configs and connection isn't really stable. Not complaining since they're not even supposed to be supported tho, thanks for the free stuff ! I wonder if I'd be able to contribute better support with my very limited knowledge of bluetooth analysis...
hey, do you have the 'act as apple device' hook enabled perhaps? that sometimes causes connections to drop. other than that, i believe i refactored the background service to store metadata about the airpods and support various model types recently which can make the app a bit unstable, hence no new release yet- the build is available to download from Actions. if you're facing unstability on the latest (pre)release, v0.2.0-alpha open a issue, i will have a look whenever i get the time.
about the configs not being saved- do you mean the conversational awareness, adaptive volume etc.? those should be saved, and sent from airpods every time you connect. so if you change the config from any other device, and connect to your phone then the app should show the new config.
you can contirbute by supporting the development, of course! :)
This is needed even if you are IN the Apple ecosystem. I don't want to upgrade my phone to the latest half-baked iOS version, so Apple purposefully degrades the functionality of my new AirPods 3. Siri won't switch noise cancellation modes, I can't see the battery status, they get relegated to the "generic bluetooth device" section, and even the battery widget will display three identical headphone icons for headphones and the case.
How do I know this is done purposefully and not just because AirPods 3 are so new and different from AirPods 2? Well, macOS has been neglected of late, and Apple didn't find the time to break things there, so Airpods 3 work with macOS just as well as Airpods 2 did — switching modes, battery status display, etc.
It's very disappointing, and not a great customer experience.
I have been slowly moving away from Apple devices and the 15 Pro will likely be my last iPhone.
The “it just works” argument keeps falling apart.
I’ve already moved over to Linux for my laptop and desktop experience. I only use my iPad to remote into my desktop at this point and use it as my travel laptop. Turns out I don’t really need an iPad.
You're right that the text you're thinking of used to be in that space, if you mean the "About" blurb.
But you're not right about the page contents. The "About" is github metadata, just like the partial commit message "android: multidevice capabilites and accessiblit..." that you can also find. And just like that message, it was full of typos because it's not public-facing.
But there is an actual page talking about the project, which is what we're all commenting on here, and which never contained the typo.
I can’t get my Airpods Pro 2 to connect to Mavericks at all for any length of time, this has been driving me nuts for years! They’ll connect and play audio for a few seconds, then cut out, and I’ll have to re-pair to get any audio again.
Check out AirBuddy for something that provides similar control in macOS. Closed source and costs money though. It doesn't need to rely on the reverse engineered protocol, and instead just calls out to macOS APIs to manipulate the Airpods. (I presume)
i don't think macos allows l2cap connections (the protocol that airpods use), at least pybluez doesn't support that on macos which would've made making a simple script a lot simpler.
see MagicPods. although, it's paid, and requires windows to be in test mode to install a driver for L2CAP support. microsoft has decided to not allow l2c for userspace applications.
specifically, configuring noise cancelation or transparency mode, as well as multiple different profiles for microphone usage. plus buttons on the airpods themselves.
Still baffles me why the first gen airpod "button" wasn't the winner, but unfortunately Steve's no longer with us.
Given that it's already the most upvoted open Android framework bug, and the Google employee it's assigned to hasn't touched it in almost a year, it seems unlikely that more upvotes will make any difference whatsoever.
In such cases it's always better to just open a new identical bug and hope it gets assigned to someone more interested/competent, and no one notices it's a dupe before that.
Huh? I was always able to use AirPods with the Nintendo Switch, for example. Even share them with friends' phones. I didn't know they required "liberating" but good news I suppose.
A cool project, when you want to use AirPods outside of Apples ecosystem. Sadly, you have to use a rooted android device with a small patch due to a bug in the Android Bluetooth implementation. https://issuetracker.google.com/issues/371713238
It doesn't seem obvious to me that this is actually a bug in the Android implementation, it seems like this is due to AirPods violating the spec and requiring a special handshake before responding to standard requests. It doesn't seem reasonable to expect Android to work around a device that appears to be intentionally breaking the spec for vendor lock-in purposes: the possibility of them just OTAing an update that breaks in some other way means that you'd have to be entirely bug compatible with iOS's bluetooth implementation.
It not that hard to imagine Apple going out of their way to do something that would break functionality on Android, honestly. Although, I believe Fluoride also is to be blamed here because a simple timeout can not possible cause any issues (it seems that a timeout is there, but never called- at least from my tinkering). I am not planning to spend a single second tracing back the actual problem and suggesting a fix, given that Google just asked me to reproduce twice (!!) and did nothing about it.
when you’ve worked long enough in any given industry you know that all companies "violate" standards to satisfy requirements of their product management.
Apple have been ‘extending’ the Bluetooth stack for quite awhile. They introduced some BLE features before the spec was finished (I think some 3rd party hearing aids were also compatible).
I haven’t used non apple earphones for awhile but the seamless connectivity performance of AirPods would suggest this was done for performance, not to deliberately lock in devices.
This 2020 paper is great at breaking down some of the extensions: https://www.usenix.org/system/files/woot20-paper-heinze.pdf
> They introduced some BLE features before the spec was finished
In their defence, they went with Lightning shortly before the USB-C spec was finalized. Then, to avoid their customers being screwed over by constantly changing the connector, they kind of had to stick with it for a decade.
People will complain if they push features that are ahead of the spec, and they'll complain if they let the spec be finalized before they use it. Being guided by "What's the best we can do for UX, assuming out users are our users in every product category we enter" seems to be their reasonable middle ground.
both scenarios speak to either an incredible impatience, or deliberate incompatibility to tie people to their ecosystem.
is there evidence it’s for vendor lock in purposes? airpods have a pretty stellar connection for bluetooth, wouldn’t be surprised if there were performance reasons for them going off spec
I doubt it’s for any reason at all. The obvious explanation is that they just developed and tested these extra firmware features against Apple devices because that was the product decision. Since nobody was tasked with targeting Android they might not have even noticed that it wasn’t perfectly spec-compliant if those states were never encountered, nor expected to be encountered.
Apple is a promoter member of the Bluetooth standard organization for a while now, so it could submit that as an enhancement.
Specifications are there for a reason... Why use Bluetooth at all if they don't actually use it properly?
You can still connect AirPods to an android device using Bluetooth, you just don’t get the seamless connection or support for Spatial Audio that use the extended protocols
> Why use Bluetooth at all if they don't actually use it properly?
Because they needed a way to get audio to the AirPods wirelessly and to work with their devices? That’s a pretty good reason to use Bluetooth.
I doubt they got together and tried to scheme a way to break Bluetooth in this one tiny little way for vendor lock in. You can use the basic AirPod features with other Bluetooth devices. It’s just these extended features that were never developed for other platforms.
HN comments lean heavily conspiratorial but I think the obvious explanation is that the devs built and tested it against iPhone and Mac targets and optimized for that. This minor discrepancy wasn’t worked around because it isn’t triggered on Apple platforms and it’s not a target for them.
I'm convinced it's impossible to implement the BT spec without MANY of these kinds of bugs popping up.
Apple mercy-killed Adobe Flash, we should be asking they do the same to Bluetooth. I'm sick of living in a reality where no one thinks to make something better. It has to be possible.
Mercy killed? Flash was great. There were so many inventive games and animations in that era. Apple didn’t mercy kill anything - they just removed a threat to their walled garden ecosystem using their anticompetitive position, but dressed it up as a security issue.
I’m amazed by the retconning of Flash into a great system.
I agree that some of the content produced in that era was great and it was nice to have tools available, but using Flash and doing the whole browser plugin thing was not great at all.
It’s actually great now that we have actual standards compliant ways of doing animations and other things in the browser without restricting it to one company’s little domain that must be used as a plugin for browsers.
Adobe said it was only because of mean old Apple that they couldn’t get it to run on the original iPhone. When it finally came to Android around 2010, it barely ran on a 1Ghz Android phone with 1GB of RAM.
Mind you that the first iPhone cake with 128MB RAM with a 400Mhz processor.
An iPhone with the theoretical specs didn’t come out until 2011.
Also see the first “iPad Killer” the Motorola Xoom’s marquee feature was suppose to be that it could run Flash. But Adobe was late releasing the Xoom in the unenviable problem of that you couldn’t view its home page on the device.
Nah, Flash was awful. Terrible performance on low end devices. Unforgivably terrible for web video. Nightmare on Linux. Nightmare in enterprise environments.
There were cool games, but there still are cool games. And the indie/hacker/homebrew gaming ecosystems are bigger, richer, and more accessible than ever (due in no small part to the web, both as a gaming platform and for learning/community).
This take doesn’t make sense unless you’re comparing Flash to current technology, rather than the tech of its time. It’s like saying CD players were awful: sure they’re awful NOW, but they had a time and a place when they were the coolest thing around.
Similarly, the only reason Flash had “bad performance” on low end devices is because people were using it to do stuff that web tech could not do. It took over a decade for web tech to catch up, and 20 years later we still don’t have tooling that’s as good as Flash was (other than Adobe Animate itself).
Calling it “terrible for video” is completely backwards! Flash became the standard for video on the web for years because everything else was terrible and Flash was the only thing that worked. There’s a reason that YouTube used Flash to play videos for the first ten years.
I had a chance to read the Adobe FlashLite Player source code once. Holy shit.
Flash the authoring suite was great
Flash the player was insecure unoptimized laggy garbage
Yeah it was superb for the layman.
If there's ever a project for an alternative OSS Flash authoring tool, something intended to be as accessible as Flash 5 or so, I'd love to contribute somehow
As someone who did a bunch of work on Ruffle a while back, "mercy kill" is almost the correct word. There's about a decade it spent rotting before the actual kill, and Apple's not the one who fired the final shot. I've heard stories from both the Apple and Adobe side on this, but basically both companies wanted Flash on iOS and neither of them were capable of actually shipping a good version of it.
Apple begged Adobe to ship a working Flash mobile build at least four times and each time they rejected it for all sorts of various UX or performance issues. At one point Apple asked for and was delivered Flash Player source code, which they reportedly couldn't get to compile. Adobe tried to brand Flash as an open standard, and then went over Apple's head by just shipping an AIR runtime that could be packaged into an IPA and submitted to Apple. Jobs then wrote the infamous "Thoughts on Flash" letter, which was really there to justify going scorched-earth and banning all third-party development tools. This only lasted for about three months before the Obama DOJ threatened to sue[0].
Also, Steve Jobs was probably pissed off that he couldn't get the CEO of Adobe on speed-dial. At that point in time everyone involved with shipping iPhone software was in his contacts and in regular contact with him. Google logo looks weird on the phone screen? Have Jobs call Page and get it fixed in 10 minutes.
As it stood after that moment, Flash was a viable development platform for iPhone apps and remained so for many years. This is entirely separate from its use in the browser. Practically speaking, you have probably played plenty of Flash games on iOS without even knowing it, because all the hard work of building touch-friendly UX and a performant UI was shunted over to the developers of individual games rather than trying to make, say, the core Flash rendering model GPU capable[1].
Adobe then shipped Flash Player for Android to huge fanfare, and it sucked just as hard as it did on Apple's dev iPhones and was unceremoniously canned a year later.
At this point it was obvious Flash Player needed a rewrite, even within Adobe, so they announced "FP Next" along with an AS4 language for new movies to run in. Except the Adobe execs were angry about the cost so they tried to shake down their customers for the funds. They wanted any cross-compiled 3D engine code to have to pay a revshare to Adobe. Everyone jumped ship to Unity, so Adobe canned the revshare requirement... and FP Next/AS4, the thing that was supposed to modernize Flash's aging codebase.
And then right after Adobe starts disinvesting from Flash, a bunch of CVEs land and all the browser vendors pushed hard to actually, once and for all, excise plugins from the browser. That was the actual mercy kill, but it was preceded by almost a decade in which all the people who knew how Flash actually worked didn't have the budget to fix it, and all the people who wanted it fixed didn't have the expertise to do it.
[0] For the record, Obama was the guy who saw Zuckerberg illegally buying Instagram to keep people from moving off of Facebook and said "sure thing, wave it through".
[1] There's an AS3 project called Starling that gives you hardware rendering by pre-rendering a bunch of assets in advance into bitmaps, which kind of betrays the whole point of Flash. But I also can't imagine Adobe doing it any other way as the Flash renderer was both highly optimized and bespoke.
Mercy.
Flash had an awesome ecosystem. But it was too fragile, and Adobe is too incompetent of a company to be a good steward of that kind of tech.
> Flash was great.
It had a great number of CVEs, you mean?
_modern_ HTML and JS have eclipsed flash in all meaningful ways.
By stitching together an inconsistent hodgepodge of sometimes overlapping languages, technologies and APIs. On the user-side, I'm glad I don't need a proprietary player for such things any longer, but I sure hate doing anything remotely touching Web, in particular for the kind of highly interactive experiences Flash was good at.
In truth, the Web has eclipsed Flash, the player, but not the product.
You’re entitled to your opinion, as is everyone else and my opinion is that flash was dogshit and I’m glad it had a bullet put in it.
That is such a typical bug report to a large company. A user who spent a lot of time debugging and finding the root cause of an issue, and a few faceless peons at the large company spending a few minutes on it, realizing it’s not a priority, and abandoning it.
Ah, when "open source" means begging an advertisement company to bless your code changes...
It was a hack. An actual code change would be submitted via the gerrit and not buganizer.
https://android-review.googlesource.com/q/status:open+-is:wi...
Not really. There wasn’t a true patch attempt submitted, as far as I can see. There was some helpful info about how commenting out a couple lines could work around the issue, but doing a real engineering evaluation to check spec compliance and make sure it’s all covered in the Bluetooth testing infrastructure is a much bigger task.
And not a small bug either. This large an interoperability issue and it takes a nerd not in the employ of Google to fix their shit? This is why Apple's vertical integration makes it one of richest companies in the world. Google's only up there because of their success in that one business of theirs.
Funny, I was under the impression that Apple's stuff is closed source, so no one outside their employ even could fix a similar issue?
Bearing in mind that Apple does Open Source some stuff: https://opensource.apple.com/projects
They also Open Source the base OS layer pieces for macOS too:
* https://github.com/apple-oss-distributions/
* https://opensource.apple.com/releases/
I don't keep any kind of close eye on this stuff though.
Apparently, android isn't fixing it either.
What does Apple being Apple have to do with Google not paying somebody to work on getting Airpods, which presumably should conform to some Bluetooth spec, in order to get Airpods to work on Android?
>>...due to a bug in the Android Bluetooth implementation.
The issue can be resolved because an android bug can be debugged by a contributor. A similar issue can't even be analyzed from the apple side by anyone but an apple employee.
We are assuming there are bugs in iOS, but their closed sourceness can mislead people to believe there aren't. Then, yes, their vertical integration makes them rich, which in this case is bad for users, in the guise of being good.
I’m trying to connect my airports pro 2 to my old, old 2011 iPod. It’s not going very well.
While I haven’t managed to find anything close to an answer using google, chatgpt is quite confident it’s because of Bluetooth versions.
Surely Bluetooth 5 is backwards compatible, but then again if the AirPods thinks it’s connected to an iOS device it seems reasonable that it will start using all the proprietary iOS features and then communication breaks down.
Mark Zuckerberg explicitly called out the airpod pairing being closed as unfair in a semi recent interview, maybe he can throw some dollars that way and get it all working nicely in some meta products.
Cool project, not cool that it needs to exist. Apple isn’t only content to leech off OSS software, they have to force the existence of more of it to workaround what they closed off.
To be clear, you can use AirPods with an Android device for audio.
It’s the extra convenience features integrated into iOS and macOS to change certain settings that have been reverse engineered here. And you can’t actually even use them without rooting your phone and applying a patch to Android’s Bluetooth stack.
Uhhhh, Apple donates a ton of code to OSS
When the license legally compels them to, and sometimes not even then.
An incomplete list here but most aren’t a license that compels them to contribute anything.
https://opensource.apple.com/projects/
Unsurprisingly, you cannot assign a single intent to 166k+ people.
Just like Microsoft there are parts of the company who are hostile to open source, and there parts of the company whose success is attributable to open source.
Look up Swift
You mean the language that approximately nobody uses outside XCode, which requires you to register an Apple developer account to function? The same language that only switched to an OSS license after they realized nobody wanted to contribute to a proprietary language?
Swift is OSS, but it's not a great example to illustrate your point.
Swift went open source the day it was released. I don’t think Apple needs outside contributors. I think it has enough resources that it would be okay
Darwin’s underlying code was BSD license and didn’t require releasing source code.
"[Swift] was initially a proprietary language, but version 2.2 was made open-source software under the Apache License 2.0 on December 3, 2015"
Darwin is also a bad example:
"On July 25, 2006, the OpenDarwin team announced that the project was shutting down, as they felt OpenDarwin had "become a mere hosting facility for Mac OS X related projects", and that the efforts to create a standalone Darwin operating system had failed.[40] They also state: "Availability of sources, interaction with Apple representatives, difficulty building and tracking sources, and a lack of interest from the community have all contributed to this."[41]"
"PureDarwin is a project to create a bootable operating system image from Apple's released source code for Darwin.[43] Since the halt of OpenDarwin and the release of bootable images since Darwin 8.x, it has been increasingly difficult to create a full operating system as many components became closed source."
Just because the license doesn't require it doesn't mean they aren't a leech.
Seeing how much effort this takes makes me feel vindicated for never buying in to the wireless-earbud trend at all. I love love love having one of the few modern Androids with a real TRRS jack (REDMAGIC 9S Pro) and wired earbuds (Etymōtic ER4XR), that I never need to charge, that can't get lost, and that can't spy on me: https://i.imgur.com/4yymgYO.jpeg
What a silly feature list the AirPods have, too. Transparency? I use earbuds to avoid having to hear the outside world. Ear Detection? My phone does the same thing with my default music app when it detects the jack plugged back in. Multiple devices (up to two)? lol. Head Gestures? How many people even answer the phone at all now after years of relentless spam? Conversational Awareness? I got a $3 clip to attach the wire to my shirt collar, and if I talk to someone or someone talks to me I yank one or both buds out and let them dangle freely with no worry of getting lost or stolen: https://www.amazon.com/dp/B08BL44TW4
I would be totally down to adopt a new paradigm if it was actually better in any way I cared about, but it's just not and never was. People seem to like 'em a lot, though, so I'm still glad to see these supported on non-Apple gear :)
> What a silly feature list the AirPods have, too. Transparency? I use earbuds to avoid having to hear the outside world.
What a silly thing to dismiss a product over. The transparency levels are actually a great feature. You can go from noise cancelling to being able to have a perfect conversation with someone or listen for the kids with a quick squeeze of the earbud. I use it all the time.
Likewise your comment that it’s superior to buy a separate clip and attach the wire to yourself so people can yank them out is just asinine. Or is this parody? It’s hard to tell.
This whole comment feels like someone trying to convince themselves that the thing they didn’t buy is actually terrible and bad, so they can pat themself on the back for not buying it.
Don't the Beats earbuds have literally the exact the same chipsets and speaker drivers as airpods, but play way nicer with Androids?
I know that used to be the case a few years ago at least, but I'm not sure if it's still true.
Been using it with my airpods 3 anc on a pixel with custom rom (what a curious setup thinking about it). And it's good enough but kinda annoying the airpods don't seem to save my configs and connection isn't really stable. Not complaining since they're not even supposed to be supported tho, thanks for the free stuff ! I wonder if I'd be able to contribute better support with my very limited knowledge of bluetooth analysis...
hey, do you have the 'act as apple device' hook enabled perhaps? that sometimes causes connections to drop. other than that, i believe i refactored the background service to store metadata about the airpods and support various model types recently which can make the app a bit unstable, hence no new release yet- the build is available to download from Actions. if you're facing unstability on the latest (pre)release, v0.2.0-alpha open a issue, i will have a look whenever i get the time.
about the configs not being saved- do you mean the conversational awareness, adaptive volume etc.? those should be saved, and sent from airpods every time you connect. so if you change the config from any other device, and connect to your phone then the app should show the new config.
you can contirbute by supporting the development, of course! :)
Super cool. Also, this is an example of why having an open OS is awesome.
This is needed even if you are IN the Apple ecosystem. I don't want to upgrade my phone to the latest half-baked iOS version, so Apple purposefully degrades the functionality of my new AirPods 3. Siri won't switch noise cancellation modes, I can't see the battery status, they get relegated to the "generic bluetooth device" section, and even the battery widget will display three identical headphone icons for headphones and the case.
How do I know this is done purposefully and not just because AirPods 3 are so new and different from AirPods 2? Well, macOS has been neglected of late, and Apple didn't find the time to break things there, so Airpods 3 work with macOS just as well as Airpods 2 did — switching modes, battery status display, etc.
It's very disappointing, and not a great customer experience.
I have been slowly moving away from Apple devices and the 15 Pro will likely be my last iPhone.
The “it just works” argument keeps falling apart.
I’ve already moved over to Linux for my laptop and desktop experience. I only use my iPad to remote into my desktop at this point and use it as my travel laptop. Turns out I don’t really need an iPad.
Title has a typo, should be “liberated”.
Edit: I noticed that the article's page title is also misspelled this way.
I assume it's intentional, playing on "libre" (as in libre software, not just gratis software)
As just the biggest problem with that idea, the typo doesn't exist on the page. It's in the HN title, and the page's HTML <title> tag.
It does exist on the page. It's in the description of the repository below the repository name.
yup it did- fixed it now. thanks!
Look again.
You're right that the text you're thinking of used to be in that space, if you mean the "About" blurb.
But you're not right about the page contents. The "About" is github metadata, just like the partial commit message "android: multidevice capabilites and accessiblit..." that you can also find. And just like that message, it was full of typos because it's not public-facing.
But there is an actual page talking about the project, which is what we're all commenting on here, and which never contained the typo.
Funny, I once called out a typo and got ridiculed and downvoted into oblivion. Seems it goes against HN terms of service or something...
This excellent.. there needs to be a macos version as well. Using Mavericks I was unable to adjust any settings on my airpods pro 2
I can’t get my Airpods Pro 2 to connect to Mavericks at all for any length of time, this has been driving me nuts for years! They’ll connect and play audio for a few seconds, then cut out, and I’ll have to re-pair to get any audio again.
Did you have to do anything special?
Check out AirBuddy for something that provides similar control in macOS. Closed source and costs money though. It doesn't need to rely on the reverse engineered protocol, and instead just calls out to macOS APIs to manipulate the Airpods. (I presume)
i don't think macos allows l2cap connections (the protocol that airpods use), at least pybluez doesn't support that on macos which would've made making a simple script a lot simpler.
How much effort would it take to get this working on Windows?
see MagicPods. although, it's paid, and requires windows to be in test mode to install a driver for L2CAP support. microsoft has decided to not allow l2c for userspace applications.
Aren't airpods just bluetooth headphones?
For just listening to music, yeah. They’ve got other features that aren’t supported elsewhere, though.
specifically, configuring noise cancelation or transparency mode, as well as multiple different profiles for microphone usage. plus buttons on the airpods themselves.
Still baffles me why the first gen airpod "button" wasn't the winner, but unfortunately Steve's no longer with us.
Super impressive. Looks like the author also reimplemented Apple’s new Liquid Glads UI in Jetpack Compose?
I don’t know what the other UI options are, but that seems like a step backwards.
Tim Apple will not be happy about this.
A Show HN: thread submitted by the dev earlier in the year, without traction here, but some background details: https://news.ycombinator.com/item?id=42610644
A Show HN: thread submitted by the dev earlier in the year: https://news.ycombinator.com/item?id=42610644
Great project
Excellent project, don't forget to upvote the Android bluetooth bug to give a signal: https://issuetracker.google.com/issues/371713238?pli=1
Given that it's already the most upvoted open Android framework bug, and the Google employee it's assigned to hasn't touched it in almost a year, it seems unlikely that more upvotes will make any difference whatsoever.
Where's the meme of the guy who gets hired on to a tech company, fixes one bug that always annoyed them, then quits immediately
In such cases it's always better to just open a new identical bug and hope it gets assigned to someone more interested/competent, and no one notices it's a dupe before that.
I agree, but chance favors the tickets that someone internally champions, and there are plenty of Googlers lurking here.
AirPods are my favourite headphones by a mile. I’d love to get microphone mode working on Linux without the audio sounding terrible.
I’d also be curious if anyone can offer insight on why the range is so much better when paired with my iPhone than my computer.
Huh? I was always able to use AirPods with the Nintendo Switch, for example. Even share them with friends' phones. I didn't know they required "liberating" but good news I suppose.
I wish their displays could be liberated though
Huh? I've used all my airpods with my linux and android systems.. nothing was liberated.. just more features were added