Contribute
Register

[HALF-SUCCESS] iTunes 12.7 constantly crashing (random messages)

Status
Not open for further replies.
Here you go. But still no success with my NVIDIA in iTunes DRM. Still wondering what Shikigva flag may be neccessary

Thanks for the File. I have a similar setup & issue as you. Even after updating Lilu and Shiki to the latest versions I can't play DRM videos in iTunes. Here are the scenarios:
  • no boot-flag set (or shikigva=16):
    • VDADecoderChecker fails with VDADecoderCreate failed. err: -12473
    • DRM videos in iTunes don't play and just show a black box
    • iTunes doesn't crash
  • shikivga=12
    • VDADecoderChecker shows success!
    • Downloaded DRM videos immediate cause a crash when the play button is hit
    • Non-Downloaded DRM videos (w/ cloud icon) show a green box with some garbled video towards the top of the frame. Sometimes there is sporadic sound. Eventually causes iTunes to crash.
    • iTunes crashes frequently even if you aren't trying to play video
 
Last edited:
shikivga=12
  • VDADecoderChecker shows success!
  • Downloaded DRM videos immediate cause a crash when the play button is hit
  • Non-Downloaded DRM videos (w/ cloud icon) show a green box with some garbled video towards the top of the frame. Sometimes there is sporadic sound. Eventually causes iTunes to crash.
  • iTunes crashes frequently even if you aren't trying to play video

Seems to be shiki failed to detect CoffeeLake CPU type correctly, auto KillGVA patch (same as shikigva=16) for iTunes crashing not applied. Need waiting for next version.

For experiment only,
You may try to restore old FairPlay certificates from 10.12.6 (CoreKE.framework), it may broke DRM system, so far work fine in 10.13.1, tested with HD510 + GT730.

Backup and replace CoreKE.framework with attached, run below from terminal then reboot.
cd /System/Library/PrivateFrameworks/
sudo codesign --deep -fs - CoreKE.framework
sudo chown -R root:wheel CoreKE.framework
 

Attachments

  • CoreKE.framework.zip
    2 MB · Views: 81
Thanks for the File. I have a similar setup & issue as you. Even after updating Lilu and Shiki to the latest versions I can't play DRM videos in iTunes. Here are the scenarios:
  • no boot-flag set (or shikigva=16):
    • VDADecoderChecker fails with VDADecoderCreate failed. err: -12473
    • DRM videos in iTunes don't play and just show a black box
    • iTunes doesn't crash
  • shikivga=12
    • VDADecoderChecker shows success!
    • Downloaded DRM videos immediate cause a crash when the play button is hit
    • Non-Downloaded DRM videos (w/ cloud icon) show a green box with some garbled video towards the top of the frame. Sometimes there is sporadic sound. Eventually causes iTunes to crash.
    • iTunes crashes frequently even if you aren't trying to play video
Notice argument is actually shikigva. According to https://github.com/vit9696/Shiki/releases
Exactly same issues i was facing with, even the downloaded files won't play. With the shikigva=12 flag i also got these Crash reports from iTunes by hitting the play button.
Will give it a try with shikigva=4 later...
 
With the shikigva=12 flag

Currently, shikigva=12 is the only choice to unlock VDADecoder for SKL/KBL + Nvidia in 10.13.x, shikigva=28 (from RU post) still in experiment.

Edit: Just tested experiment shiki.kext, shikigva=28 work, iTunes no crashing, SKL/KBL + Nvidia VDADecoder work, now High bitrate 4K@60 @75.8 Mbps H265 video can playback smoothly in QuickTime.
 

Attachments

  • Shiki.kext.zip
    14.7 KB · Views: 78
Last edited:
Currently, shikigva=12 is the only choice to unlock VDADecoder for SKL/KBL + Nvidia in 10.13.x, shikigva=28 (from RU post) still in experiment.

Edit: Just tested experiment shiki.kext, shikigva=28 work, iTunes no crashing, SKL/KBL + Nvidia VDADecoder work, now High bitrate 4K@60 @75.8 Mbps H265 video can playback smoothly in QuickTime.

MacBoy123: You are correct that the boot-arg is shikigva (not shikivga). That was a typo in my original post that I have now corrected.

Shuhung: Thank you for your suggestions. Before I give the CoreKE a try I am going back to make sure I didn't miss anything with my existing setup. I have made two observations:
  1. My IOVARendererID (and SubID) are no longer present in ioreg! These used to be there (they first showed up once I figured out how to change HCEI to IMEI), but now they are missing. I tried downgrading Lilu and Shiki to the older versions to see if my recent upgrade had an effect, but the RendererIDs are still missing under that scenario. I have the current versions of IntelGraphicsFixup and NvidiaGraphicsFixup installed (confirmed by kextstat), but no IOVARendererID. My ig-platform-id is 0x59120000. I tried setting it to others found online (e.g. 0x19120001), but with my intel HD630 onboard graphics, 0x59120000 is the only one that I tried that doesn't cause video to drop during boot.
  2. I tried shikigva=28 and got an improved result. In this case I observe:
    1. VDADecoderChecker shows success!
    2. IOVARendererID missing from ioreg
    3. Downloaded DRM videos don't play and just show a black box
    4. Non-Downloaded DRM videos (w/ cloud icon) play audio, but no video (video is just black box)
    5. iTunes doesn't crash.
I think this is progress! That's for all the input everyone.
 
Last edited:
MacBoy123: You are correct that the boot-arg is shikigva (not shikivga). That was a typo in my original post that I have now corrected.

