For anyone interested in the SkyLight/CoreDisplay wrappers, I've just finished a couple updates:
-
Fixed logout/switch user (it previously just hung forever) by implementing SLSSessionSwitchToAuditSessionIDWithOptions() with a call to the older SLSSessionSwitchToAuditSessionID(), rather than just an empty stub function. It always uses the "cube" transition effect though for some reason.
-
Stopped daemon PerfPowerServices from repeatedly crashing by exporting some string constants it was looking for (this noticeably improves performance by preventing ReportCrash from constantly starting, even though the actual daemon seems unnecessary).
-
Stopped daemon universalaccessd from repeatedly crashing by creating a stub function that does nothing.
-
Added a few other stub functions based on differences between symbol dumps (
nm -gU) of the two SkyLight versions. As nothing was complaining about missing these functions, I'm not sure if this actually helped at all.
Please test and report any crashes if you can. Known problems:
- I'm having trouble reimplementing the function SLSSetDockRectWithOrientation() which means that
the Dock won't "collide" with windows properly just yet. This is a fairly minor glitch, though.
- The option to
auto-switch between dark/light theme will most likely not work since it calls a couple new SkyLight functions, which I have currently only implemented as empty stubs.
-
Hopper Disassembler v4 crashes pretty frequently on the patched system... not sure whether it's caused by these patches or an incompatibility with Catalina itself. If someone on a supported Mac could test it, that would be great.
- I've experienced a couple times
TextEdit freezing for several seconds. I'm not sure the cause.
-
Photos crashing due to its use of Metal. This is unrelated to my patches but I'll look into a fix at some point.
I think that the stability of a system with replaced SkyLight is finally approaching usability as a daily driver!
Enjoy
Edit: Attaching the full wrapped frameworks rather than just the binary. As before, if you have working framebuffer, you should be able to just place these into /S*/L*/Frameworks and PrivateFrameworks to get full acceleration!
Edit 2: Look at all these apps being transparent and not crashing and stuff! Yay!
View attachment 842600