Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
I have a feeling that Apple must hate this thread! (Yeah, yeah, I know - It could care less, but...) Here, its most vaunted and trumpeted features of Catalina stripped to their essentials.
Kudos to all who devote time to making Catalina less fearsome.
They don't give a ****. If they were, they would make some tweak to prevent this. And they can do it for sure.
 
Since the @ASentientBot method of "createinstallmedia" keeping the InstallESD.dmg has been reported to work by many, keeping also a valid Preboot UUID (I haven't tested it since I just cloned Catalina), you may consider to create this way Installer (I know it's less editable and customisable):

- "createinstallmedia" from Catalina.app for supported Mac on a temporary Volume or USB Drive
- creating your custom OSInstall.mpkg
- putting temporary in read/write and injecting inside the InstallESD.dmg the custom OSInstall.mpkg

Code:
hdiutil attach -owners on InstallESD.dmg -shadow
replaced your custom OSInstall.mpkg
hdiutil detach /dev/diskX
hdiutil convert -format UDZO -o InstallESDPatched.dmg InstallESD.dmg -shadow

This would be suffice to install Catalina as APFS with a valid APFS Data and all the rest.


Instead for your "Post Install.app" Patches you'd have two paths:

1) Or creating a dedicated Catalina BaseSystem.dmg for Post-Install.app patches only (I guess 3 GB would be suffice)

So users would need two separated USB drives (or one drive with 2 GPT partitions) to install and to Post Install Patch.


2) Or maybe something like this:

- put temporary in read/write and injecting inside the BaseSystem.dmg all your Post Install patches

Code:
hdiutil attach -owners on BaseSystem.dmg -shadow
copy all your stuffs (prelinkedkernel, kext, Post Install apps and so on)
hdiutil detach /dev/diskY
hdiutil convert -format UDZO -o BaseSystemPatched.dmg BaseSystem.dmg -shadow

I don't know if BaseSystem.dmg needs a fixed size, or contains several signature of other checks.


And as you already know, seems that from Catalina BaseSystem.dmg the place for "Recovery Utilities apps" is no more here /Applications/Utilities/ but here /System/Applications/Utitilies/

so maybe there you should put your "Post Install.app".

It doesn't work for me...
 
  • Like
Reactions: TimothyR734
It doesn't work for me...

You have to use an "OSInstall.mpkg" taken from an OSX Installer for the latest OSX supported on your machine, for example El Capitan one for 2008/2009 machines, HighSierra one for 2010-2011 machines.

If you want to patch yourself "Distribution" you should patch first the OSInstaller.framework but in that case you need also to adjust the BaseSystem.dmg , so the @ASentientBot method to downgrade the OSInstall.mpkg is the best choice till now for creating a custom Catalina Installer.
 
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
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
This is some some amazing work, thank you SO much for spending so much time to make this happen! I've been working all day today practically on the installer patch, but I still haven't arrived at a working solution yet. Apple sure made it hard this time around.
Bad Apple
 
Going back to the Dashboard.app, how deep do unresolved dependencies go in Catalina? I mean, I assume the Mojave Dashboard.app calls one or more frameworks that, in Catalina, no longer have certain methods. If the unresolved symbols only go as deep as level 1 (i.e., they reach the frameworks themselves and do not go beyond them, or, if they do, all the relevant symbols of the second level are still there in Catalina), wouldn't it be feasible to hex-edit Dashboard.app so that it will reference renamed Mojave frameworks that could coexist with their new Catalina namesakes? Wouldn't that, in fact, bring back the Dashboard for those who want it?
 
  • Like
Reactions: jackluke
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
Excellent work @ASentientBot . You’re the Man!
 
Going back to the Dashboard.app, how deep do unresolved dependencies go in Catalina? I mean, I assume the Mojave Dashboard.app calls one or more frameworks that, in Catalina, no longer have certain methods. If the unresolved symbols only go as deep as level 1 (i.e., they reach the frameworks themselves and do not go beyond them, or, if they do, all the relevant symbols of the second level are still there in Catalina), wouldn't it be feasible to hex-edit Dashboard.app so that it will reference renamed Mojave frameworks that could coexist with their new Catalina namesakes? Wouldn't that, in fact, bring back the Dashboard for those who want it?

I guess it would possible, but I am not skilled to do that, also noticed from some very old osx apps, that they had dylibs, libraries/frameworks included inside an "Example.app/Contents/Frameworks/" with some old frameworks standalone with same naming of modern frameworks, and the app was executed as sandboxed and isolated from the rest.
 
  • Like
Reactions: TimothyR734
The previous Dashboard.app is a 64 bit app, but after my few tests, doesn't work more since dependent to a couple of very important frameworks, and replacing them didn't worked, I mean the frameworks send in crash other frameworks.
[doublepost=1560410021][/doublepost]

Here is the how to unlock: https://www.reddit.com/r/apple/comments/bx3eet/sidecar_support_on_older_macs/

I also enabled it on MacBook7,1 but this feature requires from the GPU the HEVC H265 encoder/decoder capabilities, that only very recent Mac have, but maybe some kind of patching would be possible to allow GPU with H264.

These are after my investigations the main frameworks linked to SideCar:

SidecarCore, SidecarUI, Airplay*, AirplaySync, AirPlaySyncController (private frameworks).

Because as I wrote before, Sidecar is essentially an Airplay screen/display mirroring improved.

Here is the how to unlock: https://www.reddit.com/r/apple/comments/bx3eet/sidecar_support_on_older_macs/

To enable unsupported Mac and "display" devices use this Terminal command:

defaults write com.apple.sidecar.display AllowAllDevices -bool true;
defaults write com.apple.sidecar.display hasShownPref -bool true;
open /System/Library/PreferencePanes/Sidecar.prefPane

I believe they have resolved now, for all.
 
From the recent WWDC, there was an interesting presentation on how filesystems are changing on Catalina that worth taking a look. Video and PDFs are here https://developer.apple.com/videos/play/wwdc2019/710/

After looking through it, it appears that the root volume will be set to read-only in future releases so that may affect how we are able to patch things.
Unless there is a checksum, the read only volume can be made read write for edits.

Furthermore, if it is read only then we would be able to install exemptions at the user level, but not sure how that would work with the hierarchy, perhaps the offenders on the read only could just be removed and the iser’s Ex
No, thank you. If it weren't for you, no patch I found would've ever been used by more than about 10 people. Your dedication year after year is what really ties this effort together and shares it with the world :)
[doublepost=1560405694][/doublepost]Came across something maybe interesting. I doubt this'll ever work on our non-Metal systems (won't even load for me), but for those of you with newer GPUs it might be worth a look? Not sure how much this stuff has been investigated yet.
does side pref lane work on metal cards? I can check it out tonight.​
[doublepost=1560437910][/doublepost]

That’s a lot of work. You can use diskutil and dd and do this in three lines of code. Both are command line utilities and can be run from an MacOS Installer disk, another system install, or a restore disk. You can also make disk images with dd.

While I value what you did, your volume of steps is a barrier to entry.[/QUOTE]

I was under the impression that dd would only let you make an image of the entire drive, even if most of it was free space? Can you make a dd image of a 512gb ssd with only 22gb of data and have a 22gb image file that’s able to be used natively in disk utility?[/QUOTE]
There are ways around it with formatting and count, but the easiest solution is keeping the partitions nearly the same size. I’ve had the best luck with that. If you have two SSD’s and use rdisk instead of disk it’s fast and most of the time in a few lines of code it just works.

I am working on some alternates for APFS disks but for dd has the least steps even when done by hand . Linux users can probably shed some light on using a smaller image to a large one.
 
  • Like
Reactions: TimothyR734
I have a feeling that Apple must hate this thread! (Yeah, yeah, I know - It could care less, but...) Here, its most vaunted and trumpeted features of Catalina stripped to their essentials.
Kudos to all who devote time to making Catalina less fearsome.
Yeah, they really don’t care.

The Mountain Lion, Mavericks, and Yosemite threads used to have iMessage/FaceTime issues. People would call Apple Support and ask engineers to force enable their Macs up until we figured out how to do it ourselves.

A lot of our patches make it to the online news articles as well (XPostFactor, MLPostFactor, the Continuity Patch tool, etc)

If it doesn’t break everyone’s computers and nobody is actually selling for commercial use, Apple just doesn’t give a ****.
They don't give a ****. If they were, they would make some tweak to prevent this. And they can do it for sure.
They do. Everything we do on these threads or on the Hackintosh sites is a gaping security hole that can also be used by someone else for malicious purposes. It could make Apple liable if not addressed. Their latest tweak is called Security Integrity Protection which continues to get stronger.
You can do whatever you want with your Macs though as long as you’re aware of the risks and your warranties getting voided
 
Last edited:
Yeah, they really don’t care.

The Mountain Lion, Mavericks, and Yosemite threads used to have iMessage/FaceTime issues. People would call Apple Support and ask engineers to force enable their Macs up until we figured out how to do it ourselves.

A lot of our patches make it to the online news articles as well (XPostFactor, MLPostFactor, the Continuity Patch tool, etc)

If it doesn’t break everyone’s computers and nobody is actually selling for commercial use, Apple just doesn’t give a ****.

They do. Everything we do on these thread or on the Hackintosh sites is a gaping security hole that can also be used be someone else for malicious purposes. It could make Apple liable if not addressed. Their latest tweak is called Security Integrity Protection which continues to get stronger.
You can do whatever you want with your Macs though as long as you’re aware of the risks and your warranties getting voided
Yes, they watch and even pursue some for violation of NDAs.
 
Yeah, they really don’t care.

The Mountain Lion, Mavericks, and Yosemite threads used to have iMessage/FaceTime issues. People would call Apple Support and ask engineers to force enable their Macs up until we figured out how to do it ourselves.

A lot of our patches make it to the online news articles as well (XPostFactor, MLPostFactor, the Continuity Patch tool, etc)

If it doesn’t break everyone’s computers and nobody is actually selling for commercial use, Apple just doesn’t give a ****.

They do. Everything we do on these thread or on the Hackintosh sites is a gaping security hole that can also be used be someone else for malicious purposes. It could make Apple liable if not addressed. Their latest tweak is called Security Integrity Protection which continues to get stronger.
You can do whatever you want with your Macs though as long as you’re aware of the risks and your warranties getting voided

I believe they do, but if they see us as a threat they surely close this forum. They would, no doubt about that.
But, at the same time, in my perspective, what these people do in here is good to Apple, as you said, it is a way they have to check their system integrity and what people can do with their security. Apple get stronger with this. They learn with the smart people who made this possible.
What I meant was, if they really want you to stop mess with their system right now, they surely have the guns to do it.
 
  • Like
Reactions: pkouame
I've been able to get the SideCar Preference Pane to load on a 2008 Mac Pro 3,1.

Steps:

1. Go to, /S*/L*/PreferencePanes
2. Copy Sidecar.prefPane to the Desktop
3. Remove the installed preference pane
4. Double click on the SideCar.prefPane
4. It will then ask you to install it.
5. Voila

Screenshots are from MP3,1 on Cat.

As Dosdude1 suggested, this may only work on Metal Macs. I have not tested SideCar as I don't have a supported iPad (yet).

Screen Shot 2019-06-13 at 11.44.41 AM.png


Screen Shot 2019-06-13 at 11.44.55 AM.png


Screen Shot 2019-06-13 at 11.53.36 AM.png
 
Last edited:
I've been able to get the SideCar Preference Pane to load on a 2008 Mac Pro 3,1.

Steps:

