2015-04-20, 17:14
Dear all,
I have spent some time to look into Apple's airplay mirroring support, which is encrypted by fairplay protocol. After investigating several existing commercial applications I have finally managed to get a way of decrypting fairplay protected streams.
I have extended the shairplay code to demostrate this ability. Please look at https://github.com/foxsen/shairplay, parts of the README.md:
Update by foxsen, 2015/4/20: Experimental support for fairplay protocol and airplay:
* fairplay encrpted audio is supported (et == 3)
* AAC-ELD audio is supported(untested yet)
* airplay service framework is added, up to the point that the mirroring connection starts streaming. But the UI and callbacks to be done.
* fairplay support is performed via interactions with a server
Because I have no enough time and knowledge to do all the other necessary coding to make a full open source solution that support mirroring, I hope people can help to continue the project or port my code into other projects like kodi. I am willing to help with related issues.
The dirty work is hidden in my server app. During a session with fairplay, we need to interact with the server for three times to get the job done. You can read the code above to learn how. When I get more time, I prepare the write something about this part of work. Basically it involves some reverse engineering and a lot of tricks to rebuild a relocatable object from part of a binary.
Public access to that app is open and free for personal visits now. If anybody wants to use it in commercial environment, you can contact me.
Happy hacking.
Regards
I have spent some time to look into Apple's airplay mirroring support, which is encrypted by fairplay protocol. After investigating several existing commercial applications I have finally managed to get a way of decrypting fairplay protected streams.
I have extended the shairplay code to demostrate this ability. Please look at https://github.com/foxsen/shairplay, parts of the README.md:
Update by foxsen, 2015/4/20: Experimental support for fairplay protocol and airplay:
* fairplay encrpted audio is supported (et == 3)
* AAC-ELD audio is supported(untested yet)
* airplay service framework is added, up to the point that the mirroring connection starts streaming. But the UI and callbacks to be done.
* fairplay support is performed via interactions with a server
Because I have no enough time and knowledge to do all the other necessary coding to make a full open source solution that support mirroring, I hope people can help to continue the project or port my code into other projects like kodi. I am willing to help with related issues.
The dirty work is hidden in my server app. During a session with fairplay, we need to interact with the server for three times to get the job done. You can read the code above to learn how. When I get more time, I prepare the write something about this part of work. Basically it involves some reverse engineering and a lot of tricks to rebuild a relocatable object from part of a binary.
Public access to that app is open and free for personal visits now. If anybody wants to use it in commercial environment, you can contact me.
Happy hacking.
Regards