Contribute
Register

[Solved] NVIDIA Web Driver iBooks Bug

Status
Not open for further replies.
Okay, a bit more information from my experiments ...

The internal iBooks app which seems to display the transparent window is: BKAssetEpub

This is located at:
/Applications/iBooks.app/Contents/Plugins/BKAssetEpub.bundle/Contents/MacOS/BKAssetEpub

Using the codesign modifier ...
Code:
sudo codesign -f -s - /Applications/iBooks.app/Contents/Plugins/BKAssetEpub.bundle/Contents/MacOS/BKAssetEpub
... in Terminal causes it simply not to run and display the book you wish to open, transparent or otherwise.

(By the way if you want to try this yourself you'll need to back up the iBooks.app somewhere safe then use it to copy back the buried app you change after you've finished. You can't replace the whole iBooks.app, it's protected by the system).

So it seems this might be the particularly sensitive bundle app involved.

:crazy: - Scratches-head ...
 
You can't invalidate the signature of bundles in iBooks that way, it'll cause them to not load. The main iBooks application is protected with library validation, so any bundle or plugin it tries to load has to be signed by the same team ID. Resigning with adhoc signatures violates that.

Additionally, iBooks is Sandboxed and uses XPC helper processes, and XPC inter-process communication is secured partly by valid code signatures and team ids. ON TOP of that, it communicates with other apple helper processes and that communication is secured in a similar way.

In summary: there's probably no combination of re-signing that'll result in a functional iBooks application.
 
You can't invalidate the signature of bundles in iBooks that way, it'll cause them to not load. The main iBooks application is protected with library validation, so any bundle or plugin it tries to load has to be signed by the same team ID. Resigning with adhoc signatures violates that.

Additionally, iBooks is Sandboxed and uses XPC helper processes, and XPC inter-process communication is secured partly by valid code signatures and team ids. ON TOP of that, it communicates with other apple helper processes and that communication is secured in a similar way.

In summary: there's probably no combination of re-signing that'll result in a functional iBooks application.

Ok, thank you. :) So my conclusion was wrong? That particular bundle is not the one? It's just a driver issue?

I just find it hard to believe that something that worked perfectly before - Nvidia drivers and iBooks together - suddenly stopped. If it was an accidental bug I would have expected Nvidia to have repaired it in an update (say from beta to release). It's not gone unnoticed even here (see how many have viewed this thread etc).

Also, why does iTunes not use the same api calls to display DRM content (which is why I assume such security is in place). My guess is that there is more money being earned from iTunes than iBooks. Unless eBooks need a different regime for some reason.

But again, maybe I'm missing the point o_O

Ah well - the problem just scuppers the perfect Hackintosh emulation ... and my ability to read books I've bought.

:)
 
Last edited:
I just find it hard to believe that something that worked perfectly before - Nvidia drivers and iBooks together - suddenly stopped. If it was an accidental bug I would have expected Nvidia to have repaired it in an update (say from beta to release).
It stopped working because of stricter library security rules introduced in Sierra. Nvidia cannot fix it, at least not without Apple's cooperation. And since no current Apple products have Nvidia GPUs, they have no particular incentive to spend time on it.

An unofficial hack to disable these extra checks is theoretically possible, but hasn't happened yet and may well be prohibitively difficult in practice.
 
It stopped working because of stricter library security rules introduced in Sierra. Nvidia cannot fix it, at least not without Apple's cooperation. And since no current Apple products have Nvidia GPUs, they have no particular incentive to spend time on it.

An unofficial hack to disable these extra checks is theoretically possible, but hasn't happened yet and may well be prohibitively difficult in practice.

OK, thanks, I understand that perhaps even Nvidia can't mend this on their own. But are Apple really not bothered about previous generation Mac Pro owners who can't use their Nvidia GPUs fully? I thought Sierra only knocked-out early machines like the Mac Pro 3,1 ? Ah well, sounds poor then, doesn't it?

And again I wonder why iBooks needs stricter security than iTunes ...

Thanks for setting me straight :)
 
Hello again all :)

After more experimentation I'm beginning to believe something is wrong with the conclusions about broken Nvidia web-drivers made on this thread (and elsewhere on the Internet).

This screen-grab was made today:

Grab1.jpg


As you can see iBooks reader window is still transparent.

For this desktop I booted via iGPU (HD530 as you can see from the graphic artifacts) and DVI, no acceleration, no Nvidia card, no Nvidia drivers. I made the suggested iGPU spoof ID to start with, then tried without. Then I tried the various recommended Device edits in Clover but truthfully most caused a hang on boot.

So how is this problem - the transparent iBooks reader - a Nvidia driver code-signing issue?

Could there be something else at work?

I'm keen to resolve this issue because of my own iBooks library, and was even considering dumping my discrete Nvidia GPU and changing CPU to an i7 and iGPU, thinking this would solve the problem. Now I'm giving that pause for thought ...

(P.S - I've now reverted to my old config.plist and Nvidia card).

:)
 
I can assure you the problem with an Nvidia card is a problem with the drivers not being recognized as platform binaries. It is plain as day in the system logs what is going on when an Nvidia card is installed, and I can reproduce it in an application I wrote simply by signing it with library validation enabled.

Whatever you have going on there is the same result, different reason. Core Animation is either failing to find a renderer, or whatever it is using is failing to render correctly. It is not the same bug as the Nvidia driver one.
 
I can assure you the problem with an Nvidia card is a problem with the drivers not being recognized as platform binaries. It is plain as day in the system logs what is going on when an Nvidia card is installed, and I can reproduce it in an application I wrote simply by signing it with library validation enabled.

Whatever you have going on there is the same result, different reason. Core Animation is either failing to find a renderer, or whatever it is using is failing to render correctly. It is not the same bug as the Nvidia driver one.

Hi @zakklol :)

I'm not doubting your work at all, but I'm trying to cut away the mythology if I can - for my own benefit, not to cause ill-feeling - so I can use iBooks without crippling my Hackintosh or going back to a real Mac. (I'm an author, I write books).

I don't have any other unusual configuration settings, no exotic hardware, just a Skylake PC and Nvidia graphics.

Okay, of course I can accept it is a different issue to the drivers in this instance, but what exactly? Trying not to over-complicate things etc.

:)
 
If you don't have acceleration enabled for that 530 (it's not clear from your post if you ever got it working), then that would likely be why. If you do then I don't know; for some reason Core Animation is unhappy with things. Maybe there's something in the logs.


Hi @zakklol :)

I'm not doubting your work at all, but I'm trying to cut away the mythology if I can - for my own benefit, not to cause ill-feeling - so I can use iBooks without crippling my Hackintosh or going back to a real Mac. (I'm an author, I write books).

I don't have any other unusual configuration settings, no exotic hardware, just a Skylake PC and Nvidia graphics.

Okay, of course I can accept it is a different issue to the drivers in this instance, but what exactly? Trying not to over-complicate things etc.

:)
 
My solution to IBook(.epub files). Remove DRM by iBookCopy software, convert to PDF with calibre.
 
Status
Not open for further replies.
Back
Top