auto-selfcontrol: auto-selfcontrol does not run on my Macbook

I am using a MacBook Air (M1, 2020) on Mac OS 12.0.1 (21A559). I can run auto-selfcontrol activate and it will prompt me for permissions and begin activating. However, it doesn’t start based on the given schedule (ie the next day I still have to manually activate it). Is auto-selfcontrol not compatible with the new Mac OS version or the new M1 chips? Thanks!!

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Reactions: 2
  • Comments: 20 (4 by maintainers)

Most upvoted comments

I have the same issue: I can activate auto-selfcontrol, but after running it won’t re-activate according to schedule. I’m running it on a new MacBook Pro M1 with 12.1 (Monterey). Would be great if this could be resolved, thanks!

@nadesai Thanks for pointing that out, I’ll be able to look into it in the next few weeks hopefully. Right now, I don’t have a macOS 12 system at hand.

Yes, I’ve also noticed the selfcontrol helper tool authentication (sometimes). Any news on how to fix this? Would be nice to have auto-scheduling capabilities…

haha im about to add ‘Mitigate hiding’ to my version aswell. Im thinking about simulating keyboard input to just input the password automatically on the helper popup

That’s actually a great idea. I got it to work and it works great! There is a very quick flicker of the prompt, but there isn’t much you can do about that.

I created Hammer Control which is a soft solution to this problem. It doesn’t get rid of the authentication issue, but it makes it really annoying if you don’t authenticate SC to start. Hopefully it makes you actually start the SC session instead of just canceling when the scheduled session starts. It’s far from ideal, but it’s better than nothing.

haha im about to add ‘Mitigate hiding’ to my version aswell. Im thinking about simulating keyboard input to just input the password automatically on the helper popup

I created Hammer Control which is a soft solution to this problem. It doesn’t get rid of the authentication issue, but it makes it really annoying if you don’t authenticate SC to start. Hopefully it makes you actually start the SC session instead of just canceling when the scheduled session starts. It’s far from ideal, but it’s better than nothing.

EDIT: It now supports auto-inputting your password, so you don’t have to manually.

I had problems with python2, setup.py and the foundation module so made this- https://github.com/AlexanderDickie/auto-selfcontrol-rs , which should work on intel/apple silicon. I think its way easier to distribute via a binary instead of interpreted language. Like the comments above says, a launch agent works fine and I’ve added code to immediately relaunch the helper tool installation popup if you cancel it.

Is this still being looked at?

@nadesai Thanks for testing that. It appears that SelfControl always needs an elevated helper, even when started as root. I’ve also tried to run SelfControl’s CLI as root, but unfortunately the authentication prompt appears anyway:

sudo /Applications/SelfControl.app/Contents/MacOS/selfcontrol-cli --uid 501 start --blocklist ~/.config/auto-selfcontrol/blocklist --enddate 2022-02-12T19:30:26+0100

I’ve looked into the issue, but I’m not sure how to solve it yet. I’ve tested this on an M1 Mac on macOS 12 Monterey, as well as on an Intel Mac on macOS 11 BigSur, both with SelfControl 4.0.2.

If Auto-SelfControl is activated by schedule, it runs the SelfControl command-line methods, but it seems they don’t have the necessary rights to install the SelfControl helper tool. That’s what I got from the logs:

debug	22:15:05.166965+0100	authd	setting hints for UI authorization
info	22:15:05.167053+0100	authd	Creator of authorization has uid == 0, granting right com.apple.ServiceManagement.blesshelper (engine 2796)
debug	22:15:05.167295+0100	authd	setting hints for UI authorization
error	22:15:05.167336+0100	authd	Fatal: interaction not allowed (session has no ui access) (engine 2796)
[...]
default	22:15:05.167521+0100	selfcontrol-cli	ERROR: Failed to authorize installing selfcontrold with status -60007.
debug	22:15:05.167562+0100	selfcontrol-cli	Resource lookup at <private>
	Request       : SCError type: strings
	Result        : file:///Applications/SelfControl.app/Contents/Resources/SCError.strings
default	22:15:05.167350+0100	authd	Failed to authorize right 'org.eyebeam.SelfControl.startBlock' by client '/Applications/SelfControl.app/Contents/MacOS/selfcontrol-cli' [40299] for authorization created by '/Applications/SelfControl.app/Contents/MacOS/selfcontrol-cli' [40299] (3,0) (-60007) (engine 2796)
debug	22:15:05.167576+0100	selfcontrol-cli	Resource lookup at <private>
	Request       : SCError type: stringsdict
	Result        : None
debug	22:15:05.167859+0100	selfcontrol-cli	Bundle: <private>, key: 501, value: , table: SCError, localizationName: (null), result: There was an error authorizing the installation of SelfControl's helper tool.
default	22:15:05.167891+0100	selfcontrol-cli	ERROR: Failed to install daemon with error Error Domain=SelfControlErrorDomain Code=501 "There was an error authorizing the installation of SelfControl's helper tool." UserInfo={SCDescriptionNotFound=false, NSLocalizedDescription=There was an error authorizing the installation of SelfControl's helper tool.}
info	22:15:05.168344+0100	opendirectoryd	PID: 40299, Client: 'selfcontrol-cli', exited with 0 session(s), 0 node(s) and 0 active request(s)

The problem could be that launchd, which is used to schedule Auto-SelfControl, starts the process without access to the UI. This could lead to the failed authorization – that’s what I got from the logs.

@cstigler what’s your take on this. Do you also think this could be the problem and, if so, is there something that could be done in SelfControl or should we look into an alternative way to run schedules?

I wasn’t able to test it on an M1 Mac yet, but I will in the next months.