1. Go to, /S*/L/PreferencePanes
2. Copy Sidecar.prefPane to the Desktop
3. Remove the installed preference pane
4. It still then ask you to install the Preference Pane
5. Voila

Screenshots are from MP3,1 on Cat.

As Dosdude1 suggested, this may only work on Metal Macs. I have not tested SideCar as I don't think my iPad mini 2 will work with it, well until another group figures out unsupported iPadOS systems. But there is a chance other AirPlay devices will work with it. Like an AirPlay Server emulator. That is if it uses Airplay at all.

View attachment 842655

View attachment 842654
I've been playing with it on my 3,1 also. Now all I have to do is find a new iPad and install the latest beta iPadOS... when I have time. did you try it with an iPad?
[doublepost=1560441855][/doublepost]
I've been able to get the SideCar Preference Pane to load on a 2008 Mac Pro 3,1.

Steps:

1. Go to, /S*/L*/PreferencePanes
2. Copy Sidecar.prefPane to the Desktop
3. Remove the installed preference pane
4. Double click on the SideCar.prefPane
4. It will then ask you to install it.
5. Voila

Screenshots are from MP3,1 on Cat.

As Dosdude1 suggested, this may only work on Metal Macs. I have not tested SideCar as I don't have a supported iPad (yet).

View attachment 842655

View attachment 842654

View attachment 842659
Another note - you have a 680 like I do. Download the beta additional toolset and fire up some of the OpenGL utilities. I'm pretty sure OpenGL is fired up as lots of activity is registering when I do stuff. Trying to figure why? We have metal capable cards so I would expect not to see too much gl activated (except for old gl based screensavers and stuff of course) puzzling...
 
Amazing work team :) here is a work around if you have issues installing a new app and need to approve in security and privacy Command used to disable using bash (iTerm2)... not sure what zsh commands are.
sudo spctl --master-enable
sudo spctl --master-disable
spctl --status
 
You have to use an "OSInstall.mpkg" taken from an OSX Installer for the latest OSX supported on your machine, for example El Capitan one for 2008/2009 machines, HighSierra one for 2010-2011 machines.

If you want to patch yourself "Distribution" you should patch first the OSInstaller.framework but in that case you need also to adjust the BaseSystem.dmg , so the @ASentientBot method to downgrade the OSInstall.mpkg is the best choice till now for creating a custom Catalina Installer.

It's weird. I don't have a real Mac, I use Hackintosh only. May I ask one question?

If you need to install Catalina on an Unsupported real Mac ,
you need to patch OSInstall.mpkg/Distribution and OSInstaller.framework.
Do you need to add Unsupported-model support to /System/Library/CoreServices/PlatformSupport.plist?

Actually, I use Clover with Hackintosh.
I can make an Catalina installer with patch OSInstaller and OSInstall.mpkg, it works fine to install GPT HFS+ or APFS partition. Of cause, it will always convert HFS+ to APFS system and data partitions.

I think, it will work on a real Mac too, and you can patch anything on Distribution if you need it.
I didn't post it cause of I can't patch it to install on MBR HFS+ with my Hackintosh.
 
Last edited:
  • Like
Reactions: TimothyR734
It's weird. I don't have a real Mac, I use Hackintosh only. May I ask one question?

If you need to install Catalina on an Unsupported real Mac ,
you need to patch OSInstall.mpkg/Distribution and OSInstaller.framework.
Do you need to add Unsupported-model support to /System/Library/CoreServices/PlatformSupport.plist?

Actually, I use Clover with Hackintosh.
I can make an Catalina installer with patch OSInstaller and OSInstall.mpkg, it works fine to install GPT HFS+ or APFS partition. Of cause, it will always convert HFS+ to APFS system and data partitions.

I think, it will work on a real Mac too. and you can patch anything on Distribution if you need it.
I didn't post it cause of I can't patch it to install on MBR HFS+ with my Hackintosh.
you might check my 912 post there is a link there that maybe of help
 
