verified to work: iOS 2.0 through 8.1

Important Limitations on iOS 8

In short, on iOS 8: after every reboot, you need to respring before Substrate will load extensions in SpringBoard.

Substrate version 0.9.5013 supports iOS 8, but because of limitations in Pangu (versions 1.0 through 1.0.1 so far tested), Substrate won't work immediately after the device boots - it will only work after the first respring. You can respring by SSHing to your device and typing killall backboardd

This happens because Pangu loads Substrate after other processes have already loaded, causing Substrate to not work until the next time backboardd and SpringBoard restart.

We are coordinating closely with the Pangu team to make certain the best possible fix for this is deployed.

(A special thanks goes out to Elias Limneos, who helped me research a bug while I was traveling today.)

Substrate version 0.9.5010 adds MSHookInterface, a new entry-level feature for developers; read more in Substrate's example walkthrough.

As of version 0.9.3997, you can now disable Substrate entirely by holding down Volume Up as the device boots.

This feature allows you to bypass horribly broken extensions (ones that prevent the device from starting up at all) that you may have installed so you can open Cydia and uninstall them.

To support devices that do not have a Volume Up button (the first-generation iPod touch), you can alternatively hold down the "Clicker" (not Volume Up) button on your headset or earphones.

(A special thanks goes to @oLunatiko for help implementing this feature!)

Mobile Safe Mode is a feature designed to protect you from faulty extensions (it is pretty awesome).

Support framework used by iPhone projects such as WinterBoard, Activator, and Five Icon Dock.

The general idea is that there are a number of reasons one might want to hook functionality into an existing application. In order to do this there are a few dangerous or complex steps. By centralizing the code for these we can hope to get them right.

As an example, Cydia Substrate provides a simple platform (one integrated with Cydia) for deploying code that gets inserted into graphical applications. When things fail, it is able to provide error handling and fallback support (think of a "Safe Mode").