Recover screen time passcode or disable screen time sharing on Mac OS Catalina and iOS 13
I have a bit of a problem with screen time on my MacBook.
I have used screen time on my iPhone for quite a while now, and I mainly use it to limit the usage of my own device. I set up downtime to basically lock down almost everything on my iPhone between 22:00 and 08:30 the next morning.
Because I am weak, I have set my screen time passcode to a random passcode, which I promptly forgot, to make it harder for me to change the settings.
As I am eager to try out new functions of Mac OS, I just updated my MacBook to the Catalina Golden Master. What I did not know was that Catalina enables screen time sharing as soon as you login to iCloud with your account. So now, after 22:00, my Mac will basically shut down any apps that are not whitelisted (Which is basically any app that has been downloaded through the App store.)
This is a problem, as I use my MacBook for work, and I often use it between those times, I also have a lot of iCloud functionality synced, so I do not really want to unlinke iCloud. Now in the past, I have used encrypted backups combined with pinfinder to recover the passcode, but with iOS 13 it seems that the passcode is stored in the cloud. And (Murphy's law in action), I do not have any iOS 12 backups with this specific passcode.
Is there any other way to recover the passcode, or override screen time settings from the terminal?
I am very aware this is exactly why you don't use beta software on your main machine, and I should have checked before updating willy-nilly, but what can I say, I'm an idiot.
But the reality is that, while I have learned from my mistake, my machine is now hardly usable, and I don't want to go through the hassle of downgrading either my Mac or my iPhone. (Also, when Catalina releases, I'll still run into the same problem, because I think screen time sharing is turned on automatically)
EDIT:
Ok, I fixed my problem of not being able to disable screen time sharing by using the answer provided by impact27. One thing to note is that while it does set your passcode for screen time locally, it does not enable you to reset your passcode this way. Enabling screen time sharing immediately sets all your settings from your iCloud, including your passcode.
So how can I reset my screen time passcode?
Unfortunately, as soon as your on iOS 13 and Catalina, I'm afraid there is no way to find your passcode somewhere. I called Apple support, and they said they couldn't help me out either. I think your passcode is only stored in the cloud, at least I couldn't find any local files with the code in it.
Luckily for me, I vaguely remembered the numbers to my code, just not the order in which they occur. So I had been trying a 'slow brute force' for the past couple of days, unfortunately without any luck, since Apple locks you out for an X amount of time after you get the code wrong a few times. So this method took me several days of guessing, with no luck.
One thing I noticed when trying impact27's answer was that on a new user account, the 'Entered wrong passcode x times' counter was reset. In the end I was able to speed up my brute force attack by just creating a boatload of user accounts, trying some numbers, and switching to the next account. Finally, I was able to crack my passcode this way.
However, this is only a realistic option if you know at least part of your passcode.
Solution 1:
I had a similar problem where when updating to Catalina, a screen time password has been set on my mac, but was not corresponding to my iPhone screen time password. The solution I found was:
- Create a new admin account
- Log out of iCloud (This removes the screen time password set by iCloud)
- Set a new screen time password (This sets your account to standard)
- Log into iCloud again
- Restore your account as admin using the account created in step 1
With that I have a screen time password I know.