I've been reading a lot about the iOS Mobile Device Management (MDM) protocols as part of a side project/learning exercise I've been working on. I started trying to create a simple iOS MDM. I've been able to get all of the basics for that up and running. After that, the idea occurred to me to extend it a bit more to serve as an MDM solution to provide better parental controls on my kids' iPads. In doing some research on how I could accomplish this, I found a couple of commercial solutions like Curbi, MindMake, ScreenTime, and others that provide something similar. I noticed that a lot of those solutions say they provide functionality to limit screen time (for example, lock the device between the hours of 9 PM and 8 AM) or put apps in a "timeout" where they can't be used.
My question is, how exactly are they accomplishing this? I've read the iOS MDM protocol documentation and haven't found anything that would indicate that this type of functionality is supported. There is a "DeviceLock" command that instantly locks the device with its passcode. However, there's nothing to stop you from unlocking it again if you know the passcode. There are "InstallApplication" and "RemoveApplication" commands, but nothing that would provide "Prevent this app from being launched until 8 AM" functionality.
Does anyone know how these companies are doing it? Are they requiring the devices to be in Supervised Mode? Even then, I don't see a ton of MDM Commands that would be relevant to this. I'm not looking to develop some competing solution or anything. This is really just a learning exercise to give me something to do in my free time. But this question has me stumped!