It's weird. I don't have a real Mac, I use Hackintosh only. May I ask one question?

If you need to install Catalina on an Unsupported real Mac ,
you need to patch OSInstall.mpkg/Distribution and OSInstaller.framework.
Do you need to add Unsupported-model support to /System/Library/CoreServices/PlatformSupport.plist?

Actually, I use Clover with Hackintosh.
I can make an Catalina installer with patch OSInstaller and OSInstall.mpkg, it works fine to install GPT HFS+ or APFS partition. Of cause, it will always convert HFS+ to APFS system and data partitions.

I think, it will work on a real Mac too, and you can patch anything on Distribution if you need it.
I didn't post it cause of I can't patch it to install on MBR HFS+ with my Hackintosh.

I usually set a nvram argument "-no_compat_check" from the (CMD+R) macOS Recovery that overrides everything, about PlatformSupport.plist if needed or I delete it or replace it with an El Capitan/HighSierra one.

I know your method worked, but I didn't tried more than this, since I already cloned an APFS Catalina install and next updates I'll do through OTA Software Update.
 
  • Like
Reactions: crazybirdy
I usually set a nvram argument "-no_compat_check" from the (CMD+R) macOS Recovery that overrides everything, about PlatformSupport.plist if needed or I delete it or replace it with an El Capitan/HighSierra one.

I know your method worked, but I didn't tried more than this, since I already cloned an APFS Catalina install and next updates I'll do through OTA.
Have you tried the software update patch yet? It will be required to receive OTA updates from Catalina (if I'm not mistaken)

EDIT: of course nothing to update yet until next week or so when I expect a new beta to appear...but you can apply czo's patch and check the logs.
 
Have you tried the software update patch yet? It will be required to receive OTA updates from Catalina (if I'm not mistaken)

No, but no Catalina beta 2 is yet available, I guess it will work as for Mojave.
 
It's weird. I don't have a real Mac, I use Hackintosh only. May I ask one question?

If you need to install Catalina on an Unsupported real Mac ,
you need to patch OSInstall.mpkg/Distribution and OSInstaller.framework.
Do you need to add Unsupported-model support to /System/Library/CoreServices/PlatformSupport.plist?

Actually, I use Clover with Hackintosh.
I can make an Catalina installer with patch OSInstaller and OSInstall.mpkg, it works fine to install GPT HFS+ or APFS partition. Of cause, it will always convert HFS+ to APFS system and data partitions.

I think, it will work on a real Mac too, and you can patch anything on Distribution if you need it.
I didn't post it cause of I can't patch it to install on MBR HFS+ with my Hackintosh.
Most of us have been installing on a supported Mac and either move or clone the drive.

Since that is the easiest route, I have not dived into patching the installer much.

I know Clover will work, but the stance most unsupported users take is to avoid it.i am using a firmware update to both APFS for the 3,1 and somehow my 3,2 seems to boot using a newer firmware or just a side effects of the firmware upgrade because I have a great looking bootscreen with full mouse supper and nice arrows for selecting a drive
[doublepost=1560446454][/doublepost]
I've been playing with it on my 3,1 also. Now all I have to do is find a new iPad and install the latest beta iPadOS... when I have time. did you try it with an iPad?
[doublepost=1560441855][/doublepost]
Another note - you have a 680 like I do. Download the beta additional toolset and fire up some of the OpenGL utilities. I'm pretty sure OpenGL is fired up as lots of activity is registering when I do stuff. Trying to figure why? We have metal capable cards so I would expect not to see too much gl activated (except for old gl based screensavers and stuff of course) puzzling...
I have an old Pad mini 2, I don’t think it will work unless I can run the iPadOS beta. I believe that is required.

I only got the pane to launch once this far. I just reverted my system from a snapshot so I can give it another good l like install it at the user level.

I did find that manual local snapshots and TM automated local snap shots don’t mix well. It’s best to to either or not both when restoring.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.