Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About macOS 10.15 compatibility & tvOS 13 videos #801

Closed
glouel opened this issue Jun 3, 2019 · 196 comments
Closed

About macOS 10.15 compatibility & tvOS 13 videos #801

glouel opened this issue Jun 3, 2019 · 196 comments

Comments

@glouel
Copy link
Collaborator

glouel commented Jun 3, 2019

You absolutely need the 1.6.0+ for Catalina support, previous versions will not work. Catalina changes a lot of things for screensavers:

The good :

  • tvOS 13's new videos are available
  • HDR playback is now available on Catalina !

The bad :

  • In macOS Catalina, 3rd party screensavers are now running in a sandboxed container which limits everything. As of right now there are no workarounds for many of the restrictions.
  • Auto updates through Sparkle are broken in Catalina right now, this includes both the silent updates and the updates that you can launch manually from the control panel. You will need to install manually for the time being until we get it fixed (don't forget to close system preferences first !). People who installed with homebrew are unaffected.
  • Pressing right arrow to skip no longer works because of sandboxing
  • After upgrading to Catalina, your previous settings will be ignored as they are not copied over by the installer :
    -> Instructions to move your settings to container : About macOS 10.15 compatibility & tvOS 13 videos #801 (comment)
  • Aerial can only write in the legacyScreenSaver.appex sandbox container, which means in Catalina, JSON files and videos can only be downloaded in ~/Library/Containers/com.apple.ScreenSaver.Engine.legacyScreenSaver/Data/Library/Application Support/Aerial. Aerial can still read (only) the rest of your system disk so you can still store the videos in another folder after they are downloaded by manually setting the Cache. But Aerial cannot download videos to this cache.
  • You cannot use a mounted volume (network or external drive) as your read only cache.
  • You cannot use symbolic links to get around the new sandboxing restrictions... unless you disable SIP (which I'd strongly discourage!).
  • Your cache may be wiped by the Catalina installer

Known issues :

  • On Macs with Intel Graphics, Aerial may run as a tiny rectangle in the bottom left corner instead of full screen. This is an Intel graphics driver bug in Catalina. You can workaround it by enabling the system clock. Be aware that while it will greatly reduce the issue, it's not a 100% fix. More info here : Screensaver not showing full screen  #871

Latest version here :
https://github.com/JohnCoates/Aerial/releases/download/v1.6.5beta1/Aerial.saver.zip

@glouel glouel pinned this issue Jun 3, 2019
@glouel glouel changed the title About macOS 10.15 compatibility About macOS 10.15 compatibility & tvOS 13 videos Jun 3, 2019
@glouel
Copy link
Collaborator Author

glouel commented Jun 4, 2019

So, a recap of what I found so far:

  • Your cache folder will likely get wiped on upgrade to 10.15. Backup what you need!
  • Because of the new readonly macOS volume, /Library/Caches is no longer really ours to play with. There's a session about that later this week which should clarify, but it looks like macOS 10.15 simply does a symbolic link to ~/Library/Caches (the user one) for /Library/Caches, and the user one is the only one really useable. This will require some changes in Aerial (I kinda reluctantly moved the default to /Library, I do regret that now :D).
  • macOS 10.15 seems to be able to load/play HDR videos ! But beta1 literally crawls (mouse pointer not updating, everything hanging, beachballing) even if you just load (not play) a HDR file with QuickTime/Safari ! Hopefully this will get fixed in beta2 but this is a good news and I should be able to get HDR support in Aerial
  • There seems to be some new restrictions to how bundles are accessed and this is the crashing bug right now, we fail to load our xib for the control panel. This one I'll try to get too tomorrow.
  • Tried to grab the tvOS13 url from simulator, but it looks like simulator doesn't have a working screensaver (?)

@JonoHaysom
Copy link

hopefully a quick fix... shame anoint the caches lockdown!

@glouel
Copy link
Collaborator Author

glouel commented Jun 4, 2019

Sadly not, been digging for about 3 hours and there's a thread crash in the system when opening our nib file. I filed a radar and posted on the developper forum, we'll see if I get any feedback.

@Kaspik
Copy link

Kaspik commented Jun 4, 2019

Just a note - it looks like Aerial, the screensaver still works, but the control panel crashes ! In the logs, it talks about 'legacyScreenSaver' as a process - I had older version 1.4.9 and after updating to Catalina I updated via Homebrew to 1.5.0 - now the screensaver doesn't work because it's blocked as untrusted developer, by doing Open anyways it just deep-links me to screen saver where it's blocked by system again. Not sure if there is a way how to make the app trusted or via signed developer certificate. :)

@glouel
Copy link
Collaborator Author

glouel commented Jun 4, 2019

Just a note - it looks like Aerial, the screensaver still works, but the control panel crashes ! In the logs, it talks about 'legacyScreenSaver' as a process - I had older version 1.4.9 and after updating to Catalina I updated via Homebrew to 1.5.0 - now the screensaver doesn't work because it's blocked as untrusted developer, by doing Open anyways it just deep-links me to screen saver where it's blocked by system again. Not sure if there is a way how to make the app trusted or via signed developer certificate. :)

Ha, they ALSO force notarization now, which is probably why you see that (I don't notarize yet).

Can you try a manual install by putting the .saver in ~/Library/Screen Savers/ and see what it does? A last resort would be to remove the quarantine bit on the .saver file, and install it normally (it will bypass gatekeeper).

Sorry about that, will try to solve that one too but might take some time.

@Kaspik
Copy link

Kaspik commented Jun 4, 2019

I tried all options, it simply doesn't allow me to run .saver by untrusted developer. :) Which is probably expected as option Anyone from the settings was removed too and now you can use Only AppStore and trsuted developers. Notarize will be probably the only way!

Screenshot 2019-06-04 at 21 26 48

Screenshot 2019-06-04 at 21 26 58

@gregarios
Copy link

Screenshot 2019-06-04 at 21 26 58

What happens if you unlock your System Preferences and click on the "Open Anyway" button that will then not be greyed out?

@glouel
Copy link
Collaborator Author

glouel commented Jun 4, 2019

@Kaspik did you try removing the quarantine bit ?

In terminal, type xattr -c Aerial.saver then install. More information here if you want : https://superuser.com/questions/526920/how-to-remove-quarantine-from-file-permissions-in-os-x

@Kaspik
Copy link

Kaspik commented Jun 4, 2019

Screenshot 2019-06-04 at 21 26 58

What happens if you unlock your System Preferences and click on the "Open Anyway" button that will then not be greyed out?

Opens Settings - Desktop and Screen Saver and shows pop-up "Blocked" again. Circle. :)

@Kaspik did you try removing the quarantine bit ?

In terminal, type xattr -c Aerial.saver then install. More information here if you want : https://superuser.com/questions/526920/how-to-remove-quarantine-from-file-permissions-in-os-x

Yep I did - nothing has changed.

I also believe the nib crash in settings is because it tries to run but it's blocked by system as well as it is for me.

@glouel
Copy link
Collaborator Author

glouel commented Jun 4, 2019

Ok, sorry about that. I'll try to fix this tomorrow and get back to you. As for the nib, as far as I can tell it is probably something else (by compiling myself I bypass quarantine) and I've isolated the crash in some Apple Framework (I can load the file fine, just not map it to our controller without crashing).

@Kaspik
Copy link

Kaspik commented Jun 4, 2019

No worries, it's beta! Just reporting some observations for you to debug and be ready for upcoming releases.

@cmfrazier
Copy link

cmfrazier commented Jun 4, 2019

Can't wait for HDR. Thanks for the updates so far!

@glouel
Copy link
Collaborator Author

glouel commented Jun 5, 2019

No worries, it's beta! Just reporting some observations for you to debug and be ready for upcoming releases.

So just as a FYI, this worked here to have downloaded versions work in the meantime :

  • Install by double clicking (Aerial 2.saver here is the downloaded version, the other my local compile)
  • SysPref will complain and error, close error and SysPref
glouel@iMac-de-Guillaume-2:~/Library/Screen Savers$ ls -l@
total 0
drwxr-xr-x@ 3 glouel  staff  96 11 oct  2018 Aerial 2.saver
	com.apple.macl	72
	com.apple.quarantine	69
drwxr-xr-x@ 3 glouel  staff  96 19 avr 14:46 Aerial.saver
	com.apple.lastuseddate#PS	16
glouel@iMac-de-Guillaume-2:~/Library/Screen Savers$ xattr -c "Aerial 2.saver"
glouel@iMac-de-Guillaume-2:~/Library/Screen Savers$ ls -l@
total 0
drwxr-xr-x  3 glouel  staff  96 11 oct  2018 Aerial 2.saver
drwxr-xr-x@ 3 glouel  staff  96 19 avr 14:46 Aerial.saver
	com.apple.lastuseddate#PS	16

Then it's all good and you can open SysPref. You'll still crash when trying to open options but the screensaver itself works !

@Kaspik
Copy link

Kaspik commented Jun 5, 2019

I can now see the difference and the problem I had! :)

Jakub-iMac-5K:~ kaspik$ cd ~/Library/Screen\ Savers/
Jakub-iMac-5K:Screen Savers kaspik$ ls -l@
total 0
drwxr-xr-x@ 3 kaspik  staff  96 May 31 11:14 Aerial.saver
	com.apple.macl	72 
	com.apple.quarantine	66 
Jakub-iMac-5K:Screen Savers kaspik$ xattr -c "Aerial.saver"
Jakub-iMac-5K:Screen Savers kaspik$ ls -l@
total 0
drwxr-xr-x  3 kaspik  staff  96 May 31 11:14 Aerial.saver

This still didn't work. But notice the path - ~/Library/Screen\ Savers/. If you move the screen saver to /Library/Screen\ Savers (not Library of current user, but system one), then you can apply the xattr -c "Aerial.saver" hack and then it works.

TLDR: Copy the Aerial to /Library, not to ~/Library! :)

