8 ms·
A long time ago sonos didn't support apple airplay. I did some protocol reversing and wrote a small program that pretended to be an airplay speaker to pipe aud
by stpn 3y ago
A long time ago sonos didn't support apple airplay.
I did some protocol reversing and wrote a small program that pretended to be an airplay speaker to pipe audio to a sonos speaker (archive: https://github.com/stephen/airsonos https://github.com/stephen/airsonos)
I ended up getting recruiting messages from both the airplay team at apple and some folks from sonos. I didn't end up taking either offer, but it was also an interesting talking point when interviewing for the job I did take.
- imnicuhtine 3y agoHuge thank you for airsonos! We used to use turntable.fm/plug.dj in the office on Fridays, but we had to isolate with our headphones on. It was a lot more fun and communal once I found airsonos and was able to play over our Sonos system.
- whycombagator 3y ago> I did some protocol reversing This would make for an interesting blog post. Could you recommended resources to learn to do the same?
- stpn 3y agoI actually forgot that I did in fact write about this! https://medium.com/@stephencwan/hacking-airplay-into-sonos-93a41a1fcfbb https://medium.com/@stephencwan/hacking-airplay-into-sonos-9... A bit light on the technical details perhaps, but I recall getting stuck on getting the right airplay parameters, learning how byte endianness works... happy to try to answer any other questions as best I can remember. EDIT: Sorry, I realized that I didn't actually answer the other question. I first got interested in reversing from console hacking, specifically this talk about wii hacking: https://youtu.be/0rjaiNIc4W8 https://youtu.be/0rjaiNIc4W8 (including marcan of asahi linux fame!). Their group also had more writing at: https://fail0verflow.com/blog/ https://fail0verflow.com/blog/. Also interesting to read about mgba emulator development: https://mgba.io/tag/debugging/ https://mgba.io/tag/debugging/, v8 internals: https://mrale.ph https://mrale.ph, react internals: https://overreacted.io/ https://overreacted.io/ Consuming a lot of literature on how different systems work helped me develop intuitions around how you might take something apart. Then it's a matter of trying things and banging your head against the wall a lot, e.g. at some point I was interested in how compilers worked so I tried hacking typescript syntax support into babel (circa 2017 maybe) - I got pretty far! and got a lot better sense of how compilers work.
- suriyaG 3y agoThe repository https://github.com/stephen/airsonos https://github.com/stephen/airsonos has the code and is surprisingly accessible.
- stpn 3y agoThe meat for the airplay side is here: https://github.com/stephen/nodetunes https://github.com/stephen/nodetunes Please excuse the code quality... I think I was still learning how to write js at the time.
- tmountain 3y agoStep 1 — study popular protocols to understand how client/server interactions typically work. Step 2 — deploy the network appliance in question to your LAN and intercept its packets with wireshark. Step 3 — begin inference of protocol from observed behavior and test hypothesis by sending hand-crafted payloads to the server in question. Step 4 — rinse and repeat until assumptions are proven to be correct with a high degree of reliability. A good way to ensure you’ve captured the major parts of the protocol is to record about 72 hours of traffic and then replay it through a proxy that directs traffic to your newly created service. If you can interpret the vast majority of the messages without error, you’re getting close to a reliable implementation. Step 5 — use this strategy to develop a deep understanding of both protocols in question. Step 6 — write an “adapter” that can translate protocol A to protocol B and vice versa. Step 7 — implement the adapter towards whatever use case you have in mind.
- deleted 3y ago[deleted]
- ryandrake 3y ago> Step 3 — begin inference of protocol from observed behavior and test hypothesis by sending hand-crafted payloads to the server in question. Curious about common tactics people use for avoiding the ban-hammer from the company at this stage. Surely they can tell the difference between normal operations and this kind of hand crafted probing?
- moneywoes 3y agohave you written about how you created this? very interested
- heap_perms 3y agoI too, would be very interestd in this.
- mandeepj 3y agoSo, respective teams from those two companies (or even other companies for that matter) are actively searching GH for any mods to their work?
- ZephyrBlu 3y agoIn my experience it's more like people happen to stumble across your work or hear about it somehow, not a systematic search for people working on X thing.
- yellow_lead 3y agoMore likely is employees use their own products and happen to see it while searching for a way to do the same thing.
- yieldcrv 3y agoif you use the right hashtags for the right "latest thing", VCs are actively on github I added a discord link and they joined that too and just watch and lurk, its a weird world
- rikafurude21 3y agoSorry but this sounds like LARP, who the hell wouldnt jump on a job offer from apple? Even if it doesnt work out, having Apple on your resume wouldve been an insane career booster, telling people you got an offer from them but didnt take it sounds very unbelievable, atleast personally, I wouldnt have believed you
- KomoD 3y ago> who the hell wouldnt jump on a job offer from apple? Lots of people, including me.
- rikafurude21 3y agoLots of people love being contrarian in theory. If it happened to you for real, no chance youre gonna say no to that
- monooso 3y agoNot everyone shares your goals or values. I've used Apple products for years and generally like them a lot as a company, but I have no interest in working for them or any other large US tech company. The money is good, of course, but the quality of life sacrifices aren't worth it (for me). That's not contrarianism. That's understanding what matters to me.
- rikafurude21 3y agofair enough
- financypants 3y agoWould you say the majority of people who claim to be contrarian aren’t actual contrarians, in your experience? I’m not sure you can infer this in general.
- KomoD 3y ago> If it happened to you for real, no chance youre gonna say no to that 100% guarantee I would
- 23B1 3y agoYou didn't miss out because Sonos continues to do an awful job software-wise. One of the things I'm most looking forward to as I de-IOT-ize my life is selling that system and running speaker wire like a true G.
- johnwalkr 3y agoThe little amplifiers you can get on aliexpress and the like for about $70 can be quite good although pre-covid there were more like $35. They just have simple bluetooth and analogue in and depending on the model support 2 or 4 speakers plus 0 or 1 subwoofer. I bought a couple and then found 2 pairs of nice second-hand bookshelf speakers. Presumably everyone is upgrading to smart speakers and dumping their old stuff because it was really easy to find great speakers for a very low price.
- 23B1 3y agoThere's this guy in my town who is still clinging, somehow, to his life in the as a long-haired metalhead hifi bro and I cannot wait to see the look on his face when I go down there and drop a couple paychecks in his lap and say "enlighten me" ;-)
- cushychicken 3y agoI remember seeing this published when I worked at Sonos. In fact, I might have been the one who put it on the Slack channel. It was a cool project at a time when a lot of people were saying it was insurmountable to make us AirPlay compatible. Sorry you didn’t get the job. I hope you didn’t lose much sleep over it. I left in 2020. I wouldn’t say you’re missing much any more.
- jaxr 3y agoWhy is that? I recently bought a Sonos after getting plenty of recommendations. Even though it sounds great, I hate that they dropped support for Google assistant. Also, the Sonos voice commands can't handle Spotify or YouTube music. Kind of sucks.
- Ringz 3y agoI see it as problematic as you. Have two Sonos five and two Sonos one and think about switching to another product more often. But now i‘ve already spent so much money... However, what should be used instead? I would take the boxes from Apple, but, as far as I know, they are also quite limited (only AirPlay). Another example of the fact that such things should rather be expanded with open standards. From my point of view, the best strategy for Sonos would be to be as open as possible.
- spac 3y agoI read the parent comment to mean he declined the offer, not that he didn't receive it
- stpn 3y agoSorry, to be fully clear - i had an internship offer from apple that i declined, and i think i also declined to do the interview process at sonos before getting to the offer stage.
- scarface_74 3y agoI’m curious, why didn’t you accept either offer? Compensation? Relocation requirements?