14

I am looking for some private API or piece of code which will allow me to reboot iOS device or restart Springboard.

I looked at SBReboot, but it looks like it's protected by some entitlement.

Also, I tried reboot(int) and reboot2(int), but it looks like both of them work only for "root" user and will do nothing for a "mobile" user.

I am looking for a solution which works on non jailbroken device. However, private API's are ok (an application won't go to AppStore)

Update 1

In response to Josiah answer below. Finding an expoit for gaining root privileges isn't the only option. As example, any vulnerability which will allow to crash kernel or Springboard is fine with me (even if it can't be used to get a root privileges).

Victor Ronin
  • 22,758
  • 18
  • 92
  • 184
  • I find that allocating lots of video memory can cause the device to restart. :) – Jesse Rusak Jan 15 '13 at 02:12
  • It's interesting. Can you please, post a code snippet or API which you have used? – Victor Ronin Jan 15 '13 at 02:35
  • Heh. I was mostly joking; the system usually kills your app first, but I've seen it restart as well. – Jesse Rusak Jan 15 '13 at 03:34
  • Is the device jailbroken, or no? You're right, in that `reboot` doesn't work if the app is running as **mobile**. ([here's a workaround](http://stackoverflow.com/a/6503158/119114) **if** you can jailbreak). – Nate Jan 15 '13 at 08:04
  • 1
    This is for non jailbroken devices. – Victor Ronin Jan 15 '13 at 16:52
  • @VictorRonin, Oh, crashing the Springboard is good enough here? I thought you wanted a full reboot. I still think crashing the springboard would be difficult, but perhaps a little more possible. – Josiah Jan 18 '13 at 15:42
  • 4
    Just out of curiosity, why do you want this and what are you trying to achieve? – iska Jan 21 '13 at 00:12

1 Answers1

7

There is no private or public API that can be executed as mobile from inside of an app. It's annoying, but that's truth.

The only way this is possible is to have a jailbroken device, which you said isn't possible.

Finally, there aren't even any unsafe ways to do this. You can't overload the memory or anything that will cause a reboot. Apple just kills your app.

After finally, there is one thing you could do... Find an exploit that you can execute through this app, to get yourself root privileges until after a reboot. Possible, but your not getting that info from here.

Good luck though. (Oh, and if anyone does have a way to do this, let me know, this could be used as an exploit)

Edit

I found a way to restart the springboard without a jailbreak, however it does not really do what you want. But it could give people some ideas.

  1. Firstly, you will just need to disable your devices passcode. If not, this glitch will not work. Go to Settings>;General>;Passcode Lock and turn it off.

  2. Lock your device.

  3. Enter lockscreen and turn your device in landscape mode (horizontally).

  4. Swipe up that camera slider thing (I’m not sure how you call it, LOL) while remaining in landscape mode

  5. As soon as the whole lockscreen is out and cannot be seen, press the home button and tap the photo library square on the now bottom right of the screen simultaneously. Note: do not need to wait for the camera to load and be active.

  6. You should see the home screen for a very short time before you see an Apple logo/loading circle, your device is now respringing. (note: in iOS 6 Apple replaced the usual loading circle when respringing into the Apple logo, don’t worry your device is NOT rebooting)

Josiah
  • 4,663
  • 2
  • 31
  • 49
  • I don't think it's simple like that. There are multiple possible vulnerabilities in kernel or Springboard. Most of them aren't exploitable (because of ASLR + NX). So, there is no way to get a root privileges through them. However, these vulnerabilities may be used to crash kernel or Springboard. – Victor Ronin Jan 18 '13 at 15:26
  • @VictorRonin, Well, I was kind of joking, as doing that even for private use would probably be damaging to your content. However I suppose if you could find some exploit from Mobile to kill the kernel, and restart the device, that would work. However, even finding a flaw like that is difficult. If you have any idea on how to accomplish such a task, you should post it as a possible answer (Or as a comment). – Josiah Jan 18 '13 at 15:41
  • I remember that some of jailbreakers created a tool which reports crashes to him. I think my next stop will be talking to that guy. – Victor Ronin Jan 18 '13 at 15:46
  • That's interesting sequence. I will take a look at it. – Victor Ronin Jan 18 '13 at 15:47
  • I tried this trick about 15 times in a row on iOS 6.1.4 on iPhone 5 and could not get it to crash. – Syclone0044 Feb 16 '15 at 02:19