
The Removal of AirFloat and AirFoil [from the iOS App Store] - nathanhammond
http://devblog.thefamoussoftwarecompany.com/some-thoughts-on-the-removal-of-airfloat-and-airfoil/
======
jakobe
Apple develops a technology called Airplay that it licenses to 3rd parties.
Developers reverse-engineer the technology and sell apps that circumvent
Apple's licensing model. Apple removes those apps from their store.

I am not the least bit surprised.

~~~
mikeash
Airfoil, at least, was developed _long_ before Apple had any sort of third
party licensing model. Reverse engineering for interoperability is completely
legal and ethical.

~~~
mr_donk
There's 2 parts to AirTunes (the part of AirPlay that Airfoil and AirFloat
use), Sending and Receiving. Up to now, AirFoil only used the AirTunes
protocol to SEND streams to AirPlay devices. If you reverse engineer the
protocol you can send to any AirPlay device. No problem.

It's harder to make an AirPlay receiver, because iTunes won't send anything to
an AirPlay receiver that doesn't encrypt the request with the proper private
key.

You can only get this key legitimately by licensing AirPlay from Apple (which
is why all AirPlay compatible speakers are licensed by Apple).

Someone managed to extract the private key from an AirPort express by removing
the flash chip and reading it externally. They then published this "stolen"
key on the web. Prior to that, it was impossible to make anything that would
receive AirPlay streams from iTunes, even though the protocol was widely
understood (it's basically just RTSP).

A bunch of open source implementations on other platforms (PC/Mac/Windows)
were released.

Rogue Amoeba's AirFoil speakers for Mac/PC included this functionality.
However, up until this last update, they never included it in their iOS
application. Their stated reason for this was they couldn't figure out a
revenue stream to make this work (AirFoil implements it's own music
transmission protocol. You bought the Mac software for $20, then got the
receiver software for free. Under this model, making the free product able to
receive streams from iTunes without the Mac software would have cut out their
revenue producing server from the picture). The latest release included this
AirPlay receiving feature as an in-App purchase. Since they've had the code to
do this for a while, and it seems like this method is probably preferable to
most users and therefore likely more profitable, the delay seems odd.

My speculation is, they've been using the "stolen" key, and were hesitant to
draw attention to themselves by trying to get software using it approved on
the app store. Eventually potential profit won out, and they went for it. It
got approved by the (probably) less technically savvy app review team that
doesn't know about the requirements of a licensed key to make AirPlay
reception work. It was noticed later by some Apple engineer who is familiar
with the protocol and was then pulled.

Since the private key is necessary to make this feature work, they either
needed to license it or use the "stolen" AirPort Express key. If they licensed
it, I don't think Apple would be pulling it. Since Apple does license this to
people, it would be unfair to their licensees to turn a blind eye to people
using the "stolen" key. If it became apparent they were letting it slide, it
would lead to a proliferation of unlicensed (potentially crappy/flakey)
devices that might not meet Apple's quality standards.

I think the speculation about Apple wanting to include something similar in a
future iOS release is irrelevant here. Maybe they would, but I think this
reasoning seems more likely.

~~~
fpgeek
> There's 2 parts to AirTunes (the part of AirPlay that Airfoil and AirFloat
> use), Sending and Receiving. Up to now, AirFoil only used the AirTunes
> protocol to SEND streams to AirPlay devices. If you reverse engineer the
> protocol you can send to any AirPlay device. No problem.

How do you know there's no problem with AirPlay sending?

Other than Apple's past behavior (which, as shown here and many other places,
is no guarantee of future results) I'd have thought the correct assumption is
that Apple wouldn't want anything to do with unlicensed implementations of
either side of the AirPlay protocol.

~~~
mr_donk
That's a good point... I based my assumption on the fact that they require a
private key for receiving, but not sending.

I guess that doesn't necessarily prove anything...

------
robreuss
If you find yourself using Apple's private key (or private "anything") this
should be a clear signal that your innovative energy should probably be spent
elsewhere - seems like common sense to me.

Also, if you start trying to convince yourself that your app does not violate
the guidelines because there are other apps do what you want to do, even
though your intuition tells you that your app will be rejected, spend your
energy elsewhere. Apple has no concept of "precedent" in making their
decisions (nor should they or could they), and they make clear that the
existence of another app doing what you do is not the basis for a successful
appeal.

I'm not saying don't push the boundaries of the guidelines, but if you do so,
understand it to be a business risk. And if Apple turns around and rejects
your app, accept it as a cost of doing business on the edge, and don't act
like Apple is to blame for the risk you took and take your sense of
persecution public.

