[AirPlay][Warning] Don't update to iOS8 if you want AirPlay
#43
Some more observations while the myriad of combinations I tried are still somewhat in my head.

1) Specifying AppleTV3,1 or AppleTV2,1 for am/model causes some of the feature bits to be overridden, for example turning off bit 7 for screen mirroring (changing from 0x100029FF to 0x1000297F) does nothing, however if the model is something else like Xbmc1,1 the feature bits (or at least that particular one) do have an effect. I guess apple assume if the model number is one of their AppleTV's they can make assumptions about feature set from the version number alone and ignore (some of ?) the feature bits.

2) If a specific AppleTV model is specified then Fairplay encrypted audio is forced on when the Airplay video announcement is seen, but if its an unknown model such as Xbmc,1 this doesn't happen if the feature bits and version numbers are correct. Smile (Seems to be another "assumption" by Apple based on model number, like the screen mirroring feature bit above)

3) It looks like we need to leave mirroring support enabled in feature bits even though we don't support mirroring. If I turn off bit 7 AND the model is not AppleTVx,x (so that turning of the bit actually has an effect) video no longer works - it connects to the device but video playback stalls in limbo. So users will just need to know to leave mirroring turned off.

4) Reliable detection as a video device seems to be dependent on both the vs/srvvers being higher than a certain number and mirroring support (bit 7) being advertised, and possibly other feature bits as well. I just started with Reflector's feature bit value and that worked fine with my other changes so I didn't stray too far from that apart from trying to disable the mirroring support option.

5) The model/am fields don't seem to matter except that they shouldn't be an actual recognised AppleTV model number that Apple special cases like AppleTV3,1. I changed them both back to the original Xbmc,1 and it still works fine. (At first I thought having the two model names slightly different was part of the secret of success but it's not)

The following works just as well:

Code:
dns-sd -R 74:D4:35:57:00:E5@ITSUPPORT _raop._tcp local 36666 txtvers=1 cn=0,1 ch=2 ek=1 et=0,1 sv=false tp=UDP sm=false ss=16 sr=44100 pw=false vn=3 da=true vs=150.33 md=0,1,2 am=Xbmc,1
dns-sd -R ITSUPPORT _airplay._tcp local 36667 deviceid=74:D4:35:57:00:E5 features=0x100029FF model=Xbmc,1 srcvers=150.33 xbmcdummy=evendummy

So in essence all that needs changing from the original XBMC implementation is the "features" bitmask and the vs/srcvers version numbers. Smile (And the 10 second record refresh hack is also no longer needed and may cause problems so should be removed)

I've also tested it with a 3GS running iOS 6.1.3 and it works fine there too. iOS 7 still unknown but I'll try to get a chance to test it tomorrow.
Kodi 18.3 - Mid 2007 Mac Mini, 4GB, 2TB HD, Windows 7 SP1
Kodi 18.3 - Vero4k, Raspberry Pi 2. OSMC.
Reply


Messages In This Thread
RE: [AirPlay][Warning] Don't update to iOS8 if you want AirPlay - by DBMandrake - 2014-09-24, 17:19
Logout Mark Read Team Forum Stats Members Help
[AirPlay][Warning] Don't update to iOS8 if you want AirPlay1