@glouel
Copy link
Collaborator Author

glouel commented Jun 5, 2019

Did you by any chance install for all users instead of just your user previously ? Normally, if you install for all users, it goes to /Library/Screen Savers, and just for you in ~/Library/Screen Savers. But because of the new OS lockdown of the filesystem in 10.15, it looks like they are doing some weird things with paths (/Library/Caches/Aerial and ~/Library/Caches/Aerial are the same thing now). In any case, glad it worked for you !

I think I got the solution for properly distributing the screensaver from now on, I can't use a zip, signed xip (like xcode betas) are Apple reserved, and signed dmg didn't work either. pkg is the only way apparently for components like screensaver (thanks to this answer : https://stackoverflow.com/a/31929663), then those pkgs can be signed and notarized. I'll try to get one up later today if you don't mind trying.

@Kaspik
Copy link

Kaspik commented Jun 5, 2019

I probably copied it only to my folder manually instead of installing for all users. But I thought it would work for both cases and it doesn't 😄

Sure thing, I can try the notarized version. :)

@glouel
Copy link
Collaborator Author

glouel commented Jun 5, 2019

@Kaspik

This took me a while but I think I finally got it, this .saver should be both signed and notarized, and still in zip format : https://github.com/glouel/Aerial/releases/download/v1.5.1beta1/Aerial.zip