AirPlay is a strategic technology for Apple - it is going to become more and
more important in the next year. Any moves Apple makes to protect this
technology are first and foremost going to be motivated by ensuring the best,
most consistent possible experience for the end user - their interests rest
with the whole device ecology and how those devices interact. The motivation
is not crushing third-party implementations because they don't want to compete
with them or because they want licensing fees (which are trivial to them) - it
is because they don't want hacked implementations screwing up the end-user
experience, especially for non-geeks.

------
mr_donk
When I posted my reply regarding AirFoil a while back, the article wasn't
loading... now that it is, you can see the developer actually explains Apple's
stance and gives an example of why they do what they do.

He says: "But then something remarkable happened. Apple approved Air Speakers
– an app that enabled you to stream audio to your iOS device from iTunes and
iOS devices. Using the private key of the AirPort Express. Sadly it was a
horrible app. Synchronization wasn’t even implemented, so the audio was
hopelessly out of sync, when sending audio to multiple devices."

I believe this is why Apple requires you license AirPlay. Not so they can make
a quick buck (I'm sure the license fees are trivial to Apple), but so they can
make sure things that work with AirPlay don't behave as the author claims the
AirSpeakers app does.

They later claim that AirPlay implemented the key to stop piracy; "The
encrypted stream was initially implemented in order to protect the transfer of
DRM-encrypted iTunes Music Store audio content," but doesn't back this
statement up. I think they implemented the key requirement to enforce their
licensing. I can't back this up either, other than it explains Apple's actions
better than his theory. The licensing isn't there as a profit center, but to
give them some quality control so that AirPlay doesn't get a bad reputation
for being difficult to use or unreliable.

The thing that doesn't make sense is that supposedly Apple rejected this for
using private APIs. This doesn't sound like the case.

It'd be interesting to know what the AirPlay licensing terms are like, and
whether or not the AirFloat developer or Rogue Amoeba approached Apple to
license AirPlay (I'll guess no).

------
cageface
_All was working out great, and in the first month I had 100 downloads and the
reception was phenomenal. Only five star reviews on App Store._

Is that a typo? Really only _100_ downloads? If that's true then the app store
is even more of a crapshoot than I thought.

~~~
rabidsnail
It's only a crapshoot if all you do is drop your app in the store and assume
that people will find it by magic.

~~~
cageface
I've heard several very successful iOS devs say that they basically did
exactly that.

I think the secret is finding a rich but unexplored niche but of course that's
getting more difficult over time.

~~~
rabidsnail
The thing about crapshoots is that sometimes you win.

------
unreal37
I wonder at what point the removal of good and innovative apps will piss
enough iOS developers off that no new good apps will get created...

~~~
taligent
What is good and innovative about stealing Apple's private encryption key ?

~~~
fpgeek
First, as far as I'm aware, there's no allegation that either this developer
or Rogue Amoeba was responsible for extracting and publishing the key in the
first place.

Second, I think the point is that some developers did good and innovative
things with the key. By itself, I'd call extracting and publishing the key a
mundane technical challenge, nothing more.

------
sidwyn
Cached version from Google:

[http://webcache.googleusercontent.com/search?q=cache:6tI7UJT...](http://webcache.googleusercontent.com/search?q=cache:6tI7UJTrdhMJ:devblog.thefamoussoftwarecompany.com/some-
thoughts-on-the-removal-of-airfloat-and-airfoil/+)

------
guelo
Developing for Apple not only means that you are at the mercy of their
changing whims, it also means you are making their platforms more powerful for
them so they can continue to abuse their market power.

------
rabidsnail
Why not run an app on the mac that serves streaming aac over http and give the
user a link to open in mobilesafari? It seems to me that that would sidestep
the whole issue.

------
philfreo
I don't get the point of these iOS apps. I use (and love) AirFoil to send
music from my MBP to my AppleTV to have my computer stream music to my TV
system's speakers. But who would want to have something sent TO their iPhone?

~~~
GuiA
I have an old iPod touch constantly plugged in a wall socket and hooked up to
speakers in my bedroom. Running AirFoil on it allows me to play anything from
my computer/iphone/ipad/etc. . Normally you'd use an airport express for that,
but since I had that old iPod touch lying around, I figured it was better to
recycle the device.

------
huhtenberg
> _I had implemented a usage reporting tool, that I used to track how my
> customers was using the app._

Would you just look at how causally he mentions this. _FUCKING HELL_.

------
sixothree
I was noticing a distinct lack of apps that are airplay capable. Sad.

------
bluelandline
i guess you are using hostgator as your host. (Error establishing a database
connection)

------
drivebyacct2
Presentation matters, spelling matters, basic grammar matters. People will not
take you seriously if every other sentence is less well constructed than if
someone were dictating to the computer in speech form.

Seriously, every other sentence has fundamental mistakes. Writing skills
matter, hugely. Downvotez ahoy! (Pressing the down arrow improves your English
skills for sure!)

------
wissler
It's what happens when you let MBAs and lawyers make the decisions engineers
should be making.

