Remix.run Logo
moonleay 8 hours ago

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

jmgao 5 hours ago | parent | next [-]

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.

itsnoone 5 hours ago | parent | next [-]

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.

baxtr 3 hours ago | parent | prev | next [-]

when you’ve worked long enough in any given industry you know that all companies "violate" standards to satisfy requirements of their product management.

helsinkiandrew 3 hours ago | parent | prev | next [-]

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

xethos 3 hours ago | parent [-]

> 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.

vee-kay 2 hours ago | parent | next [-]

The only reason Apple ditched Lightning port and finally gave USB-C port in the iDevices, is because EU forced Apple to do so. But do you think your oh-so-common USB-C cables will work with a new iPhone?

In my country (India), Apple still doesn't sell charger and cable along with its new iDevices, even though those gadgets are exorbitantly expensive. And Apple doesn't allow custom repair here, even though my country mandated the Right to Repair, like EU did so. My old Mac Mini 2012 is gathering dust in a cupboard, because Apple service center refused to upgrade it to new RAM and new SATA SSD, citing Apple policies.

ffsm8 2 hours ago | parent [-]

Couldn't you just upgrade yourself in the pre Apple silicone days?

Like within minutes, with no big changes?

I didn't think it's rare that a company refuses to do any work on devices they no longer support. Their employees will no longer be trained to do this work, hence they'd have a nontrivial chance of causing damages. That's exactly why a right to repair is so important, so that other people can pick up their slack

lloeki 20 minutes ago | parent [-]

Back when RAM and HDD were using standard parts, Apple packaged manuals with documentation as to how to proceed to such upgrades.

binkHN 2 hours ago | parent | prev | next [-]

If Apple wasn't forced by the EU, they would try to preserve their walled garden as much as possible. iMessage is the prime example of this.

bmandale 3 hours ago | parent | prev [-]

both scenarios speak to either an incredible impatience, or deliberate incompatibility to tie people to their ecosystem.

a13n 4 hours ago | parent | prev | next [-]

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

Aurornis 3 hours ago | parent | next [-]

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.

gf000 8 minutes ago | parent | prev | next [-]

if (name == 'APPLE') will surely improve performance.

fouc 2 hours ago | parent | prev | next [-]

Assuming they even went off spec at all.

wolpoli 4 hours ago | parent | prev | next [-]

Apple is a promoter member of the Bluetooth standard organization for a while now, so it could submit that as an enhancement.

indentit 4 hours ago | parent | prev | next [-]

Specifications are there for a reason... Why use Bluetooth at all if they don't actually use it properly?

helsinkiandrew 3 hours ago | parent | next [-]

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

gf000 7 minutes ago | parent [-]

You can't even change noise cancel's mode.

Aurornis 3 hours ago | parent | prev | next [-]

> 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.

fouc 2 hours ago | parent | prev | next [-]

Perhaps Apple correctly implemented the specification here

binkHN 2 hours ago | parent | prev [-]

This is Microsoft's playbook from many years ago: embrace, extend, extinguish.

potatoproduct 2 hours ago | parent | prev [-]

Performance reasons LOL. Apple fans love plausible deniability.

jauntywundrkind 2 hours ago | parent | prev [-]

In general, rigidity of stack is a malfeasance. Over protecting the user brings fragility, un-adaptability, that curses the world. Android certainly is a rigid narrow protective stack that refuses to accommodate, again and again. Different genre, but decades latter and it still won't work on many ipv6 networks because for no clearly stated reason it won't support DHCPv6: Android is full of these weirdly unstated "principled" anti-compatibilities, and I can't excuse blaming the devices or networks for being what they are: it's the unbending rigid OS that offends me.

I do rather hope perhaps perhaps perhaps the EU & DMA or other may perhaps bend Apple off their rotten course of making non-standard bespoke systems. It seems like very recently the EU is getting ready to cave & abandon all their demands for trying to use standards, that their fear of the US is about to make them fold on insisting upon better. Demanding Apple stop doing everything in bespoke incompatible ways is something that should have happened a long time ago, imo, and it's so horrifying to see one of the only stands in my lifetime against the propeietarization & domination of systems by a bespoke corporate lord abandoned.

There's some rays of hope here & there. Seemoo Lab has a ton of amazing reverse engineering efforts, figuring out how many many many undocumented locked down Apple systems & protocols work & trying to give control back. This is the highest virtue, the best hacker nature. Here's Open Wireless Link, but they have so many other amazing projects they've similarly figured out out to pry open. Amazing best human spirit. https://github.com/seemoo-lab/owl

WithinReason an hour ago | parent | prev | next [-]

Last 2 comments:

> Need fix please

> original engineers got laid off thats why

cbsks 7 hours ago | parent | prev | next [-]

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.

netsharc 6 hours ago | parent | next [-]

Ah, when "open source" means begging an advertisement company to bless your code changes...

charcircuit 6 hours ago | parent | next [-]

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...

IshKebab 11 minutes ago | parent [-]

Yeah except nobody is going to put the effort in to do that because they know it will be ignored.

I tried back in the day.

Aurornis 3 hours ago | parent | prev [-]

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.

almostgotcaught 6 hours ago | parent | prev | next [-]

[flagged]

fragmede 7 hours ago | parent | prev [-]

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.

mhluongo 7 hours ago | parent [-]

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?

justinclift 5 hours ago | parent | next [-]

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.

butvacuum 6 hours ago | parent | prev | next [-]

Apparently, android isn't fixing it either.

fragmede 6 hours ago | parent | prev [-]

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?

catlikesshrimp 6 hours ago | parent [-]

>>...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.

Andrex 6 hours ago | parent | prev [-]

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.

mschuster91 39 minutes ago | parent | next [-]

> Apple mercy-killed Adobe Flash, we should be asking they do the same to Bluetooth.

They won't, because it turns out Bluetooth is the best thing we have at "discover nearby devices". Guess how Apple TV/screen sharing detection, iPhone hotspot detection and configuration, AirDrop and a whole host of other features work without communicating via some cloud mothership? They are all using Bluetooth to do detection and negotiation to a high-bandwidth link!

Amongst widespread radio communication mechanisms, there are only NFC, Bluetooth and WiFi. NFC is sometimes used to provision wifi passwords, but it's short-range to the tune of a few cm tops. WiFi has discovery, but nothing in the protocol to make sure initial conversations cannot be eavesdropped, and low-power wifi stacks are hard to do, in contrast to Bluetooth with BTLE.

yard2010 2 hours ago | parent | prev | next [-]

Apple killed flash and an alternative has not emerged decades later. Please don't give these pricks ideas.

SilverElfin 6 hours ago | parent | prev [-]

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.

Aurornis 3 hours ago | parent | next [-]

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.

IshKebab 10 minutes ago | parent [-]

Yeah I wonder if these people ever actually used Flash YouTube on Android. It was awful.

raw_anon_1111 4 hours ago | parent | prev | next [-]

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.

ptrl600 3 hours ago | parent | prev | next [-]

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

tshaddox 5 hours ago | parent | prev | next [-]

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).

joezydeco 5 hours ago | parent | next [-]

I had a chance to read the Adobe FlashLite Player source code once. Holy shit.

MattRix 4 hours ago | parent | prev [-]

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.

larusso an hour ago | parent [-]

It’s one of the topics I feel I’m too biased since I spend 10 years as a flash developer. The requests for widgets and or small applications we got where simply impossible to write in a frontend only fashion at the time. And a lot of my peers moved on to work on HTML5 which was pushed hard as the successor at the time. A lot felt like a step back. I moved to native iOS and worked on games in cocoa 2D. I remember that I thought more than once: “This was already solved in flash”. But I think in the end it’s a good thing that we don’t have or need the flash player anymore. I wish only we could have gotten a flash to wasm/webgl compiler or flash to js transpiler. ActionScript 3 was great and leagues ahead of JavaScript at the time.

kalleboo 5 hours ago | parent | prev | next [-]

Flash the authoring suite was great

Flash the player was insecure unoptimized laggy garbage

Lio an hour ago | parent | prev | next [-]

Flash was bloody awful.

Websites that only ran on a proprietary plugin and broke browser accessibility provisions were not something I fondly remember.

Its successor is closed apps where you also can’t use ad blocking.

Spooky23 5 hours ago | parent | prev | next [-]

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.

kmeisthax 3 hours ago | parent | prev | next [-]

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.

mschuster91 37 minutes ago | parent [-]

Thanks for the writeup. Dear God, Adobe's leadership appears to have been completely bonkers...

I wonder why they didn't just go and open-source the entire damn thing, all its commercial value has been lost anyway.

baby_souffle 5 hours ago | parent | prev | next [-]

> Flash was great.

It had a great number of CVEs, you mean?

_modern_ HTML and JS have eclipsed flash in all meaningful ways.

ezst 3 hours ago | parent [-]

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.

theshackleford 5 hours ago | parent | prev [-]

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.