monterey

obsolete

Stars
31

THIS REPO IS OBSOLETE

As non-Metal is now firmly a multi-person effort (thanks to EduCovas and ASentientHedgehog!), we are migrating the code here for easier collaboration and a saner build system.

I am unlikely to update this repo in future.


credits

  • EduCovas: Safari Extensions, WebKit, SkyLight, and Safari freeze (DisplayLink) insights, swipe between pages workaround, QuartzCore (Control Center, missing icons, blur saturation, corners) insights and shim code, Catalyst scrolling workaround, extensive testing
  • ASentientHedgehog: TeraScale 2 and QuartzCore (corners) insights, previous keyboard backlight workaround, OpenCL downgrade, Night Shift prefpane fix, extensive testing
  • dosdude1: 10.14.4+ OpenGL fix, Mojave/Catalina patchers, countless macOS insights
  • Dortania (khronokernel, dhinakg, et al.): OpenCore Legacy Patcher, Broadcom Wi-Fi fix, Bluetooth insights, TeraScale 2 insights, excellent hackintosh guides, countless other explanations and help
  • Flagers: various macOS insights and help
  • SpiraMira (pkouame), testheit: SkyLight insights, previous transparency patches
  • jackluke: 10.14+ Penryn panic fix (telemetry plugin), Tesla insights, testing
  • Minh Ton: many macOS insights, QuartzCore brightness workaround, testing
  • parrotgeek1: macOS and graphics insights regarding Tesla, TeraScale 2, SIP, OpenGL and more
  • Syncretic: MonteRand
  • Acidanthera: aftermarket SSD hibernation patch
  • Julian Fairfax: macOS insights, testing
  • IronApple: OpenCL downgrade testing
  • me: most fixes not listed above

Thanks as well to other contributors, moderators, and testers on Unsupported Macs Discord, OCLP Discord, and MacRumors Forums. Please tell me if I forgot to mention you.

build

Place these in Build.noindex. Add the target version's InstallAssistant.pkg as Current.pkg. Run Import.tool, then Build.tool.

Run Install.tool to prepare patches for a given machine:

  • zoe: MacBook7,1
  • cass2: minimal Radeon HD 5850 system
  • cass3: minimal Radeon HD 4870 system

Select reveal to show the output in Finder. Other modes are unsupported; see OCLP for all practical uses.

changes

2022-4-2

  • fix black video playback with Mojave QuartzCore

2022-3-31

  • begin work to support QuartzCore downgraded to Mojave (significantly improves performance but currently breaks many features; another huge thanks to our local madlad EduCovas for the discovery!)
  • rewrite Stubber's Objective-C handling to generate real functions (rather than catching invocations), allowing auto-generation of most formerly handwritten QuartzCore stub categories

2022-3-19

  • update build scripts to apply correct library versions to wrappers

2022-3-7

  • whitelist Displays prefpane service in Night Shift fixes, thanks ASentientHedgehog for this finding

2022-2-23

  • disable TS2 hacks since ASentientHedgehog and IronApple fixed OpenCL
  • enable open/save buttons on 12.3 DP4

2022-2-9

  • reduce keyboard backlight hack delay, disable by default (sudo defaults write /Library/Preferences/.GlobalPreferences.plist NonMetal_BacklightHack -bool true to enable)

2022-2-8

  • temporarily fix keyboard backlight by delaying until AppleSMCLMU comes online (not production-ready: can increase boot time considerably)
  • add workaround for EXC_GUARD crashes with AMFI off

2022-2-6

  • add hack to allow quitting Catalyst apps with downgraded QuartzCore

2022-2-3

  • support new InstallAssistant DMG format

2022-1-30

  • add hacks for 12.3 DP1: workaround 800 MHz problem by downgrading IOPlatformPluginFamily.kext, tweak LPM patch for changes in IOKit
  • fix Catalyst scrolling; thank you very much EduCovas for figuring this out!

2022-1-26

  • fix Finder animations with downgraded QuartzCore
  • implement custom menu bar colors (sudo defaults write /Library/Preferences/.GlobalPreferences.plist NonMetal_MenuBarOverride 'R,G,B,A' where 0 ≤ R,G,B,A ≤ 1)
  • fix brightness slider on some hardware; thanks to Minh Ton for this hack!

2022-1-25

  • re-enable old CABackdropLayer scale override to reduce blur glitching with downgraded QuartzCore; another thank you to EduCovas for noticing this
  • fix Siri with downgraded QuartzCore

2022-1-24

  • implement QuartzCore downgrade and supporting shims to fix Control Center graphical bugs, system-wide missing icons, desaturated blurs, and more; huge thanks to EduCovas for extensive research and over half of the shim code
  • strip out obsolete fixes (disables ASB_BlurOverride)
  • add credits in verbose boot

2022-1-16

  • forcibly enable Night Shift
  • call SkyLightPluginEntry in plugins if present
  • remove now-unnecessary blur blacklisting

2022-1-6

  • interpret negative ASB_RimOverride value as "hide legacy border but don't draw a fake one"
  • properly deallocate wrapper object on window termination
  • improve reliability of active blur detection

2021-12-15

  • simulate Metal window borders in dark mode (enable with defaults write -g ASB_RimBeta -bool true, tweak brightness with defaults write -g ASB_RimOverride -float <value from 0 to 1, 0.2 default>)
  • re-add Big Sur Photos hack

2021-12-14

  • properly disable inactive blurs for better multitasking performance

2021-12-9

  • plugins v2 (now in /Library/Application Support/SkyLightPlugins to workaround sandbox, target paths read from <dylib name>.txt for easier management)

2021-11-26

  • update DisplayLink hacks (thanks EduCovas!)
  • support Big Sur

2021-11-16

  • implement basic plugin functionality (place dylibs in /etc/SkyLightPlugins, append lines <target path or *> : <dylib name> to List.txt)

2021-11-11

  • start testing blur fixes (opt-in with defaults write -g ASB_BlurBeta -bool true, tweak strength with defaults write -g ASB_BlurOverride -float <radius>, disable per-app with defaults write <bundle id> ASB_BlurBeta -bool false)

2021-11-4

  • enable greyscale color filter
  • fix accessibility zoom

2021-11-3

  • run HID event system under WindowServer (removing the need for HiddHack.plist)
  • fix Bluetooth again

2021-10-31

  • automatically apply Low Power Mode patches (IOKit model check, powerd xcpm ioctl)
  • further improve Binpatcher's assembly regex mode

2021-10-30

  • implement MonteRand kernel patch
  • add objdump wrapper to Binpatcher

2021-10-21

  • fix PowerChime crash for those who have enabled it
  • add hack to fix Safari extension checkboxes

2021-10-20

  • properly enable occlusion notifications

2021-10-19

  • add hack to stop crashes if you've downgraded QuartzCore to fix corners

2021-10-17

  • add preliminary support for TeraScale 1

2021-10-2

  • patch SkyLight binary to workaround preference pane crash

2021-9-24

  • workaround ROM feature check in DP7
  • add NVDAStartup (removed with Kepler kexts)

2021-9-20

  • fix TeraScale 2 screen recording

2021-9-18

  • implement ivars in Stubber
  • handle staging/installing multiple targets
  • support TeraScale 2

2021-9-16

  • implement Bluetooth hack
  • steal hibernation patch from OpenCore

2021-9-7

  • implement CoreDisplay hack for AGDC-related WindowServer crash on Intel

2021-9-5

  • rewrite Stubber (modularity, Class Stub is implemented...)
  • remove excessive SkyLight shim logs
  • create symlinks in shimmed frameworks (Catalyst dyld problem)

2021-8-26

Changes since last non-GitHub release.

new Monterey issues

  • add occlusion hack (WebKit animations, frozen Activity Monitor)
  • fix missing menu bar
  • fix scrolling crashes
  • fix DisplayLink crashes
  • fix missing symbols

existing Big Sur issues

  • fix unreliable sleep/wake notifications (black screens, missing loginwindow)
  • fix replicants (dual-monitor status bar)
  • fix Reduce Transparency black menu bar
  • fix incorrect reversed private interfaces
  • decrease code horrifyingness

todo

Roughly ordered by priority. Also see here.

  • fix Catalyst timeout crash
  • fix Catalyst crashes with Mojave QC
  • fix upside-down Catalyst UI elements with Mojave QC
  • fix beachball with hardware cursor (workaround: downgrade IOHIDFamily to Catalina and edit WindowServer's sandbox file to allow HIDWaitCursorFrameInterval, or use this beta SkyLight plugin)
  • fix mouse event weirdness on dual monitors with blur fix
  • fix unresponsive password dialogs with downgraded QuartzCore
  • change remaining defaults and logging prefixes, move repo to Moraea organization
  • fix graphical bugs with fake window rims
  • improve blur fix performance
  • fix remaining blur flickering issues
  • fix "Cycle Through Windows"
  • fix "Swipe Between Pages" (workaround: defaults write -g AppleEnableMouseSwipeNavigateWithScrolls -bool true)
  • investigate rare binaries not seeing re-exported symbols (Dropbox-specific workaround: SkyLight plugin)
  • support Ironlake
  • investigate slow compositing in all browsers (at least partially fixed with Mojave QC)
  • investigate broken WebGL in all browsers (workaround: use Chrome's ignore-gpu-blocklist)
  • improve status bar item resizing, replicant handling
  • investigate Maps crash
  • rewrite Glyphs
  • investigate space switching notifications
  • fix Photo Booth (workaround: use Big Sur version)
  • fix Books (workaround: use Big Sur version)
  • automatically color menu bar text (workaround: defaults write -g ASB_DarkMenuBar -bool true)
  • implement auto appearance (workaround: use NightOwl)
  • implement Screen Time locking
  • fix full-screen transition
  • fix Migration Assistant
  • fix "Move to Display"