openairplay / open-airplay

A collection of libraries for Apple's AirPlay protocol
1.76k stars 187 forks source link

tvos 10.2 requires AirPlay hardware verification #15

Open rburcham opened 7 years ago

rburcham commented 7 years ago

Hi James. Are we screwed?

http://appleinsider.com/articles/17/03/29/tvos-102-update-requires-airplay-hardware-verification-breaks-third-party-streaming-apps

https://discussions.apple.com/thread/7904345?start=0&tstart=0

AirParrot and DoubleTwist have resolved it. Airfoil is still working on it, and recommending folks not upgrade past 10.1.1 until they have it solved.

I'd just like to mirror my linux laptop again :)

funtax commented 7 years ago

Maybe this project could get some help by Beamer, AirParrot or DoubleTwist? They seem to have managed the hardware verification.

rburcham commented 7 years ago

@funtax any idea how to get one of those experts to see this issue? or give a hint?

funtax commented 7 years ago

I think the author of this repo has to write them via e-mail. I'm at this time also trying the reverse-engineer the authentication in Java - it's a SRPv6a-authentication followed by some encryption.

Just in case I might have success and no one else was faster with this, I will publish it so all other projects can use it as well!

rburcham commented 7 years ago

One minor concern I have is that the folks who have already worked around the issue happen to be Apple certified developers. I'm worried that there may be some Apple issued chain of trust present in the "some encryption" part you mention above.

funtax commented 7 years ago

I have reverse-engineered the authentication, at least on my ATVv3 with the "device verification" enabled. I developed an easy to use Java-library that does the authentication/pairing and am testing it with my personal apps & users with an ATVv4 in the next days. Will try to open-source this here on github as soon as possible and then leave a hint in this thread.

rburcham commented 7 years ago

Excellent @funtax - be advised I have an office full of 1 dozen ATVv4 here ready to assist testing immediately!

funtax commented 7 years ago

A user tested the new version of my app with his ATV v4 - the library is working as expected :-) I will do some final cleaning and open-source it in the next few days, stay tuned.

2017-05-22 16:50 GMT+02:00 rburcham notifications@github.com:

Excellent @funtax https://github.com/funtax - be advised I have an office full of 1 dozen ATVv4 here ready to assist testing immediately!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jamesdlow/open-airplay/issues/15#issuecomment-303123055, or mute the thread https://github.com/notifications/unsubscribe-auth/AAZmMCNClfiZsVazB1QiW9E6QZRuKK6Vks5r8aC3gaJpZM4NE3ol .

rburcham commented 7 years ago

Awesome news @funtax ! I shall stay tuned!

funtax commented 7 years ago

Here we go: https://github.com/funtax/AirPlayAuth

More details will follow in the next days. You can simply import the project eg. into "IntelliJ Community Edition" and run the example :)

I'm the developer of two audio AirPlay-apps and can confirm that once the pairing has been done, the ongoing communication with the AirPlay-receiver is done like before.

Also, there seems to be no reliable way to check if pairing is required, beside checking the mdns-data for "appletv" and "pk". Then authentication can also be made on ATVs which have the authentication not enabled, so you can simply always do the pairing in case it's an AppleTV.

postlund commented 7 years ago

Awesome work @funtax! I have not tried it yet but I bet a lot of people will be happy about this! It's requested for my python library, so I might borrow some of your work and port it to python. Again, great work!

rburcham commented 7 years ago

Really great work @funtax! I'm digging in...

tremby commented 4 years ago

Is there any known workaround at present to get open-airplay to work with this authentication?

JonasRSV commented 4 years ago

Hey, I tried to combine this project with the authentication project for airplaying desktop. But for some reason

using "PUT /photo" currently returns

HTTP/1.1 501 Not Implemented
Content-Length: 0
Server: AirTunes/420.45

Does anyone have any ideas? I know very little about the airplay protocol and combining the projects was just some quick cut-n-paste. It would be super cool if it was possible to get airplay to work even with the new apple TV's

Here's the code / project

https://github.com/JonasRSV/AirPlayAuth-OpenAirPlay/blob/master/src/main/java/eu/airaudio/airplay/AirPlayAuthExample.java

reginbald commented 3 years ago

Anyone gotten this to work?