The first step to writing an extension is knowing where the code you want to modify lives, and then making certain your modifications get loaded to those places. This will typically be done using the names of specific processes or libraries.
Developers who have written extensions for Chrome or GreaseMonkey (environments that allow for modifications to existing websites using JavaScript) may find this step very familiar to specifying what URLs you intend to inject your code into.
By using Substrate to load code into the target process, developers take advantage of the safety mechanisms it implements as well as knowing that their code will continue to load even if the loader implementation has to fundamentally change.
On iOS, Substrate extensions are installed to a common location and are configured using separate configuration files.
Read MoreOn Android, native Substrate extensions are installed as part of application packages, and are configured with embedded data.
Read MoreAlternatively, extensions can be written in Java; included in an application package, they are specified in the XML manifest.
Read More