Shuhung: Thank you for your suggestions. Before I give the CoreKE a try I am going back to make sure I didn't miss anything with my existing setup. I have made two observations:
  1. My IOVARendererID (and SubID) are no longer present in ioreg! These used to be there (they first showed up once I figured out how to change HCEI to IMEI), but now they are missing. I tried downgrading Lilu and Shiki to the older versions to see if my recent upgrade had an effect, but the RendererIDs are still missing under that scenario. I have the current versions of IntelGraphicsFixup and NvidiaGraphicsFixup installed (confirmed by kextstat), but no IOVARendererID. My ig-platform-id is 0x59120000. I tried setting it to others found online (e.g. 0x19120001), but with my intel HD630 onboard graphics, 0x59120000 is the only one that I tried that doesn't cause video to drop during boot.
  2. I tried shikigva=28 and got an improved result. In this case I observe:
    1. VDADecoderChecker shows success!
    2. IOVARendererID missing from ioreg
    3. Downloaded DRM videos don't play and just show a black box
    4. Non-Downloaded DRM videos (w/ cloud icon) play audio, but no video (video is just black box)
    5. iTunes doesn't crash.
I think this is progress! That's for all the input everyone.

Now issue is how to inject IOVARendererID and SubID.

If latest NvidiaGraphicsFixup not work, try older NvidiaGraphicsFixup or use old method iMac.kext, download from this thread post #63.

Use empty frame ig-platform-id 0x59120003, do not need IntelGraphicsFixup

No IOVARendererID therefore no video playback output, normal.

Now shikigva=28 work, no need test CoreKE.
 
Now issue is how to inject IOVARendererID and SubID.

If latest NvidiaGraphicsFixup not work, try older NvidiaGraphicsFixup or use old method iMac.kext, download from this thread post #63.

Use empty frame ig-platform-id 0x59120003, do not need IntelGraphicsFixup

No IOVARendererID therefore no video playback output, normal.

Now shikigva=28 work, no need test CoreKE.

You're full of good ideas Shuhung: Thanks! I just found a post that described which connectorless platform-ids were appropriate for the new intel UHD graphics. You are correct that 0x59120003 (0x59180002) are the two connectorless options. I have tried both and get these results:
shikigva=12:
  • VDADecoderChecker shows success!
  • IOVARendererID still missing
  • Downloaded videos cause immediate crash
  • cloud videos play with full audio and this time a full screen of moving, garbled, nonsense video! :)
shikigva=28:
  • same behavior as my previous post on shikigva=28

So switching the platform_id seems to be another step in the right direction. Next, I'm going to work on getting that IOVARenderID to show up as you suggested.

One more thing: I found a post that suggested I rename PEGP as GFX0. I might try that, but the post was very old and I'm not sure if it is still relevant.

Thanks again!
 
Here we are, what I test it and the results;

First without arguments;

No Crash, No full Acceleration picture down below;

Screen Shot 2017-11-18 at 20.16.20.png



With combinations arguments I used;

shikigva=4 iTunes Crash, Hardware Acceleration fully supported.
shikigva=12 iTunes Crash, Hardware Acceleration fully supported.
shikigva=16 iTunes Crash, Hardware Acceleration fully supported.
shikigva=4, shikigva=12 iTunes Crash, No full Acceleration
shikigva=4, shikigva=16 iTunes Crash, No full Acceleration
shikigva=4, shikigva=12, shikigva=16 iTunes Crash, No full Acceleration

Finally, I used this and result perfectly so far;

-shikigva=16 No iTunes Crash and Hardware Acceleration fully supported.


Screen Shot 2017-11-20 at 00.11.31.png


 
Last edited:
...Next, I'm going to work on getting that IOVARenderID to show up as you suggested.

One more thing: I found a post that suggested I rename PEGP as GFX0. I might try that, but the post was very old and I'm not sure if it is still relevant.

Thanks again!

After a little more work I found that PEGP->GFX0 and PEG0->POP2 DSDT renames don't seem to change the behavior of iTunes,
VDADecoderChecker, or the presence/absence of IOVARenderID.

As for trying to get the IOVARenderID to show up I found something that might be useful to others: if you download and install the debug version of NvidiaGraphicsFixup.kext ("ngfx") and use boot-arg -liludbgall, you can see messages from the kext in the log using this command (which I stole from another here on tonymac):

log show --predicate 'process == "kernel" AND (eventMessage CONTAINS "Lilu" OR eventMessage CONTAINS "AppleALC" OR eventMessage CONTAINS "Shiki" OR eventMessage CONTAINS "Fix")' --style syslog --source

using this technique I was able to follow the DEBUG log entries for ngfx. It stated that it located and isolated the patch location and successfully injected both IOVARenderID and IOVARenderSubID. However, after boot, they are not visible in ioreg -- so now I'm working on determining if some other kext is removing them after they have been injected.
 
Last edited:
Here we are, what I test it and the results;

First without arguments;

No Crash, No full Acceleration picture down below;

View attachment 293588


With combinations arguments I used;

shikigva=4 iTunes Crash, Hardware Acceleration fully supported.
shikigva=12 iTunes Crash, Hardware Acceleration fully supported.
shikigva=16 iTunes Crash, Hardware Acceleration fully supported.
shikigva=4, shikigva=12 iTunes Crash, No full Acceleration picture down below;
shikigva=4, shikigva=16 iTunes Crash, No full Acceleration picture down below;
shikigva=4, shikigva=12, shikigva=16 iTunes Crash, No full Acceleration picture down below;

Finally, I used this and result perfectly so far;

-shikigva=16 No iTunes Crash and Hardware Acceleration fully supported.


View attachment 293594


Hi telepati. I was under the impression that shikigva flags are additive; meaning that if you wanted both shikigva=4 and shikigva=8 you would just use a single shikigva=12. The idea being that 12 doesn't represent a new config, but rather a combination of other configs. I would speculate that supplying multiple shikigva args would result in one of them being ignored.
 
Status
Not open for further replies.
Back
Top