Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finally - iOS9 support #8250

Merged
merged 4 commits into from Oct 20, 2015
Merged

Finally - iOS9 support #8250

merged 4 commits into from Oct 20, 2015

Conversation

Memphiz
Copy link
Member

@Memphiz Memphiz commented Oct 18, 2015

Thats what i came up with. This allows our jenkins builds to run on iOS9, iOS8, iOS7, iOS6 and iOS5 (9, 6 and 5 tested by me - the others assumed).

That segalign patch is really important as of iOS9 (and was discovered by saurik himself) when running 32bit apps on 64bit iOS hardware.

The only known issue with this is that nfs / libnfs doesn't work on iOS9 64bit (can't check if its working on 32bit because i only have iOS9 on a 64bit device). I will fix this eventually later. Its more important to get our kodi builds running on iOS9 imo.

…rplay mirroring) - wrong orientation again - this mess never ends - someone need s to rewrite the whole windowing code to get those orientations straight
… 32bit apps to run on 64bit devices with iOS9 and is also safe for all older iOS versions)
@MrMC
Copy link

MrMC commented Oct 18, 2015

is -weak_framework VideoToolbox an issue there. In the old days, vtb framework was dynamically loaded directly. so rm the weak link. in code, figure out which runtime os, then load the framework directly from the right path ?

@razzeee razzeee added the Type: Feature non-breaking change which adds functionality label Oct 18, 2015
@Memphiz
Copy link
Member Author

Memphiz commented Oct 18, 2015

Yes - i Never understood how and where the dyloading was happening - but it seems something Else already broke ios5 support. At least on my iPad1 current nightlies just come up with Black Screen and get killed by the os because it doesn't Start up in time - no Logs at all...

@MrMC
Copy link

MrMC commented Oct 19, 2015

I dug into this a bit, the original atv2 code also did an extern reference and direct link to System/Library/PrivateFrameworks/VideoToolbox.framework I swear I did a framework dyload somewhere , sometime in the far past.

you could change the direct linking to a dyload, like we do with other libs, framework/lib, same thing.
either manually do the dlopen/dlsym resolve or carry two dll classes as DECLARE_DLL_WRAPPER is singular. Or play some inheritance games.

@Memphiz
Copy link
Member Author

Memphiz commented Oct 19, 2015

Damn that you can't find that code - i think its a bit to much work for getting it into isengard 15.2 - maybe igive it a shot - finally the nightlies started working on my ipad1 after it was fully charged - so the approach you lined out should work - question is if it is worth the hazzle for only one ios version with not so many users...

@MrMC
Copy link

MrMC commented Oct 19, 2015

Yes, the big question would be, is it worth the code required to continue support for iOS5. For such an ancient iOS, maybe not BUT, switching to a dyload might be interesting overall given that tvos sdk has moved vtb back to private (the bastards).

Once doing a dyload for vtb, dynamically runtime switching the path to the actual location would not be too hard.

I do have a refactored vtb up and running, minus mp4 inject bits. Might be a good base.

@Memphiz
Copy link
Member Author

Memphiz commented Oct 19, 2015

almost done with the dyloading ... but there are no binaries in /System/Library/Frameworks/VideoToolbox.framework/VideoToolBox at all ... lets hope dlopen does some magic and looks it up in the dylib cache or so ...

…he runtime ios version either load it from private or public frameworks path
@Memphiz
Copy link
Member Author

Memphiz commented Oct 19, 2015

@davilla works on ios9 ... now about to try on ios6 and ios5 ... this would be worth a backport and isengard 15.2-1 i think :)

@Memphiz
Copy link
Member Author

Memphiz commented Oct 19, 2015

The only known issue with this PR is that nfs access doesn't work for me on ios9 (it does on all older ios versions - maybe 64bit issue or ios9 issue - can't tell because my only ios9 device is 64bit).
Dyloading seems to work but it just seems to fail to connect.

Beside that this is good to go imo and i do a isengard 15.2-1 with this backported ... so we have ios9 support without loosing older platforms. @davilla thx for bringing back the idea of dyloading here which was the key for ios5 support :)

@Memphiz
Copy link
Member Author

Memphiz commented Oct 19, 2015

@razzeee iirc you added that feature flag. Any reason for this? This is not really a feature imo.

@philipl
Copy link
Contributor

philipl commented Oct 19, 2015

For what it's worth, nfs worked fine for me with your original test build with this PR in it.

@Memphiz
Copy link
Member Author

Memphiz commented Oct 19, 2015

mhhh @philipl please try this build and tell me if nfs works for you ... and what device you have (64bit or 32bit):

http://mirrors.kodi.tv/test-builds/darwin/ios/kodi-20151019-0af7a90-ios9-ios.deb

@Memphiz Memphiz changed the title iOS9 support in favour of dropping iOS5.x support Finally - iOS9 support Oct 19, 2015
@philipl
Copy link
Contributor

philipl commented Oct 19, 2015

I will try this tonight. My device is an air2 so 64bit.

@razzeee
Copy link
Member

razzeee commented Oct 19, 2015

@Memphiz
no reason, just change it.
I just thought support for a new version might qualify as a feature, but I wasn't sure. :)

@Memphiz Memphiz added Type: Fix non-breaking change which fixes an issue v15 Isengard v16 Jarvis Backport: Done and removed Type: Feature non-breaking change which adds functionality labels Oct 19, 2015
@MrMC
Copy link

MrMC commented Oct 19, 2015

FigVideoHack could go if you do not target less than iOS5.

@philipl
Copy link
Contributor

philipl commented Oct 20, 2015

@Memphiz. Nfs works fine with your new build too.

@Memphiz
Copy link
Member Author

Memphiz commented Oct 20, 2015

thx for testing @philipl - @MrMC ahh ok - yeah - another time ... :)

Memphiz added a commit that referenced this pull request Oct 20, 2015
@Memphiz Memphiz merged commit 69b5778 into xbmc:master Oct 20, 2015
@Memphiz Memphiz deleted the ios9 branch October 20, 2015 05:04
@hudokkow hudokkow added this to the Jarvis 16.0-alpha4 milestone Oct 20, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Backport: Done Type: Fix non-breaking change which fixes an issue v15 Isengard v16 Jarvis
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants