问题
Basically, I'm looking for any way to go about this at all, no matter how cumbersome or unintuitive, so long as it can be done on iOS 7 (which the third party SBSettings framework currently cannot), and can be done on a non-jailbroken device.
This is for an app which will be loaded into iPads in a physical enclosure so the power button is inaccessible. The device itself will be in single app mode, which cannot be enabled or disabled except through our network-accessed MDM solution. The issue I'm trying to find a way around is that every now and then, the network connection stops functioning and the only way to re-establish it is to restart the device, which can't be done without an internet connection other than to physically press the inaccessible buttons. The reboot action would be password-locked in a hidden event handler and so inaccessible to normal users. This is not an app that will ever see the app store, so Apple's user interface guidelines don't necessarily apply.
Alternatively, is there any way to enable/disable assistive touch programmatically or any other possible method that will enable rebooting the device while in single app mode without physically touching the power button?
回答1:
This is not a real answer (just thinking aloud).
Obviously, you can't do this through public API.
I believe, API's like SBReset can't do this either, because they are protected by entitlement.
I believe your simplest option to find some reasonably low level API which crashes and use it to crash a device.
I had exactly the same question some time ago:A way to reboot iOS device or restart Springboard using private API?
P.S. I don't have a way to find these crashes. I would recommnd to talk to jailbreak community (people who come up with jailbreaks for iOS devices). They collect all kinds of crashes. Most of these crashes aren't exploitable. However, you don't need an exploit, you just need a OS crash.
来源:https://stackoverflow.com/questions/25366813/way-to-programmatically-reboot-ios-device