supposed to work: iOS 2.0 through 9.0

Cydia Substrate 0.9.6000 has made massive internal changes to be compatible with the latest jailbreak for iOS 9 from Pangu.

0.9.6010 fixes the 32-bit armv7 slice, which was keeping extensions from loading into Cydia. (Note that, additionally, all 32-bit binaries, in particular extensions, must be recompiled using -Wl,-segalign,4000 for iOS 9 due to a change made by Apple. Extensions that have not been recompiled might "get lucky" and work, but they will usually either fail or even crash.)

0.9.6011 fixes an issue in 0.9.6xxx where it no longer worked on iOS versions before 5.0.

0.9.6100 blocks extensions on iOS 9 that are guaranteed to crash some key processes (such as Cydia), will inject into too many processes (due to a mismatched filter), or which will lead to subtle bugs (by invalidating the codesign of the target process). This new version also fixes some issues developers were seeing attempting to hook functions in particularly well-sandboxed processes, and adds support for the latest version of Cycript (which now runs Substrate as an injection vector).

0.9.6101 fixes an issue where Cycript could not inject into a 32-bit process. (This bug might have affected Substrate in some more general way? I am not yet sure about this.)

0.9.6110 fixes an issue where extension that are corrupt (often on purpose by the developer for obfuscation purposes :/) cause Substrate's attempt to detect whether the extension will cause the process to crash to actually just cause Substrate to crash :/. (In addition to all of the usual numerous improvements I make every time I cut a new release.)

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