verified to work: iOS 2.0 through 8.1

Cydia Substrate 0.9.5101 fixes an incompatibility introduced in 0.9.5100 with some combinations of extensions (the most common conflict was having both CC Settings and GroovyLock).

Cydia Substrate 0.9.5100 includes features requested by developers, so their extensions may require this update: it can inject into more iOS 8 daemons, find more private symbols, move more arm64 instructions, and hook even shorter armv7 functions.

Substrate 0.9.5016 fixes a bug on iOS versions before 4.3 (versions 0.9.5014 and 0.9.5015 caused many devices to spontaneously reboot after installation and then not boot again without first disabling Substrate with volume up).

Cydia Substrate 0.9.5014 fixes a few bugs reported on iOS 8 with 0.9.5013, including "apps do not install", "iTunes does not sync", and "icons are gone".

This issue sometimes led to devices being unable to boot without disabling Substrate (holding down volume up).

(and 0.9.5015 fixes a bug in 0.9.5014 where some processes, including OpenSSH, would no longer start.)

If you've updated the Pangu 8.0-8.1 untether to version 0.2, you no longer need to respring after rebooting; this untether update fixes an issue that caused Substrate to not fully load into many processes immediately after rebooting. This untether update also means that disabling Substrate while booting (by holding the volume up button) should work consistently now.

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").