Please let me know if it works for you, crossing fingers (it seems to work here).

@Kaspik
Copy link

Kaspik commented Jun 5, 2019

Removed the old one, started with clean plate, downloaded, installed for all users, tried. Everything works great! (Except it runs only on one screen out of 3 I have, but it's Catalina bug for all screen savers).

The settings still crashes but I believe it's expected. :)

Thanks!

@glouel
Copy link
Collaborator Author

glouel commented Jun 5, 2019

Woohoo 🎉 I've been chasing that signing bug for about a year now, glad it's finally fixed ! And we'll have notarization on top now.

As for the settings yep, sorry, still haven't found a workaround. I tried removing stuff from the nib to see if I could pinpoint the issue but still nothing, I'll wait for the radar/beta2 now and start working on HDR and trying to find that tvOS url for the new undersea videos.

@glouel
Copy link
Collaborator Author

glouel commented Jun 6, 2019

New cache/settings location in Catalina and how to move your settings/cache

So a bit more feedback, as you may have seen on the top post (I try to update a tldr with what's important), screen savers are now running under a sandboxed app (called legacyScreenSaver). Because of this, we don't have access to the filesystem outside of a container.

This has a lot of implications for Aerial and because a screen saver is not an app (we are a plugin run by legacyScreenSaver) we can't ask for entitlements for, say, accessing filesystem.

So to recap:

  • Having your cache in /Library/Caches/Aerial will no longer work. And 3rd party locations (somewhere else on disk, external drive, network, etc) will likely no longer work either. Restored in beta6
  • Both your old settings AND your old Cache folder will be ignored
  • Some features like location, updates, may not work

You can move manually your settings from :
/Users/glouel/Library/Preferences/ByHost

to:
/Users/glouel/Library/Containers/com.apple.ScreenSaver.Engine.legacyScreenSaver/Data/Library/Preferences/ByHost

You want to move a file called com.JohnCoates.Aerial.{UUID}.plist

In order to make it work with the new path, you need to edit the plist and remove the cacheDirectory(open plist in Xcode, look for cacheDirectory, click the minus right of the key name), so that Aerial can recompute the correct containerized one.

You can do the same thing for your Aerial Cache if you don't want to lose your videos (use same paths as above, change Preferences/ByHost by /Caches/Aerial and move the content. The control panel crash prevents you to change settings, know that you can edit the plist mentionned above to change settings if you need to. I'll push a new beta tonight with some minor changes to fix the path mess a bit (no longer defaulting to /Library/Caches)
Check beta6 further down.

@glouel
Copy link
Collaborator Author

glouel commented Jun 6, 2019

Here's 1.5.1beta2 : https://github.com/JohnCoates/Aerial/releases/tag/v1.5.1beta2

Signed/notarized/with the fix for the container thing.

@Kaspik
Copy link

Kaspik commented Jun 7, 2019

Installed working fine as well as Beta 1 did. :) (no change, still one screen, no settings etc.)

@glouel
Copy link
Collaborator Author

glouel commented Jun 7, 2019

Great, by the way not sure if I mentioned it but you are completely right, all 3rd party screensavers running under legacyScreenSaver (the new container thing) only get called on a single screen on multiple configuration (at least some of the system ones seems to run correctly under the old system).

The way screen savers work is our view is initialized once per screen by the system. Here we are only initialized once, and wrong, because system tells us we are in the tiny preview window of system preferences instead of fullscreen !

I filed a radar for that bug (and all the others, crossing fingers) and tried to get some attention in devforums with all the issues so far (usually kinda futile but who knows: https://forums.developer.apple.com/thread/117136 ) !

@kabouzeid
Copy link

kabouzeid commented Jun 8, 2019

cd ~/Library/Screen\ Savers && xattr -c Aerial.saver works for me with Aerial 1.5.0 (Homebrew) and Catalina 👍 (Obviously no settings too)

@moooooooo
Copy link

moooooooo commented Jun 8, 2019 via email

@glouel
Copy link
Collaborator Author

glouel commented Jun 8, 2019

To the Catalina people, if you are feeling audacious, can you try this link in Safari and see if you get the HDR video to play ? Let me know which mac model you have too, that would be super helpful.

Before clicking, understand that, on my Late 2015 iMac, clicking the link makes the system laggy/unresponsive for about two minutes (and closing the tab too). When the system comes back, the playback works fine, thankfully. It definitely looks like a GPU driver bug which may or may not happen on all system. Should you attempt this, please make sure you save everything and are not in a hurry !

Here's the link : https://sylvan.apple.com/Aerials/2x/Videos/DB_D011_C009_2K_HDR_HEVC.mov

FYI I get the same thing with Safari, Quicktime Player or my WIP on Aerial. HDR videos do look glorious on my iMac here but the bug makes it completely unworkable. Thanks !

Edit : I found out the reason for my slowdown, disabling crash reporter (maybe) and (definitely) spindump fixed the slowdown for me and HDR now plays perfectly too (and I do feel it everywhere, this made my iMac a lot more usable !) 🎉

Couple links on how to do that :
https://www.gregoryvarghese.com/reportcrash-high-cpu-disable-reportcrash/
https://www.macobserver.com/tips/how-to/disable-tailspind-spindump-macos-cpu-speed/

@glouel
Copy link
Collaborator Author

glouel commented Oct 14, 2019

@Gairhumiston, first, sorry about all that.

Let me see if I can understand what you are seeing. When you go into settings, the preview is just black (you don't see the "You cannot use...") and the option button greyed out ?

And if you launch the screensaver (with a hot corner, say), what do you get ?

Hot take, could be a crash. Could you launch Console.app, look in the left column (which may be hidden) for something called "Blocking report" (or crash report maybe) to list the recent crash reports. Then on the list look if you have crashes with the name "legacyScreenSaver". If you do, can you open a new issue and paste the content there so I can have a look ?

@glouel
Copy link
Collaborator Author

glouel commented Oct 14, 2019

Thanks for looking for the log. Sadly it doesn't contain enough info but that's not your fault.

Could I ask you one more thing, with Console.app open, left column, click again on your mac (first item), you'll see the rolling log. Top right corner in the search field, type legacyscreenand press return. You should see an empty window now (if not there's a clean button, 3rd icon from the left). Then reopen syspref. This should fill up with stuff.

If you could please open a new issue too (from this link : https://github.com/JohnCoates/Aerial/issues/new ) and paste the content there (it will be much easier for me to track it and get back to you).

Many thanks and again sorry about all that.

Edit : I did fix a crash that happened if you had added previously some custom video with HDR enabled. There's a build here with the fix if you're willing to give it a shot afterwards : https://github.com/glouel/Aerial/releases/download/v1.6.3test2/Aerial.saver.zip

@Gairhumiston
Copy link

Gairhumiston commented Oct 14, 2019 via email

@seansegundo
Copy link

I'm getting a similar issue to @Gairhumiston and v1.6.3test2 seems to have fixed it.

@glouel
Copy link
Collaborator Author

glouel commented Oct 24, 2019

I'm getting a similar issue to @Gairhumiston and v1.6.3test2 seems to have fixed it.

@seansegundo sorry about that, I should have released the stable 1.6.3 for everyone earlier. I just did. You can keep using the test build, it's the same.

For everyone else : https://github.com/JohnCoates/Aerial/releases/download/v1.6.3/Aerial.saver.zip

@crander7
Copy link

crander7 commented Nov 7, 2019

Ever since the Catalina update the screensaver has been really choppy/stutter. This was on both 1.6.2 and now today 1.6.4. Is this a known issue or something new? I love Aerial, but I just want it to work like it did before...

@glouel
Copy link
Collaborator Author

glouel commented Nov 8, 2019

Ever since the Catalina update the screensaver has been really choppy/stutter. This was on both 1.6.2 and now today 1.6.4. Is this a known issue or something new? I love Aerial, but I just want it to work like it did before...

Hi @crander7

There are two known issues to me that can cause choppiness:

  • first one is, you are streaming because your videos aren't cached. When you upgraded to Catalina, you likely lost your cache so please double check if your videos are cached or not.
  • second one, if you have a Mac with AMD graphics (like an iMac), there can be stuttering in the playback if you enabled HDR. The bug disappear if you disable HDR. It's a graphics drivers bug as far as I know (I do suffer from it on my iMac, it was way worse during Catalina beta but still not solved, like many things !).

Please let me know if you fall in one of these, if not we'll have a look at what's happening to you with logs. Thanks!

@crander7
Copy link

crander7 commented Nov 8, 2019

Hey @glouel

So my videos appear to be cached. I actually wiped my whole machine with the Catalina update. The "Cache" tab indicates my cache size is 21.5 GB.

I turned off HDR videos and the issue seems to be fixed! I am running a mid 2015 MBP with intel i7 and intel graphics, but the choppiness is gone and that's all I really care about.

Now I just need to re-download non-HDR versions of the videos.

Thanks!

@glouel
Copy link
Collaborator Author

glouel commented Nov 8, 2019

Hey @crander7

Thanks for following up, and glad to hear you got it fixed ! It's interesting that you experienced stutter with HDR on an Intel graphics mac, maybe it's more of a bug with playback of HDR videos then! The latest Catalina beta released today didn't fix the stuttering bug with HDR for me in any case.

FYI, there's another known bug that pops sometimes on Intel graphics machines, you should have a look at this thread just in case : #871

@Rob-Sherer
Copy link

Hello, I've downloaded the latest version from the top of this page, but I am still having problems running it. if I select it on it's own it works, but if you use the random option, I just get a blank screensaver when this one is selected, but all the other Apple screensavers work ok.

Is there any way to resolve this?

@glouel
Copy link
Collaborator Author

glouel commented Dec 12, 2019

Hello, I've downloaded the latest version from the top of this page, but I am still having problems running it. if I select it on it's own it works, but if you use the random option, I just get a blank screensaver when this one is selected, but all the other Apple screensavers work ok.

Is there any way to resolve this?

Hi @Rob-Sherer

Are you talking about this :

Capture d’écran 2019-12-13 à 00 13 01

?

I did try and while I do get some black screens, I'm not sure it's Aerial. I did get Aerial to run multiple times. And the times I got a blank screen, there was no log produced at all (so Aerial was never initialized). I'll have a closer look tomorrow but the issue might be elsewhere.

@Rob-Sherer
Copy link

Yes, that's the one. Whenever I add non-Apple screensavers and chose the random option, I get black screens, but by forcing it to run multiple times, I see the Apple ones work, so I can only assume the random option doesn't like non-Apple screensavers.

@glouel
Copy link
Collaborator Author

glouel commented Dec 12, 2019

Rough guess, probably a side effect of the new legacyScreenSaver thing. Interestingly enough, some Apple screensavers are behind that thing too so who knows. I'll have a look if there's anything reported in Console, but your best bet might be filling a radar with Apple in the meantime :(

@glouel
Copy link
Collaborator Author

glouel commented Dec 13, 2019

Hi again @Rob-Sherer

So I did try to launch console and it looks like a huge mess !

erreur	11:59:06.857197+0100	legacyScreenSaver	Bootstrapping; external subsystem UIKit_PKSubsystem refused setup
erreur	11:59:06.870407+0100	iLifeSlideshows	Bootstrapping; external subsystem UIKit_PKSubsystem refused setup

iLifeSlideshows seems to be the one that doesn't start here and throw a blank screen (I confirm that Aerial definitely works in random, I've had it run multiple times).

More info on the issue :

erreur	11:59:10.681493+0100	kernel	Sandbox: ScreenSaverEngin(24198) deny(1) appleevent-send com.apple.music
erreur	11:59:10.681505+0100	appleeventsd	Sandboxed application with pid 24198 attempted to lookup App:"Musique"/"music"/"com.apple.Music" 13302/0x0:0x214214 ????1010 sess=100016 but was denied due to sandboxing.
erreur	11:59:10.755393+0100	appleeventsd	Sandboxed application with pid 24198 attempted to lookup App:"Musique"/"music"/"com.apple.Music" 13302/0x0:0x214214 ????1010 sess=100016 but was denied due to sandboxing.
erreur	11:59:10.897435+0100	appleeventsd	Sandboxed application with pid 24198 attempted to lookup App:"Musique"/"music"/"com.apple.Music" 13302/0x0:0x214214 ????1010 sess=100016 but was denied due to sandboxing.
erreur	11:59:11.179023+0100	appleeventsd	Sandboxed application with pid 24198 attempted to lookup App:"Musique"/"music"/"com.apple.Music" 13302/0x0:0x214214 ????1010 sess=100016 but was denied due to sandboxing.
erreur	11:59:11.741584+0100	appleeventsd	Sandboxed application with pid 24198 attempted to lookup App:"Musique"/"music"/"com.apple.Music" 13302/0x0:0x214214 ????1010 sess=100016 but was denied due to sandboxing.
erreur	11:59:12.868026+0100	appleeventsd	Sandboxed application with pid 24198 attempted to lookup App:"Musique"/"music"/"com.apple.Music" 13302/0x0:0x214214 ????1010 sess=100016 but was denied due to sandboxing.
erreur	11:59:14.763972+0100	appleeventsd	Sandboxed application with pid 24198 attempted to lookup App:"Musique"/"music"/"com.apple.Music" 13302/0x0:0x214214 ????1010 sess=100016 but was denied due to sandboxing.

So, basically, that screensaver tries to access music to either play music or show playing track (I'm unclear which one it is), and that's denied because of sandboxing (I had to remove that feature from Aerial, see here : #846 ) and it looks like it crashes there.

erreur	11:59:15.461891+0100	runningboardd	RBSStateCapture remove item called for untracked item 441-174-2889 (target:xpcservice<com.apple.ScreenSaver.Engine.legacyScreenSaver(501)>)
erreur	11:59:15.461976+0100	runningboardd	RBSStateCapture remove item called for untracked item 441-174-2887 (target:xpcservice<com.apple.ScreenSaver.Computer-Name(501)>)
erreur	11:59:15.462052+0100	runningboardd	RBSStateCapture remove item called for untracked item 441-174-2885 (target:executable<ScreenSaverEngine(501)>)
erreur	11:59:15.462076+0100	runningboardd	RBSStateCapture remove item called for untracked item 441-174-2888 (target:xpcservice<com.apple.ScreenSaver.iLife-Slideshow-Extension(501)>)
erreur	11:59:15.462096+0100	runningboardd	RBSStateCapture remove item called for untracked item 441-174-2891 (target:executable<ScreenSaverEngine(501)>)

I did have a quick look, I'm not sure which one iLifeSlideshows is in the list, but I managed to narrow it down by looking at a lot of random screensavers, none had pictures from my library ! So I think all the slideshows are actually behind this one. Now for the fun part :

/System/Library/Frameworks/ScreenSaver.framework/PlugIns/iLifeSlideshows.appex

It's an .appex ! The supposedly new and improved screensaver thing that's still undocumented 🙈 (pretty please Apple !). What's crazy is that I get errors for iLifeSlideshows.appex AND legacyScreenSaver.appex.

So if I had to make a rough guess, I think that if you pick random screensaver, for some reason it tries to launch them all through legacyScreenSaver.appex (the extension that Apple uses to sandbox 3rd party savers) and that spectacularly fails with iLifeSlideshows.appex. I haven't tested yet removing all 3rd party savers to see if that's the thing that triggers legacyScreenSaver being used for iLifeSlideshows, but according to what you reported so far, I think that's it.

iLifeSlideshows.appex does have more entitlements that our legacy sandbox :

	<key>com.apple.private.tcc.allow</key>
	<array>
		<string>kTCCServicePhotos</string>
		<string>kTCCServiceSystemPolicyAllFiles</string>
	</array>
	<key>com.apple.security.assets.pictures.read-only</key>
	<key>com.apple.security.temporary-exception.files.absolute-path.read-only</key>
	<key>com.apple.security.temporary-exception.files.absolute-path.read-write</key>
	<array>
		<string>com.apple.cloudphotosd</string>
		<string>com.apple.photolibraryd</string>
		<string>com.apple.photos.service</string>
		<string>com.apple.ViewBridgeAuxiliary</string>
	</array>
</dict>
</plist>

So i guess that's it. I'll file one more radar on this, but with my luck with radars these days, I wouldn't get my hopes up for a fix soon :(

@glouel
Copy link
Collaborator Author

glouel commented Dec 13, 2019

Quick update, no issues without a 3rd party screen saver installed, but no screensaver with pictures either. My bet is on the album illustration screensaver being the one that crashes (and that maybe is running behind the iLifeSlideshows.appex ? who knows what they are doing).

Update again, I think it might not be crashing at all, but it's just super slow to start. If I wait 6/7 seconds here on my iMac when I get a blank screen, the album artwork finally pops up.

Edit again : @Rob-Sherer, I'd try removing all your other 3rd party screensavers, I did here and kept only Aerial and can't reproduce any blank screen. I still get the errors in console but they don't seem to matter at all so my theory was for naught.

@Rob-Sherer
Copy link

Yes, you're right, sorry for panicking, but it turns out it was some other screensaver that was causing this, and I assumed it was all third party screensavers. I have now managed to get Ariel working. It seems that Fliqlo is the only other screensaver that works in random mode. Sorry if I have given you additional work looking into the problem, and thanks for creating this screensaver in the first place.

@glouel
Copy link
Collaborator Author

glouel commented Dec 16, 2019

Yes, you're right, sorry for panicking, but it turns out it was some other screensaver that was causing this, and I assumed it was all third party screensavers. I have now managed to get Ariel working. It seems that Fliqlo is the only other screensaver that works in random mode. Sorry if I have given you additional work looking into the problem, and thanks for creating this screensaver in the first place.

No worries, it happens ;) Thanks for following up on this !

@NSExceptional
Copy link

NSExceptional commented Jan 6, 2020

@Gairhumiston can you please edit your comment and collapse your ginormous log so we don't have to scroll past it to get down here? Thanks. You could use a paste like ghostbin.co as well. Here is an example of collapsable markdown:

Title

put your log here

Looks like this:

<details>
<summary>Title</summary>
<p>
markdown goes here
</p>
</details>

@NSExceptional
Copy link

@glouel Is there a way to make a screensaver without it being sandboxed? (i.e., are you choosing to make it sandboxed so people don't have to disable GateKeeper or SIP? Or is it truly the only method going forward?)

@glouel
Copy link
Collaborator Author

glouel commented Jan 6, 2020

@glouel Is there a way to make a screensaver without it being sandboxed? (i.e., are you choosing to make it sandboxed so people don't have to disable GateKeeper or SIP? Or is it truly the only method going forward?)

@NSExceptional as far as I know, nope, there isn't. The sandbox is not something I implemented, it's something Catalina imposes to all 3rd party .saver plugins. If you run Aerial in Mojave you'll see it's not sandboxed.

The sandboxing mechanism is done by Catalina by loading the plugin (all 3rd party screensavers) in a sanboxed container app extension called legacyScreenSaver.appex. That's what does it, we (all) live with the restrictions of that .appex.

Some (not all) of Apple screensavers are now bundled as an .appex too, with their own permissions. As far as I know that format is still not documented to this day nor available to 3rd parties.

@Gairhumiston
Copy link

@Gairhumiston can you please edit your comment and collapse your ginormous log so we don't have to scroll past it to get down here? Thanks. You could use a paste like ghostbin.co as well. Here is an example of collapsable markdown:

Title
Looks like this:

<details>
<summary>Title</summary>
<p>
markdown goes here
</p>
</details>

Log deleted

@glouel
Copy link
Collaborator Author

glouel commented Jan 29, 2020

Closing this with the release of 1.7.0, with support for 11 new Sea videos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests