Substrate substitute for code substitution

Changes in Substitute 2.3.1 (10/3/2022)


  • Fix regression that caused injection to not inject some things on 2.3.0

  • Changes in Substitute 2.3.0 (8/23/2022)


  • Add support for iOS15 and iOS16
  • Fix PAC support on iOS15

  • Changes in Substitute 2.2.3 (11/16/2021)


  • Fix an apparently corellium-specific regression on iOS12

  • Changes in Substitute 2.2.2 (10/31/2021)


  • Don't inject by default to BlastDoor services

  • Changes in Substitute 2.2.1 (10/28/2021)


  • Fix issue with setuid injection

  • Changes in Substitute 2.2.0 (8/30/2021)


  • Add support for iOS15
  • Support hooks that can't find a trampoline within 4GB
  • Fix a possible race condition in sinject

  • Changes in Substitute 2.1.0 (5/16/2021)


  • Add a new option to select more stringent or more permissive jetsam enforcement (userspace reboot or reboot and rejailbreak required for this to be activated)
  • More speed and memory usage optimizations

  • Changes in Substitute 2.0.12 (5/5/2021)


  • Speed and memory usage optimizations

  • Changes in Substitute 2.0.11 (4/29/2021)


  • Support for iOS 14.5

  • Changes in Substitute 2.0.10 (3/23/2021)


  • Add a workaround for apple text-input bugs on sbreload

  • Changes in Substitute 2.0.9 (2/26/2021)


  • Fix an edge case crash on MSHookMessageEx

  • Changes in Substitute 2.0.8 (2/25/2021)


  • Speed improvements and support for unc0ver iOS14

  • Changes in Substitute 2.0.7 (1/19/2021)


  • Add a workaround to allow cycript to be injected to backboardd

  • Changes in Substitute 2.0.6 (1/16/2021)


  • Fix possible edge-case crash of setuid processes on unc0ver arm64e

  • Changes in Substitute 2.0.5 (1/14/2021)


  • Add missing launch image for iPhone6
  • Fix detection of capabilities on Corellium
  • Only prompt user to reboot if upgrading from prior to 2.0.4

  • Changes in Substitute 2.0.4 (1/13/2021)


  • Fix a possible crash of sudo
  • Inject extensions sooner
  • Optimize image lookup in libsubstitute
  • Make substitute match dylibs when the FS name does not match the in-memory name

  • Changes in Substitute 2.0.2 (1/9/2021)


  • Fix backboardd safe mode
  • Tell package managers to reboot after installation until it supports reboot userspace

  • Changes in Substitute 2.0.1 (1/8/2021)


  • Fix a bug in the substrate compatibility layer

  • Changes in Substitute 2.0.0 (1/7/2021)


  • Redesigned the injection system to be faster and handle large numbers of tweaks more efficiently
  • Validated support for checkra1n as well as unc0ver on any version
  • iOS11 through iOS14 supported on compatible jailbreaks
  • iOS14 arm64e support added
  • Added an App to allow centralized control of Substitute settings
  • Added the ability to submit crash logs (opt-in)

  • Changes in Substitute 0.1.15 (8/18/2020)


  • Correct a logic error in parsing CoreFoundationVersion filters

  • Changes in Substitute 0.1.14 (6/11/2020)


  • Update sinject to work properly with arm64e devices

  • Changes in Substitute 0.1.13 (5/23/2020)


  • Add a sinject that is cynject compatible for cycript

  • Changes in Substitute 0.1.12 (5/22/2020)


  • Log memory usage of tweaks as they load to debug oslog

  • Changes in Substitute 0.1.9 (4/28/2020)


  • Implement a fix to keep GSSCred from crashing (fixes SMB in Files.app)

  • Changes in Substitute 0.1.8 (4/08/2020)


  • Got all objc out of substitute-loader